Vadim B. Mikheev [Wed, 27 Nov 1996 07:14:51 +0000 (07:14 +0000)]
Setting MyProc->xid to current transaction' id in StartTransaction
and to InvalidTransactionId in CommitTransaction & AbortTransaction
(it's for new TransactionIdIsInProgress func).
Vadim B. Mikheev [Thu, 21 Nov 1996 06:13:43 +0000 (06:13 +0000)]
Fix memory overhelding while forming index' result:
memory allocation for ItemPointerData of heap' tuple is useless
because of FormRetrieveIndexResult makes neccessary palloc.
Vadim B. Mikheev [Thu, 21 Nov 1996 06:02:56 +0000 (06:02 +0000)]
Fix memory overhelding while forming index' result:
memory allocation for ItemPointerData of heap' tuple is useless
because of FormRetrieveIndexResult makes neccessary palloc.
Bruce Momjian [Wed, 20 Nov 1996 22:53:10 +0000 (22:53 +0000)]
There is a bug in aclinsert3 in the code which update the acl arrays.
When an acl item is added or updated the new entry is deleted if it has no
permissions and the acl array is shrinked. This is is done by decrementing
the number of items without updating the corresponding array size.
The array with the incorrect size is later read by pg_aclcheck and the entry
count is used to allocate a new array while the array size is used to copy
the old one. This causes a memory corruption and a backend crash.
This happens only to normal user as the administrator bypasses acl checks.
Massimo Dal Zotto
Bruce Momjian [Wed, 20 Nov 1996 22:35:19 +0000 (22:35 +0000)]
following is a little fix for libpq.
PQexec handles the possibility of multiple results from one
query by simply submitting an empty query after the first
result and waiting for an 'I' message.
Rules can generate errors with transaction abort after the
first 'C' message was recieved (e.g. if a C-language function
used in a rule calls elog(WARN, ...)). Thus we have to look
for.
Bruce Momjian [Wed, 20 Nov 1996 22:32:55 +0000 (22:32 +0000)]
Here is the patch for pg_dump not handling NULL values in 'insert'
mode properly. This will apply correctly to 1.09 & 2.0 sources.
From David H. Bennett
Marc G. Fournier [Thu, 14 Nov 1996 21:39:14 +0000 (21:39 +0000)]
Features added:
* Wrote max(date) and min(date) aggregates
* Wrote operator "-" for date; date - date yields number of days
difference
* Wrote operator+(date,int) and operator-(date,int); the int is the
number of days. Each operator returns a new date.
Bryan Henderson [Thu, 14 Nov 1996 10:25:54 +0000 (10:25 +0000)]
Remove most compile-time options, add a few runtime options to make up for it.
In particular, no more compiled-in default for PGDATA or LIBDIR. Commands
that need them need either invocation options or environment variables.
PGPORT default is hardcoded as 5432, but overrideable with options or
environment variables.
Marc G. Fournier [Wed, 13 Nov 1996 20:56:15 +0000 (20:56 +0000)]
Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>
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.