aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
Commit message (Collapse)AuthorAge
* Commebts & one check in EndEvalPlanQual().Vadim B. Mikheev2000-04-07
|
* Fix (I hope) resource leakage in EvalPlanQual: open subplans must beTom Lane2000-04-07
| | | | | properly shut down in EndPlan, else we fail to free buffers and so forth that they hold.
* Partial fix for EvalPlanQual bugs reported by Magnus Hagander, 3-Apr.Tom Lane2000-04-07
| | | | | | Ensure that outer tuple link needed for inner indexscan qual evaluation gets set in the EvalPlanQual case. This stops coredump, but we still have resource leaks due to failure to clean up EvalPlanQual properly...
* Fix bug noted by Bruce: FETCH in an already-aborted transaction blockTom Lane2000-04-04
| | | | | | | | | | | would crash, due to premature invocation of SetQuerySnapshot(). Clean up problems with handling of multiple queries by splitting pg_parse_and_plan into two routines. The old code would not, for example, do the right thing with END; SELECT... submitted in one query string when it had been in transaction abort state, because it'd decide to skip planning the SELECT before it had executed the END. New arrangement is simpler and doesn't force caller to plan if only parse+rewrite is needed.
* ExecSubPlan needs to be able to cope with RelabelType nodes atop theTom Lane2000-03-23
| | | | Const placeholder nodes for subplan result values.
* Correct typo in error message.Tom Lane2000-03-21
|
* Redo permissions-checking code so that it does the right thing at APPENDTom Lane2000-03-09
| | | | | | nodes. The former version failed to check permissions of relations that were referenced in second and later clauses of UNIONs, and it did not check permissions of tables referenced via inheritance.
* Hmm, it seems nodeMaterial has been broken for a good long while;Tom Lane2000-03-02
| | | | closing a relcache entry more times than you open it is not cool.
* Create a new expression node type RelabelType, which exists solely toTom Lane2000-02-20
| | | | | | | | | | represent the result of a binary-compatible type coercion. At runtime it just evaluates its argument --- but during type resolution, exprType will pick up the output type of the RelabelType node instead of the type of the argument. This solves some longstanding problems with dropped type coercions, an example being 'select now()::abstime::int4' which used to produce date-formatted output, not an integer, because the coercion to int4 was dropped on the floor.
* Implement reindex commandHiroshi Inoue2000-02-18
|
* Carry column aliases from the parser frontend. Enables queries likeThomas G. Lockhart2000-02-15
| | | | | | | SELECT a FROM t1 tx (a); Allow join syntax, including queries like SELECT * FROM t1 NATURAL JOIN t2; Update RTE structure to hold column aliases in an Attr structure.
* Replace nth() calls in inner loops with traversal of the list viaTom Lane2000-02-05
| | | | lnext, to eliminate O(N^2) behavior with lots of indexquals.
* Repair relation refcount leakage caused by SELECT FOR UPDATE.Tom Lane2000-02-03
|
* Redesign DISTINCT ON as discussed in pgsql-sql 1/25/00: syntax is nowTom Lane2000-01-27
| | | | | | | | | | | | | SELECT DISTINCT ON (expr [, expr ...]) targetlist ... and there is a check to make sure that the user didn't specify an ORDER BY that's incompatible with the DISTINCT operation. Reimplement nodeUnique and nodeGroup to use the proper datatype-specific equality function for each column being compared --- they used to do bitwise comparisons or convert the data to text strings and strcmp(). (To add insult to injury, they'd look up the conversion functions once for each tuple...) Parse/plan representation of DISTINCT is now a list of SortClause nodes. initdb forced by querytree change...
* Add:Bruce Momjian2000-01-26
| | | | | | * Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
* Fix handling of NULL constraint conditions: per SQL92 spec, a NULL resultTom Lane2000-01-19
| | | | | | | | | from a constraint condition does not violate the constraint (cf. discussion on pghackers 12/9/99). Implemented by adding a parameter to ExecQual, specifying whether to return TRUE or FALSE when the qual result is really NULL in three-valued boolean logic. Currently, ExecRelCheck is the only caller that asks for TRUE, but if we find any other places that have the wrong response to NULL, it'll be easy to fix them.
* setheapoverride() is history. Uses replaced with CommandCounterIncrement()Tom Lane2000-01-17
| | | | | where necessary --- several of them didn't really need it, though. tqual-checking macros simplified accordingly.
* Update subquery error message.Bruce Momjian2000-01-17
|
* Make number of args to a function configurable.Bruce Momjian2000-01-10
|
* Another round of planner/optimizer work. This is just restructuring andTom Lane2000-01-09
| | | | | code cleanup; no major improvements yet. However, EXPLAIN does produce more intuitive outputs for nested loops with indexscans now...
* Fix it's and its to be correct.Bruce Momjian2000-01-05
|
* Improve subquery error message, now says "More than one tuple returnedBruce Momjian1999-12-29
| | | | by subselect used as expression."
* Required catalog changes for extended LONG attribute storage.Jan Wieck1999-12-20
| | | | Jan
* Clean up some minor gcc warnings.Tom Lane1999-12-20
|
* Some changes to prepare for LONG attributes.Jan Wieck1999-12-16
| | | | Jan
* New LDOUT makefile variable for QNX os.Bruce Momjian1999-12-13
|
* aggregate(DISTINCT ...) works, per SQL spec.Tom Lane1999-12-13
| | | | Note this forces initdb because of change of Aggref node in stored rules.
* Rename several destroy* functions/tags to drop*.Bruce Momjian1999-12-10
|
* Make LD -r as macros that can be changed for QNX.Bruce Momjian1999-12-09
|
* Rename heap_replace to heap_update.Bruce Momjian1999-11-24
|
* Tid access method feature from Hiroshi Inoue, Inoue@tpf.co.jpBruce Momjian1999-11-23
|
* Add system indexes to match all caches.Bruce Momjian1999-11-22
| | | | | | | Make all system indexes unique. Make all cache loads use system indexes. Rename *rel to *relid in inheritance tables. Rename cache names to be clearer.
* Clean up possible memory leakage in nodeSubplanTom Lane1999-11-15
|
* Implement subselects in target lists. Also, relax requirement thatTom Lane1999-11-15
| | | | | | | | | | | | | subselects can only appear on the righthand side of a binary operator. That's still true for quantified predicates like x = ANY (SELECT ...), but a subselect that delivers a single result can now appear anywhere in an expression. This is implemented by changing EXPR_SUBLINK sublinks to represent just the (SELECT ...) expression, without any 'left hand side' or combining operator --- so they're now more like EXISTS_SUBLINK. To handle the case of '(x, y, z) = (SELECT ...)', I added a new sublink type MULTIEXPR_SUBLINK, which acts just like EXPR_SUBLINK used to. But the grammar will only generate one for a multiple-left-hand-side row expression.
* Fix ExecSubPlan to handle nulls per the SQL spec --- it didn't combineTom Lane1999-11-12
| | | | | | | nulls with non-nulls using proper three-valued boolean logic. Also clean up ExecQual to make it clearer that ExecQual *does* follow the SQL spec for boolean nulls. See '[BUGS] (null) != (null)' thread around 10/26/99 for more detail.
* New NameStr macro to convert Name to Str. No need for var.data anymore.Bruce Momjian1999-11-07
| | | | | | Fewer calls to nameout. Better use of RelationGetRelationName.
* Make it possible to execute crashed CREATE/DROP commands again.Hiroshi Inoue1999-11-04
| | | | | | | | | | Now indexes of pg_class and pg_type are unique indexes and guarantee the uniqueness of correponding attributes. heap_create() was changed to take another boolean parameter which allows to postpone the creation of disk file. The name of rd_nonameunlinked was changed to rd_unlinked. It is used generally(not only for noname relations) now. Requires initdb.
* Don't call ExecOpenIndices if pg_class relhasindex shows there are noTom Lane1999-11-01
| | | | indexes to open. Avoid unnecessary work in ExecCheckPerm, too.
* Avoid duplicate ExecTypeFromTL() call in ExecInitJunkFilter() by passingTom Lane1999-10-30
| | | | | | | in the TupleDesc that the caller already has (for call from ExecMain) or can make just as easily as ExecInitJunkFilter() can (for call from ExecAppend). Also, don't bother to build a junk filter for an INSERT operation that doesn't actually need one, which is the normal case.
* Ooops ... 6.5 coding wasn't quite right anymore. Should learnTom Lane1999-10-30
| | | | never to commit without running regress tests...
* Put back code in nodeAgg to generate a dummy all-nulls input tupleTom Lane1999-10-30
| | | | | | | before calling execProject, when the outerPlan has returned zero tuples. I took this out under the mistaken impression that the input tuple couldn't be referenced by execProject if we weren't in GROUP BY mode. But it can, if we're in an UPDATE or DELETE...
* Final stage of psort reconstruction work: replace psort.c withTom Lane1999-10-17
| | | | | | | a generalized module 'tuplesort.c' that can sort either HeapTuples or IndexTuples, and is not tied to execution of a Sort node. Clean up memory leakages in sorting, and replace nbtsort.c's private implementation of mergesorting with calls to tuplesort.c.
* Actually, nodeMergejoin shouldn't include psort.h at all...Tom Lane1999-10-17
|
* nodeMergejoin was depending on an inclusion from psort.h...Tom Lane1999-10-16
|
* Split 'BufFile' routines out of fd.c into a new module, buffile.c. ExtendTom Lane1999-10-13
| | | | | | | | BufFile so that it handles multi-segment temporary files transparently. This allows sorts and hashes to work with data exceeding 2Gig (or whatever the local limit on file size is). Change psort.c to use relative seeks instead of absolute seeks for backwards scanning, so that it won't fail when the data volume exceeds 2Gig.
* Remove a no-longer-needed kluge for degenerate aggregate cases,Tom Lane1999-10-08
| | | | and update some comments.
* Fix planner and rewriter to follow SQL semantics for tables that areTom Lane1999-10-07
| | | | | | | | | | | mentioned in FROM but not elsewhere in the query: such tables should be joined over anyway. Aside from being more standards-compliant, this allows removal of some very ugly hacks for COUNT(*) processing. Also, allow HAVING clause without aggregate functions, since SQL does. Clean up CREATE RULE statement-list syntax the same way Bruce just fixed the main stmtmulti production. CAUTION: addition of a field to RangeTblEntry nodes breaks stored rules; you will have to initdb if you have any rules.
* This is part #1 for of the DEFERRED CONSTRAINT TRIGGER support.Jan Wieck1999-09-29
| | | | | | | | | | | | Implements the CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands. TODO: Generic builtin trigger procedures Automatic execution of appropriate CREATE CONSTRAINT... at CREATE TABLE Support of new trigger type in pg_dump Swapping of huge # of events to disk Jan
* Fix nodeAgg coredump in case where lower-level plan hasTom Lane1999-09-28
| | | | | | | an empty targetlist *and* fails to return any tuples, as will happen for example with 'SELECT COUNT(1) FROM table WHERE ...' if the where- clause selects no tuples. It's so nice to make a fix by diking out code, instead of adding more...
* Modify nodeAgg.c so that no rows are returned for a GROUP BYTom Lane1999-09-26
| | | | | | | | with no input rows, per pghackers discussions around 7/22/99. Clean up a bunch of ugly coding while at it; remove redundant re-lookup of aggregate info at start of each new GROUP. Arrange to pfree intermediate values when they are pass-by-ref types, so that aggregates on pass-by-ref types no longer eat memory. This takes care of a couple of TODO items...