Tom Lane [Wed, 12 Nov 2003 22:53:16 +0000 (22:53 +0000)]
AcceptResult() was missing a case for PGRES_EMPTY_QUERY --- probably
my fault. Adding it fixes bogus message display when reading a block
comment at the end of a script file.
Tom Lane [Wed, 12 Nov 2003 21:15:59 +0000 (21:15 +0000)]
Cross-data-type comparisons are now indexable by btrees, pursuant to my
pghackers proposal of 8-Nov. All the existing cross-type comparison
operators (int2/int4/int8 and float4/float8) have appropriate support.
The original proposal of storing the right-hand-side datatype as part of
the primary key for pg_amop and pg_amproc got modified a bit in the event;
it is easier to store zero as the 'default' case and only store a nonzero
when the operator is actually cross-type. Along the way, remove the
long-since-defunct bigbox_ops operator class.
Tom Lane [Sun, 9 Nov 2003 21:30:38 +0000 (21:30 +0000)]
Add operator strategy and comparison-value datatype fields to ScanKey.
Remove the 'strategy map' code, which was a large amount of mechanism
that no longer had any use except reverse-mapping from procedure OID to
strategy number. Passing the strategy number to the index AM in the
first place is simpler and faster.
This is a preliminary step in planned support for cross-datatype index
operations. I'm committing it now since the ScanKeyEntryInitialize()
API change touches quite a lot of files, and I want to commit those
changes before the tree drifts under me.
Bruce Momjian [Sun, 9 Nov 2003 03:47:51 +0000 (03:47 +0000)]
I have attached a more comprehensive MSWIN FAQ patch. Basically, the
instructions were way out of date and incorrect. Installing Postgres
from Cygwin is easier these days than the FAQ would imply.
This patch already includes Andrew's previous patch.
Tom Lane [Fri, 7 Nov 2003 21:55:50 +0000 (21:55 +0000)]
Cause stats processes to detach from shared memory when started, so that
they do not prevent the postmaster from deleting the shmem segment during
a post-backend-crash restart cycle. Per recent discussion.
Tom Lane [Fri, 7 Nov 2003 21:27:38 +0000 (21:27 +0000)]
zero_damaged_pages must absolutely NOT be marked GUC_DISALLOW_IN_FILE,
else it cannot be used to handle failures detected during WAL replay.
Fortunately this flag isn't actually enforced yet, but get it right.
Bruce Momjian [Fri, 7 Nov 2003 15:31:14 +0000 (15:31 +0000)]
Add:
> * Allow CREATE TABLE foo (f1 INT CHECK (f1 > 0) CHECK (f1 < 10)) to work
> by searching for non-conflicting constraint names, and prefix with table name
Tom Lane [Wed, 5 Nov 2003 22:00:46 +0000 (22:00 +0000)]
Fix for this problem:
regression=# select 1 from tenk1 ta cross join tenk1 tb for update;
ERROR: no relation entry for relid 3
7.3 said "SELECT FOR UPDATE cannot be applied to a join", which was better
but still wrong, considering that 7.2 took the query just fine. Fix by
making transformForUpdate() ignore JOIN and other special RTE types,
rather than trying to mark them FOR UPDATE. The actual error message now
only appears if you explicitly name the join in FOR UPDATE.
Tom Lane [Sun, 2 Nov 2003 21:56:15 +0000 (21:56 +0000)]
Provide a way to run the parallel regression tests with a user-specified
limit on the number of simultaneous connections. Andrew Dunstan, with
review by Tom Lane.
Tom Lane [Fri, 31 Oct 2003 20:00:49 +0000 (20:00 +0000)]
When a superuser does GRANT or REVOKE on an object he doesn't own,
process the command as though it were issued by the object owner.
This prevents creating weird scenarios in which the same privileges
may appear to flow from different sources, and ensures that a superuser
can in fact revoke all privileges if he wants to. In particular this
means that the regression tests work when run by a superuser other than
the original bootstrap userid. Per report from Larry Rosenman.
Tom Lane [Fri, 31 Oct 2003 17:43:10 +0000 (17:43 +0000)]
Minor cleanup of PQunescapeBytea(). Avoid unportable assumptions about
behavior of malloc and realloc when request size is 0. Fix escape
sequence recognizer so that only valid 3-digit octal sequences are
treated as escape sequences ... isdigit() is not a correct test.