aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execMain.c
Commit message (Collapse)AuthorAge
...
* 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.
* 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
* Several changes here, not very related but touching some of the same files.Tom Lane1999-09-24
| | | | | | | | | | | | | | | | | | | | | * 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.
* Mega-commit to make heap_open/heap_openr/heap_close take anTom Lane1999-09-18
| | | | | | | | | | | | | | | | | 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.
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-17
|
* Final cleanup.Bruce Momjian1999-07-16
|
* Update #include cleanupsBruce Momjian1999-07-16
|
* Remove unused #includes in *.c files.Bruce Momjian1999-07-15
|
* Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian1999-07-15
|
* Remove QUERY_LIMIT and documenation on same. Change _ALIGN to TYPEALIGNBruce Momjian1999-06-17
| | | | for Irix.
* Reset evaluation plan tuple table next free slot counter to 0Vadim B. Mikheev1999-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | 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) ?
* I used bad style of comments and ... commented out some code inVadim B. Mikheev1999-06-06
| | | | | EvalPlanQualNext() when implemented it... -:) Uncommented...
* Another pgindent run. Sorry folks.Bruce Momjian1999-05-25
|
* pgindent run over code.Bruce Momjian1999-05-25
|
* Change error messages to oids come out as %u and not %d. Change has noBruce Momjian1999-05-10
| | | | real affect now.
* Remove Tee code, move to _deadcode.Bruce Momjian1999-03-23
|
* Fix for aggregate memory leaks from Erik Riedel.Bruce Momjian1999-03-20
|
* I suggest the following portability patch, which does notBruce Momjian1999-03-19
| | | | | | | | | | 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
* comment cleanup.Bruce Momjian1999-02-22
|
* From: Tatsuo Ishii <t-ishii@sra.co.jp>Marc G. Fournier1999-02-21
| | | | | | 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.
* Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian1999-02-13
|
* Added LIMIT/OFFSET functionality including new regression test for it.Jan Wieck1999-02-08
| | | | | | | Removed CURRENT keyword for rule queries and changed rules regression accordingly. CURRENT has beed announced to disappear in v6.5. Jan
* Changed ExecConstraints() and ExecRelCheck() to cache the constraintsJan Wieck1999-02-07
| | | | | | | | | 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
* Missing semicolon in last fix :-}Jan Wieck1999-02-07
| | | | Jan
* One more fix to QuerySnapshot usage in ExecutorStart(). MaybeJan Wieck1999-02-07
| | | | | | current QuerySnapshot could be NULL. Jan
* Fixed problem with multiple portals shown up in portals_p2 regressionJan Wieck1999-02-07
| | | | | | | | test after new AllocSet code. Activated optimal AllocSet blocksize and chunk limit. Jan
* New alloc set code using a memory block pool for small allocations.Jan Wieck1999-02-06
| | | | Jan
* Add TEMP tables/indexes. Add COPY pfree(). Other cleanups.Bruce Momjian1999-02-02
|
* Small fix for READ COMMITTED isolevel.Vadim B. Mikheev1999-01-29
|
* Hope that execMain.c good merged.Vadim B. Mikheev1999-01-29
| | | | | Fix for BEFORE ROW UPDATE triggers: result tuple may be different (due to concurrent update) from one initially produced by top level plan.
* Trying to fix bad merging...Vadim B. Mikheev1999-01-29
|
* READ COMMITTED isolevel is implemented and is default now.Vadim B. Mikheev1999-01-29
|
* Quick fix for subplan-related crash.Tom Lane1999-01-27
|
* Another SELECT speedup: extract OIDs of column print functionsTom Lane1999-01-27
| | | | | only once per SELECT, not once per tuple. 10% here, 10% there, pretty soon you're talking about real speedups ...
* SELECT FOR UPDATE is implemented...Vadim B. Mikheev1999-01-25
|
* SET TRANSACTION ISOLATION LEVEL ...Vadim B. Mikheev1998-12-18
| | | | | LOCK TABLE IN ... MODE ...implemented
* Serialized mode works!Vadim B. Mikheev1998-12-16
|
* Initial MVCC code.Vadim B. Mikheev1998-12-15
| | | | New code for locking buffer' context.
* New HeapTuple structure/interface.Vadim B. Mikheev1998-11-27
|
* New QUERY_LIMIT set command.Bruce Momjian1998-10-14
|
* Get rid of some long-dead code that thinks NOTIFY is passed to theTom Lane1998-10-01
| | | | | | planner/optimizer/executor. It isn't. Besides, most of the removed code consists of comments about how it's not right.
* Clean up existing debugging print statements.Thomas G. Lockhart1998-09-25
| | | | Modify comment blocks to insulate from pgindent.
* OK, folks, here is the pgindent output.Bruce Momjian1998-09-01
|
* Renaming cleanup, no pgindent yet.Bruce Momjian1998-09-01
|
* heap_fetch requires buffer pointer, must be released; heap_getnextBruce Momjian1998-08-19
| | | | | | | | | | | | | no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
* Make large objects their own relkind type. Fix dups in pg_class_mbBruce Momjian1998-08-06
| | | | files. Fix sequence creation hack for relkind type.
* Use Snapshot in heap access methods.Vadim B. Mikheev1998-07-27
|
* Cleanup Name usage.Bruce Momjian1998-07-20
|
* Conditionally execute Junk filter only when ORDER BY of columnsBruce Momjian1998-07-19
| | | | not in target list.