summaryrefslogtreecommitdiff
path: root/src/backend/executor
AgeCommit message (Collapse)Author
1997-04-03From: Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>Marc G. Fournier
Subject: [HACKERS] Aggregate function patches Here are the aggregate function patches I originally sent in last December. They fix sum() and avg() behavior for ints and floats when NULL values are involved. I was waiting to resubmit these until I had a chance to write a v6.0->v6.1 database upgrade script to ensure that existing v6.0 databases which have not been reloaded for v6.1 do no break with the new aggregate behavior. These scripts are included below. It's OK with me if someone wants to do something different with the upgrade strategy, but something like this was discussed a few weeks ago. Also, there were a couple of small items which cropped up in doing a clean install of 970403 (actually 970402 + 970403 changes since the full 970403 tar file appears to be damaged or at least suspect). They are the first two patches below and can be omitted if desired (although I think they aren't dangerous :).
1997-04-02Can't INSERT/UPDATE/DELETE sequence relation.Vadim B. Mikheev
1997-03-12From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier
Subject: [HACKERS] linux/alpha patches These patches lay the groundwork for a Linux/Alpha port. The port doesn't actually work unless you tweak the linker to put all the pointers in the first 32 bits of the address space, but it's at least a start. It implements the test-and-set instruction in Alpha assembly, and also fixes a lot of pointer-to-integer conversions, which is probably good anyway.
1997-03-12From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier
Subject: [HACKERS] better access control error messages This patch replaces the 'no such class or insufficient privilege' with distinct error messages that tell you whether the table really doesn't exist or whether access was denied.
1997-01-22Fixing bug in INDEXSCAN_PATCH:Vadim B. Mikheev
ExecInitIndexScan now works with operands of Param type and (!!!) postquel_execute() now substitutes param values before calling postquel_start().
1997-01-10include sem.h added, include string.h neede, from Erik Bertelsen for UltrixBruce Momjian
1997-01-10index_insert has now HeapRelation as last param (for unique indexVadim B. Mikheev
implementation).
1996-12-23Add cast to quiet compiler warning.Bryan Henderson
1996-12-11Rename postgres95 to PostgreSQL. Add comment for SELECT NULLBruce Momjian
1996-12-07Fix for SELECT NULL.Bruce Momjian
1996-12-01Fix compiler warning about unitialized variables.Bruce Momjian
1996-11-30As someone asked for this feature - patch for 1.09 follows.Bruce Momjian
Now You can do queries like select sum(some_func(x)) from ... select min(table1.x + table2.y) from table1, table2 where ... and so on. Vadim
1996-11-13Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>Marc G. Fournier
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.
1996-11-10All external function definitions now have prototypes that are checked.Bruce Momjian
1996-11-08More compile cleanupsBruce Momjian
1996-11-08Compile and warning cleanupBruce Momjian
1996-11-08D'Arcy's recent cleanupsMarc G. Fournier
1996-11-06Some compile failure fixes from Keith Parks <emkxp01@mtcc.demon.co.uk>Marc G. Fournier
1996-10-31add #include "postgres.h", as required by all .c filesMarc G. Fournier
1996-10-31Added needed include file.Bruce Momjian
1996-10-30Fixes:Marc G. Fournier
I found another bug in btree index. Looking at the code it seems that NULL keys are never used to build or scan a btree index (see the explain commands in the example). However this is not the case when a null key is retrieved in an outer loop of a join select and used in an index scan of an inner loop. This bug causes at least three kinds of problems: 1) the backend crashes when it tries to compare a text string with a null. 2) it is not possible to find tuples with null keys in a join. 3) null is considered equal to 0 when the datum is passed by value, see the last query. Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-10-27Simplify make files, add full dependencies.Bryan Henderson
1996-10-26D'Arcy's cleanupsMarc G. Fournier
1996-10-24Fixes:Marc G. Fournier
It's bug in nodeAgg.c on lines 241, 242: null_array = malloc(nagg); for (i=0;i<nagg;i++) null_array[i] = 'n'; oneTuple = heap_formtuple(tupType, tupValue, null_array); - your query has not only aggregates but also 'group by-ed' fields and so null_array should contain tupType->natts elements (tupType->natts > nagg in your case). Patch follows and it's very simple. VAdim
1996-10-23Major code cleanups from D'arcy (-Wall -Werror)Marc G. Fournier
1996-10-10Comment cleanup.Bruce Momjian
1996-10-07Modified Assert to be more selective.Bruce Momjian
1996-10-07Change new assert so it generates assert message rather than SIGSEG.Bruce Momjian
1996-10-05Fix assert to allow zero. OK'ed by Bryan.Bruce Momjian
1996-09-19Added querylimit patch...Marc G. Fournier
Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-16There is a bug in the function executor. The backend crashes while trying toMarc G. Fournier
execute an sql function containing an utility command (create, notify, ...). The bug is part in the planner, which returns a number of plans different than the number of commands if there are utility commands in the query, and in part in the function executor which assumes that all commands are normal query commands and causes a SIGSEGV trying to execute commands without plan. Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-16|Subject: Postgres patch: Assert attribute type matchMarc G. Fournier
| |Here's a patch for Version 2 only. It just adds an Assert to catch some |inconsistencies in the catalog classes. | |-- |Bryan Henderson Phone 408-227-6803 |San Jose, California |
1996-09-10Fixes:Marc G. Fournier
The problem is that the function arguments are not considered as possible key candidates for index scan and so only a sequential scan is possible inside the body of a function. I have therefore made some patches to the optimizer so that indices are now used also by functions. I have also moved the plan debug message from pg_eval to pg_plan so that it is printed also for plans genereated for function execution. I had also to add an index rescan to the executor because it ignored the parameters set in the execution state, they were flagged as runtime variables in ExecInitIndexScan but then never used by the executor so that the scan were always done with any key=1. Very odd. This means that an index rescan is now done twice for each function execution which uses an index, the first time when the index scan is initialized and the second when the actual function arguments are finally available for the execution. I don't know what is the cost of an double index scan but I suppose it is anyway less than the cost of a full sequential scan, at leat for large tables. This is my patch, you must also add -DINDEXSCAN_PATCH in Makefile.global to enable the changes. Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-08-28Clean up th ecompile process by centralizing the include filesMarc G. Fournier
- code compile tested, but due to a yet unresolved problem with parse.h's creation, compile not completed...
1996-08-26There, now we support GiST...now what? :)Marc G. Fournier
1996-08-19|From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier
| |This patch fixes a backend crash that happens sometimes when you try to |join on a field that contains NULL in some rows. Postgres tries to |compute a hash value of the field you're joining on, but when the field |is NULL, the pointer it thinks is pointing to the data is really just |pointing to random memory. This forces the hash value of NULL to be 0. | |It seems that nothing matches NULL on joins, even other NULL's (with or |without this patch). Is that what's supposed to happen? |
1996-07-30More cleanups by "Kurt J. Lidl" <lidl@va.pubnix.com>Marc G. Fournier
1996-07-26Minor bug fixMarc G. Fournier
1996-07-22More of Dr. George's changes...Marc G. Fournier
- src/backend/catalog/* - no changes - src/backend/executor/* - change how nodeHash.c handles running out of memory - src/backend/optimizer/* - mostly cosmetic changes
1996-07-19Fixes:Marc G. Fournier
'select distinct on' causes backend to crash submitted by: Chris Dunlop chris@onthe.net.au
1996-07-09Postgres95 1.01 Distribution - Virgin SourcesPG95-1_01Marc G. Fournier