Vadim B. Mikheev [Sat, 14 Dec 1996 07:56:05 +0000 (07:56 +0000)]
Avoiding:
cc1: warnings being treated as errors
datum.c: In function `DatumGetSize':
datum.c:57: warning: unsigned value >= 0 is always 1
gmake[3]: *** [datum.o] Error 1
There was:
if (byVal) {
if (len >= 0 && len <= sizeof(Datum)) {
but len has type Size (unsigned int) and so now there is:
if (byVal) {
if (len <= sizeof(Datum)) {
Vadim B. Mikheev [Sat, 14 Dec 1996 05:55:27 +0000 (05:55 +0000)]
Avoiding
cc1: warnings being treated as errors
exc.c: In function 'ExcRaise':
exc.c:186: warning: passing arg 1 of 'Longjmp' from incompatible pointer type
gmake[3]: *** [exc.o] Error 1
Now we have:
#if defined (JMP_BUF)
longjmp(efp->context, 1);
#else
siglongjmp(efp->context, 1);
#endif
Vadim B. Mikheev [Sat, 14 Dec 1996 05:20:39 +0000 (05:20 +0000)]
Avoiding
cc1: warnings being treated as errors
transsup.c: In function `TransBlockGetLastTransactionIdStatus':
transsup.c:122: warning: unsigned value >= 0 is always 1
gmake[3]: *** [transsup.o] Error 1
...
1. _bt_compare fixed to work properly with new code in _bt_insertonpg
(old _bt_compare always returned >= 0 while comparing with P_HIKEY
on root page - it breaks root page when _bt_insertonpg tries insert
new minimal key into root page).
2. Fixed bug concerns "empty" pages: non-rightmost pages with only P_HIKEY
present on it. Such pages appear after vacuum.
Bruce Momjian [Sat, 30 Nov 1996 18:07:02 +0000 (18:07 +0000)]
This patch changes quite a few instances of references of Oid's
as ints and longs. Touches on quite a few function args as
well. Most other files look ok as far as Oids go...still checking
though...
Since Oids are type'd as unsigned ints, they should prolly be used
with the %ud format string in elog and sprintf messages. Not sure
what kind of strangeness that could produce.
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