summaryrefslogtreecommitdiff
path: root/src/include/executor/executor.h
Commit message (Collapse)AuthorAgeFilesLines
* First cut at full support for OUTER JOINs. There are still a few looseTom Lane2000-09-121-2/+4
| | | | | ends to clean up (see my message of same date to pghackers), but mostly it works. INITDB REQUIRED!
* GetAttributeByName and GetAttributeByNum should be declared to returnTom Lane2000-08-241-4/+4
| | | | Datum, not char*, for portability's sake.
* SQL-language functions are now callable in ordinary fmgr contexts ...Tom Lane2000-08-241-4/+10
| | | | | | for example, an SQL function can be used in a functional index. (I make no promises about speed, but it'll work ;-).) Clean up and simplify handling of functions returning sets.
* Move pg_checkretval out of the planner (where it never belonged) intoTom Lane2000-08-211-1/+2
| | | | | | pg_proc.c (where it's actually used). Fix it to correctly handle tlists that contain resjunk target items, and improve error messages. This addresses bug reported by Krupnikov 6-July-00.
* Clean up inefficiency in ExecRelCheck, and cause it to do the rightTom Lane2000-08-061-3/+3
| | | | | | thing when there are multiple result relations. Formerly, during something like 'UPDATE foo*', foo's constraints and *only* foo's constraints would be applied to all foo's children. Wrong-o ...
* First stage of reclaiming memory in executor by resetting short-termTom Lane2000-07-121-14/+17
| | | | | | memory contexts. Currently, only leaks in expressions executed as quals or projections are handled. Clean up some old dead cruft in executor while at it --- unused fields in state nodes, that sort of thing.
* Reimplement nodeMaterial to use a temporary BufFile (or even memory, if theTom Lane2000-06-181-2/+1
| | | | | | | | | | materialized tupleset is small enough) instead of a temporary relation. This was something I was thinking of doing anyway for performance, and Jan says he needs it for TOAST because he doesn't want to cope with toasting noname relations. With this change, the 'noname table' support in heap.c is dead code, and I have accordingly removed it. Also clean up 'noname' plan handling in planner --- nonames are either sort or materialize plans, and it seems less confusing to handle them separately under those names.
* Fix performance problems with pg_index lookups (see, for example,Tom Lane2000-06-171-3/+2
| | | | | | | | | | discussion of 5/19/00). pg_index is now searched for indexes of a relation using an indexscan. Moreover, this is done once and cached in the relcache entry for the relation, in the form of a list of OIDs for the indexes. This list is used by the parser and executor to drive lookups in the pg_index syscache when they want to know the properties of the indexes. Net result: index information will be fully cached for repetitive operations such as inserts.
* Second round of fmgr changes: triggers are now invoked in new style,Tom Lane2000-05-291-1/+3
| | | | CurrentTriggerData is history.
* Add:Bruce Momjian2000-01-261-2/+3
| | | | | | * 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-191-14/+3
| | | | | | | | | 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.
* Rename several destroy* functions/tags to drop*.Bruce Momjian1999-12-101-2/+2
|
* Avoid duplicate ExecTypeFromTL() call in ExecInitJunkFilter() by passingTom Lane1999-10-301-2/+2
| | | | | | | 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.
* Several changes here, not very related but touching some of the same files.Tom Lane1999-09-241-17/+1
| | | | | | | | | | | | | | | | | | | | | * 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.
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-171-2/+1
|
* Change #include's to use <> and "" as appropriate.Bruce Momjian1999-07-151-2/+2
|
* Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian1999-07-151-4/+1
|
* Remove QUERY_LIMIT and documenation on same. Change _ALIGN to TYPEALIGNBruce Momjian1999-06-171-7/+1
| | | | for Irix.
* pgindent run over code.Bruce Momjian1999-05-251-7/+9
|
* Add missing function prototypes to stifle gcc warnings.Tom Lane1999-04-161-2/+4
|
* Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian1999-02-131-2/+2
|
* Added LIMIT/OFFSET functionality including new regression test for it.Jan Wieck1999-02-081-2/+3
| | | | | | | 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-071-2/+3
| | | | | | | | | 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
* New HeapTuple structure/interface.Vadim B. Mikheev1998-11-271-2/+2
|
* New QUERY_LIMIT set command.Bruce Momjian1998-10-141-1/+5
|
* Make functions static or ifdef NOT_USED. Prevent pg_version creation.Bruce Momjian1998-10-081-3/+1
|
* OK, folks, here is the pgindent output.Bruce Momjian1998-09-011-37/+20
|
* Renaming cleanup, no pgindent yet.Bruce Momjian1998-09-011-2/+2
|
* Use Snapshot in heap access methods.Vadim B. Mikheev1998-07-271-3/+3
|
* Inline some small functions called for every row.Bruce Momjian1998-04-241-3/+39
|
* pgindent run before 6.3 release, with Thomas' requested changes.Bruce Momjian1998-02-261-20/+37
|
* Subselects...Vadim B. Mikheev1998-02-131-1/+2
|
* Pass attypmod through to executor by adding to Var and Resdom.Bruce Momjian1998-02-101-17/+1
|
* Fix for SELECT INTO TABLE for varchar().Bruce Momjian1998-01-191-1/+3
|
* Cleanup of prototypes. FIx for PQtrace start/stop several times.Bruce Momjian1998-01-141-37/+19
|
* Make parser functions static where possible.Bruce Momjian1997-11-261-3/+3
|
* Remove all time travel stuff. Small parser cleanup.Bruce Momjian1997-11-201-3/+3
|
* Make GetAttributeByNum visible again for external use.Bruce Momjian1997-09-271-3/+4
|
* Used modified version of indent that understands over 100 typedefs.Bruce Momjian1997-09-081-68/+68
|
* Another PGINDENT run that changes variable indenting and case label ↵Bruce Momjian1997-09-081-35/+35
| | | | indenting. Also static variable indenting.
* Massive commit to run PGINDENT on all *.c and *.h files.Bruce Momjian1997-09-071-85/+104
|
* + ExecConstraints ()Vadim B. Mikheev1997-08-221-1/+2
|
* Make functions static where possible, enclose unused functions in #ifdef ↵Bruce Momjian1997-08-191-37/+1
| | | | NOT_USED.
* Fix for SELECT * INTO TABLE for char(), varchar() fields.Bruce Momjian1997-05-311-1/+4
|
* Added needed prototype.Bruce Momjian1996-12-261-1/+2
| | | | Bruce Momjian
* Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>Marc G. Fournier1996-11-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: * Unique index capability works using the syntax 'create unique index'. * Duplicate OID's in the system tables are removed. I put little scripts called 'duplicate_oids' and 'find_oid' in include/catalog that help to find and remove duplicate OID's. I also moved 'unused_oids' from backend/catalog to include/catalog, since it has to be in the same directory as the include files in order to work. * The backend tries converting the name of a function or aggregate to all lowercase if the original name given doesn't work (mostly for compatibility with ODBC). * You can 'SELECT NULL' to your heart's content. * I put my _bt_updateitem fix in instead, which uses _bt_insertonpg so that even if the new key is so big that the page has to be split, everything still works. * All literal references to system catalog OID's have been replaced with references to define'd constants from the catalog header files. * I added a couple of node copy functions. I think this was a preliminary attempt to get rules to work.
* All external function definitions now have prototypes that are checked.Bruce Momjian1996-11-101-2/+2
|
* Another run through.Marc G. Fournier1996-11-051-16/+6
| | | | | This gets us a clean compile of 'common' and 'gist' with *clean* #include files
* More cleans of the inter-dependencies in the #include filesMarc G. Fournier1996-11-031-45/+10
|
* remove:Marc G. Fournier1996-10-311-2/+1
| | | | | #include "postgres.h" #include "c.h"