summaryrefslogtreecommitdiff
path: root/src/backend/executor/execMain.c
AgeCommit message (Collapse)Author
2000-05-30Remove unused include files. Do not touch /port or includes used by defines.Bruce Momjian
2000-05-29Second round of fmgr changes: triggers are now invoked in new style,Tom Lane
CurrentTriggerData is history.
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-04-07Commebts & one check in EndEvalPlanQual().Vadim B. Mikheev
2000-04-07Fix (I hope) resource leakage in EvalPlanQual: open subplans must beTom Lane
properly shut down in EndPlan, else we fail to free buffers and so forth that they hold.
2000-03-09Redo permissions-checking code so that it does the right thing at APPENDTom Lane
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.
2000-02-15Carry column aliases from the parser frontend. Enables queries likeThomas G. Lockhart
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.
2000-02-03Repair relation refcount leakage caused by SELECT FOR UPDATE.Tom Lane
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
2000-01-19Fix handling of NULL constraint conditions: per SQL92 spec, a NULL resultTom Lane
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.
2000-01-17setheapoverride() is history. Uses replaced with CommandCounterIncrement()Tom Lane
where necessary --- several of them didn't really need it, though. tqual-checking macros simplified accordingly.
2000-01-05Fix it's and its to be correct.Bruce Momjian
1999-12-16Some changes to prepare for LONG attributes.Jan Wieck
Jan
1999-12-10Rename several destroy* functions/tags to drop*.Bruce Momjian
1999-11-24Rename heap_replace to heap_update.Bruce Momjian
1999-11-07New NameStr macro to convert Name to Str. No need for var.data anymore.Bruce Momjian
Fewer calls to nameout. Better use of RelationGetRelationName.
1999-11-01Don't call ExecOpenIndices if pg_class relhasindex shows there are noTom Lane
indexes to open. Avoid unnecessary work in ExecCheckPerm, too.
1999-10-30Avoid duplicate ExecTypeFromTL() call in ExecInitJunkFilter() by passingTom Lane
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.
1999-10-07Fix planner and rewriter to follow SQL semantics for tables that areTom Lane
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.
1999-09-29This is part #1 for of the DEFERRED CONSTRAINT TRIGGER support.Jan Wieck
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
1999-09-24Several changes here, not very related but touching some of the same files.Tom Lane
* Buffer refcount cleanup (per my "progress report" to pghackers, 9/22). * Add links to backend PROC structs to sinval's array of per-backend info, and use these links for routines that need to check the state of all backends (rather than the slow, complicated search of the ShmemIndex hashtable that was used before). Add databaseOID to PROC structs. * Use this to implement an interlock that prevents DESTROY DATABASE of a database containing running backends. (It's a little tricky to prevent a concurrently-starting backend from getting in there, since the new backend is not able to lock anything at the time it tries to look up its database in pg_database. My solution is to recheck that the DB is OK at the end of InitPostgres. It may not be a 100% solution, but it's a lot better than no interlock at all...) * In ALTER TABLE RENAME, flush buffers for the relation before doing the rename of the physical files, to ensure we don't get failures later from mdblindwrt(). * Update TRUNCATE patch so that it actually compiles against current sources :-(. You should do "make clean all" after pulling these changes.
1999-09-18Mega-commit to make heap_open/heap_openr/heap_close take anTom Lane
additional argument specifying the kind of lock to acquire/release (or 'NoLock' to do no lock processing). Ensure that all relations are locked with some appropriate lock level before being examined --- this ensures that relevant shared-inval messages have been processed and should prevent problems caused by concurrent VACUUM. Fix several bugs having to do with mismatched increment/decrement of relation ref count and mismatched heap_open/close (which amounts to the same thing). A bogus ref count on a relation doesn't matter much *unless* a SI Inval message happens to arrive at the wrong time, which is probably why we got away with this sloppiness for so long. Repair missing grab of AccessExclusiveLock in DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi. Recommend 'make clean all' after pulling this update; I modified the Relation struct layout slightly. Will post further discussion to pghackers list shortly.
1999-07-17 Move some system includes into c.h, and remove duplicates.Bruce Momjian
1999-07-16Final cleanup.Bruce Momjian
1999-07-16Update #include cleanupsBruce Momjian
1999-07-15Remove unused #includes in *.c files.Bruce Momjian
1999-07-15Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian
1999-06-17Remove QUERY_LIMIT and documenation on same. Change _ALIGN to TYPEALIGNBruce Momjian
for Irix.
1999-06-09Reset evaluation plan tuple table next free slot counter to 0Vadim B. Mikheev
after ExecEndNode. It must be done! Or we'll be out of free tuple slots very soon, though slots are freed by ExecEndNode and ready for reusing. We didn't see this problem before because of int nSlots = ExecCountSlotsNode(plan); TupleTable tupleTable = ExecCreateTupleTable(nSlots + 10); /* why add ten? - jolly */ code in InitPlan - i.e. extra 10 slots. Simple select uses 3 slots and so it was possible to re-use evaluation plan 3 additional times and didn't get elog(NOTICE, "Plan requires more slots than are available"); elog(ERROR, "send mail to your local executor guru to fix this"); Changes are obvious and shouldn't be problems with them. Though, I added Assert(epqstate->es_tupleTable->next == 0) before EvalPlanQual():ExecInitNode and we'll notice if something is still wrong. Is it better to change Assert to elog(ERROR) ?
1999-06-06I used bad style of comments and ... commented out some code inVadim B. Mikheev
EvalPlanQualNext() when implemented it... -:) Uncommented...
1999-05-25Another pgindent run. Sorry folks.Bruce Momjian
1999-05-25pgindent run over code.Bruce Momjian
1999-05-10Change error messages to oids come out as %u and not %d. Change has noBruce Momjian
real affect now.
1999-03-23Remove Tee code, move to _deadcode.Bruce Momjian
1999-03-20Fix for aggregate memory leaks from Erik Riedel.Bruce Momjian
1999-03-19I suggest the following portability patch, which does notBruce Momjian
change functionality, but makes the code more ANSI C'ish. My AIX xlc compiler barfs on all of these. Can someone please review and apply to current. <<port.patch>> Thanks Andreas
1999-02-22comment cleanup.Bruce Momjian
1999-02-21From: Tatsuo Ishii <t-ishii@sra.co.jp>Marc G. Fournier
Ok. I made patches replacing all of "#if FALSE" or "#if 0" to "#ifdef NOT_USED" for current. I have tested these patches in that the postgres binaries are identical.
1999-02-13Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian
1999-02-08Added LIMIT/OFFSET functionality including new regression test for it.Jan Wieck
Removed CURRENT keyword for rule queries and changed rules regression accordingly. CURRENT has beed announced to disappear in v6.5. Jan
1999-02-07Changed ExecConstraints() and ExecRelCheck() to cache the constraintsJan Wieck
qualification expression trees in the execution state. Prevents from memory exhaustion on INSERT, UPDATE or COPY to tables that have CHECK constraints. Speedup against the variant using freeObject() is more than factor 2. Jan
1999-02-07Missing semicolon in last fix :-}Jan Wieck
Jan
1999-02-07One more fix to QuerySnapshot usage in ExecutorStart(). MaybeJan Wieck
current QuerySnapshot could be NULL. Jan
1999-02-07Fixed problem with multiple portals shown up in portals_p2 regressionJan Wieck
test after new AllocSet code. Activated optimal AllocSet blocksize and chunk limit. Jan
1999-02-06New alloc set code using a memory block pool for small allocations.Jan Wieck
Jan
1999-02-02Add TEMP tables/indexes. Add COPY pfree(). Other cleanups.Bruce Momjian
1999-01-29Small fix for READ COMMITTED isolevel.Vadim B. Mikheev
1999-01-29Hope that execMain.c good merged.Vadim B. Mikheev
Fix for BEFORE ROW UPDATE triggers: result tuple may be different (due to concurrent update) from one initially produced by top level plan.
1999-01-29Trying to fix bad merging...Vadim B. Mikheev
1999-01-29READ COMMITTED isolevel is implemented and is default now.Vadim B. Mikheev