Tom Lane [Fri, 1 Oct 2004 21:03:42 +0000 (21:03 +0000)]
Convert pg_stat_get_backend_idset to use the existing SRF support.
This seems the cleanest way of fixing its lack of a shutdown callback,
which was preventing it from working correctly in a query that didn't
run it to completion. Per bug report from Szima GÄbor.
Tom Lane [Fri, 1 Oct 2004 18:30:25 +0000 (18:30 +0000)]
Adjust postmaster to recognize that a lockfile containing its parent's PID
must be stale. Tweak example startup scripts to not use pg_ctl but launch
the postmaster directly, thereby ensuring that only the postmaster's direct
parent shell will be a postgres-owned process. In combination these should
fix the longstanding problem of the postmaster sometimes refusing to start
during reboot because it thinks the old lockfile is not stale.
Tom Lane [Fri, 1 Oct 2004 17:11:50 +0000 (17:11 +0000)]
Fallout from changing index locking rules: we can reduce the strength
of locking used by REINDEX. REINDEX needs only ShareLock on the parent
table, same as CREATE INDEX, plus an exclusive lock on the specific index
being processed.
Tom Lane [Fri, 1 Oct 2004 16:40:05 +0000 (16:40 +0000)]
Code review for NOWAIT patch: downgrade NOWAIT from fully reserved keyword
to unreserved keyword, use ereport not elog, assign a separate error code
for 'could not obtain lock' so that applications will be able to detect
that case cleanly.
Neil Conway [Fri, 1 Oct 2004 02:00:44 +0000 (02:00 +0000)]
Remove more traces of libpgtcl from the source tree. Also, make some
semi-related SGML cleanup. Original patch from ljb220@mindspring.com,
additional cleanup by Neil Conway.
Tom Lane [Thu, 30 Sep 2004 23:21:26 +0000 (23:21 +0000)]
Adjust index locking rules as per my proposal of earlier today. You
now are supposed to take some kind of lock on an index whenever you
are going to access the index contents, rather than relying only on a
lock on the parent table.
Tom Lane [Thu, 30 Sep 2004 21:12:45 +0000 (21:12 +0000)]
Add variant regression file to handle machines that convert -1e-700
to minus zero rather than zero; this includes at least Mac OS X 10.3
and Solaris 2.8.
Neil Conway [Thu, 30 Sep 2004 10:30:10 +0000 (10:30 +0000)]
Add a note suggesting that users should use the newer version of pg_dump
to perform upgrades, and cleanup some nearby text. Patch from Robert
Treat, editorializing by Neil Conway.
Tom Lane [Thu, 30 Sep 2004 00:24:27 +0000 (00:24 +0000)]
Come to think of it, functions in FROM have the same syntactic restriction
as CREATE INDEX did, and can be fixed the same way, for another small
improvement in usability and reduction in grammar size.
Tom Lane [Wed, 29 Sep 2004 23:39:20 +0000 (23:39 +0000)]
Split out everything that looks like a function call from c_expr into
a separate production func_expr. This allows us to accept all these
variants in the backwards-compatible syntax for creating a functional
index; which beats documenting exactly which things work and which don't.
Interestingly, it also seems to make the generated state machine a little
bit smaller.
Tom Lane [Tue, 28 Sep 2004 20:46:37 +0000 (20:46 +0000)]
Arrange to preallocate all required space for the buffer and FSM hash
tables in shared memory. This ensures that overflow of the lock table
creates no long-lasting problems. Per discussion with Merlin Moncure.
Tom Lane [Tue, 28 Sep 2004 00:49:04 +0000 (00:49 +0000)]
Remove duplicate PQclear(res) operations leading to double free() and
subsequent core dump. It looks like at one time DBLINK_RES_ERROR_AS_NOTICE
didn't include a PQclear, but now it does and so these other ones are
duplicate.
Bruce Momjian [Mon, 27 Sep 2004 14:15:49 +0000 (14:15 +0000)]
Remove completed items:
< Last updated: Sat Sep 25 21:33:44 EDT 2004
> Last updated: Mon Sep 27 10:15:31 EDT 2004
13,19d12
< Remove items before beta?
<
< Urgent
< ======
<
< * -Point-in-time data recovery using backup and write-ahead log
< * -Create native Win32 port
25d17
< * -Incremental backups
28d19
< * -Allow configuration files to be specified in a different directory
32,34d22
< * -Add the concept of dataspaces/tablespaces (Gavin)
< * -Allow logging of only data definition(DDL), or DDL and modification statements
< * -Allow log lines to include session-level information, like database and user
54d41
< * -Allow external interfaces to extend the GUC variable set 126d112
< * -Change factorial to return a numeric (Gavin)
141,142d126
< * -Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
< * -Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*) 147d130
< * -Make LENGTH() of CHAR() not count trailing spaces 150d132
< * -Support composite types as table columns
198,200d179
< * -Prevent mismatch of frontend/backend encodings from converting bytea
< data from being interpreted as encoded strings
< * -Fix upper()/lower() to work for multibyte encodings 217d195
< * -Order duplicate index entries on creation by ctid for faster heap lookups 242d219
< * -Be smarter about insertion of already-ordered data into btree index
265,266d241
< * -Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
< float4, numeric/decimal too 282d256
< * -Allow command blocks to ignore certain types of errors
302,303d275
< * -Allow savepoints / nested transactions (Alvaro)
< * -Use nested transactions to prevent syntax errors from aborting a transaction
306,307d277
< * -Prevent COMMENT ON DATABASE from using a database name
< * -Add NO WAIT LOCKs
325,326d294
< * -COMMENT ON [ CAST | CONVERSION | OPERATOR CLASS | LARGE OBJECT | LANGUAGE ]
< (Christopher) 334d301
< * -Allow more ISOLATION LEVELS to be accepted 347d313
< * -Add GUC setting to make created tables default to WITHOUT OIDS
365,369d330
< o -ALTER TABLE ADD COLUMN does not honor DEFAULT and non-CHECK CONSTRAINT
< o -ALTER TABLE ADD COLUMN column DEFAULT should fill existing
< rows with DEFAULT value
< o -ALTER TABLE ADD COLUMN column SERIAL doesn't create sequence because
< of the item above
371,373d331
< o -Allow ALTER TABLE to modify column lengths and change to binary
< compatible types
< o -Add ALTER DATABASE ... OWNER TO newowner
390,393d347
< o -Add ALTER DOMAIN, AGGREGATE, CONVERSION ... OWNER TO
< o -Add ALTER SEQUENCE ... OWNER TO
< o -Add ALTER INDEX that works just like ALTER TABLE already does
< on an index 404d357
< o -Add ALTER TABLE table SET WITHOUT CLUSTER (Christopher) 411d363
< o -Allow dump/load of CSV format 464d415
< o -Allow Java server-side programming 473d423
< o -Allow PL/pgSQL parameters to be specified by name and type during definition
493,495d442
< * -Allow psql \du to show users, and add \dg for groups
< * -Have psql \dn show only visible temp schemas using current_schemas()
< * -Have psql '\i ~/<tab><tab>' actually load files it displays from home dir
509,511d455
< o -Allow pg_dump to dump CREATE CONVERSION (Christopher)
< o -Make pg_restore continue after errors, so it acts more like pg_dump
< scripts 545d488
< o -Implement SET DESCRIPTOR
592,596d534
< * -Have AFTER triggers execute after the appropriate SQL statement in a
< function, not at the end of the function
< * -Print table names with constraint names in error messages, or make constraint
< names unique within a schema
< * -Issue NOTICE if foreign key data requires costly test to match primary key
614,615d551
< * -Use dependency information to dump data in proper order
< * -Have pg_dump -c clear the database using dependency information
694,695d629
< * -Provide automatic running of vacuum in the background in backend
< rather than in /contrib (Matthew) 828d761
< * -Use background process to write dirty shared buffers to disk 843d775
< * -Change representation of whole-tuple parameters to functions
850,852d781
< * -Add checks for fclose() failure (Tom)
< * -Change CVS ID to PostgreSQL
< * -Exit postmaster if postgresql.conf can not be opened
Neil Conway [Mon, 27 Sep 2004 04:12:03 +0000 (04:12 +0000)]
A few minor list-related cleanups:
(1) Replace while loop with the new forboth() construct in
parser/analyze.c
(2) Replace lcons() with lappend() in SearchCatCacheList(). Since these
now have the same performance, there is no reason to prefer lcons() in
this case, and using lappend() leads to cleaner code.
(3) Improve the name of the second parameter to for_each_cell()
Neil Conway [Mon, 27 Sep 2004 04:01:23 +0000 (04:01 +0000)]
Code cleanup: don't bother casting the argument to pfree() to void *
from another pointer type. Per C89, this is unnecessary, and it is common
practice throughout the rest of the tree anyway.
Tom Lane [Mon, 27 Sep 2004 01:39:02 +0000 (01:39 +0000)]
Rewrite ReadArrayStr() to avoid O(N^2) behavior on large strings,
and hopefully improve code clarity while at it. One intentional
semantics change: a backslashed space will not be treated as removable
trailing whitespace, as the prior coding would do. ISTM that if it
wouldn't be considered removable leading whitespace, it shouldn't be
stripped at the end either.
Bruce Momjian [Sun, 26 Sep 2004 02:14:47 +0000 (02:14 +0000)]
Here is a patch that adds the version info from libpq.rc to the DLL
build in mingw. The MSVC build already did this, but it was not linked
into the mingw one.
This is not the same as the versioninfo patch that's in the queue.
Please apply this one before beta-3 if at all possible.
Tom Lane [Sun, 26 Sep 2004 00:26:28 +0000 (00:26 +0000)]
Repair bug that would allow libpq to think a command had succeeded when
it really hadn't, due to double output of previous command's response.
Fix prevents recursive entry to libpq routines. Found by Jan Wieck.
Tom Lane [Fri, 24 Sep 2004 19:43:03 +0000 (19:43 +0000)]
GUC assign hooks that look at external state in deciding whether a
setting is valid must ignore that state and permit the assignment anyway
when source is PGC_S_OVERRIDE. Otherwise they may disallow a rollback
at transaction abort, which is The Wrong Thing. Per example from
Michael Fuhr 12-Sep-04.
Neil Conway [Fri, 24 Sep 2004 06:29:07 +0000 (06:29 +0000)]
Cleanup some ancient Ultrix / Alpha code in main() that is intended to
modify how unaligned memory accesses are dealt with. Document that this
is really what is going on, and merge the NOFIXADE and NOPRINTADE code
paths.
Neil Conway [Fri, 24 Sep 2004 01:36:37 +0000 (01:36 +0000)]
ExecProcAppend() wasn't called ExecAppend() because the latter name was
formerly used in execMain. Since that is no longer the case, this patch
renames ExecProcAppend() to ExecAppend() for the sake of consistency.
Tom Lane [Thu, 23 Sep 2004 20:27:50 +0000 (20:27 +0000)]
If we're going to print unrecognized result codes from SSL_get_error
in open_client_SSL, surely we should do it everywhere. Also make
message formatting conform to style guide.
Bruce Momjian [Thu, 23 Sep 2004 13:31:09 +0000 (13:31 +0000)]
This patch attempts to outline the supported level of SSL within libpq.
I haven't mentioned any of
~/.postgresql/{root.crt,postgresql.crt,postresql.key} even though they
are checked for in the code, since they do not appear to be supported. I
base this on discussions in pgsql-hackers.
Bruce Momjian [Thu, 23 Sep 2004 13:20:45 +0000 (13:20 +0000)]
This patch logs the error code in the default case, so that the user
stands a chance of looking it up. "Unrecognised error" is always
disheartening. :-)
Bruce Momjian [Thu, 23 Sep 2004 13:16:02 +0000 (13:16 +0000)]
This patch attempts to note the use of the root.crt file in the server.
Given that PostgreSQL will output a message complaining about it's
absence if you're using SSL mode, I feel it's important that it gets a
mention in the documentation at some point.
Tom Lane [Wed, 22 Sep 2004 19:13:52 +0000 (19:13 +0000)]
Arrange for hash join to skip scanning the outer relation if it detects
that the inner one is completely empty. Per recent discussion. Also some
cosmetic cleanups in nearby code.
Tom Lane [Wed, 22 Sep 2004 19:11:19 +0000 (19:11 +0000)]
Issue a CHECKPOINT just after creating the regression database. Without
this, it's hard to debug core-dump test failures, because WAL replay will
enthusiastically remove the core file (along with the rest of the
regression database directory). Per recent discussion, not to mention
bitter experience.
Tom Lane [Wed, 22 Sep 2004 17:41:51 +0000 (17:41 +0000)]
Adjust ExecMakeTableFunctionResult to produce a single all-nulls row
when a function that returns a single tuple (not a setof tuple) returns
NULL. This seems to be the most consistent behavior. It would have
taken a bit less code to make it return an empty table (zero rows) but
ISTM a non-SETOF function ought always return exactly one row. Per
bug report from Ivan-Sun1.
Neil Conway [Wed, 22 Sep 2004 04:25:16 +0000 (04:25 +0000)]
Some improvements for the tab-completion of psql. This should
address all of the items in the todo list and adds some new
things as well. Specifically:
* Add support for ALTER SEQUENCE ...
* Add "RENAME TO" for ALTER TRIGGER xx ON yy
* Pick proper table for ALTER TRIGGER xx ON ...
* Support for ALTER USER xxx ...
* Fix ALTER GROUP xxx DROP ...
* Fix ALTER DOMAIN xxx DROP ...
* Remove "OWNER TO" from ALTER DOMAIN xx DROP ...
* Fix ALTER DOMAIN xx SET DEFAULT ..
* Prevent ALTER INDEX xxx SET TABLESPACE from using "TO"
* Support for ALTER LANGUAGE xxx (RENAME TO)
* More support for ALTER TABLE xxx ALTER COLUMN xxx ...
* More support for COPY
Neil Conway [Wed, 22 Sep 2004 03:55:27 +0000 (03:55 +0000)]
This patch from Alvaro Herrera adds transaction ID to the list of
log_line_prefix escapes. The escape sequence used for this is %x.
%x previously meant "postmaster et al. stop here" -- this has been
renamed to %q.
Neil Conway [Tue, 21 Sep 2004 05:38:54 +0000 (05:38 +0000)]
Clarify TODO item: we ought to implement updatable views per SQL99, not
SQL92 (the former defines a much more ambitious subset of views that
need to be updatable).
Tom Lane [Tue, 21 Sep 2004 00:21:25 +0000 (00:21 +0000)]
Rotate on time boundaries that are sensible per local time rather than GMT.
Also, avoid truncating the file we just wrote into, which might otherwise
easily happen at DST boundaries. Ed L. and Tom Lane.
Tom Lane [Mon, 20 Sep 2004 23:00:12 +0000 (23:00 +0000)]
Change some of the existing plpgsql regression test cases so that they
exercise dollar quoting and named function parameters. AFAICS we had
no tests of either feature before.
Tom Lane [Mon, 20 Sep 2004 18:51:19 +0000 (18:51 +0000)]
Fix some shortcomings in psql's autocommit-off mode concerning detection
of commands for which a transaction block should not be forced. Recognize
VACUUM and other PreventTransactionChain commands; handle nested /* .. */
comments correctly; handle multibyte encodings correctly.
Michael Paesold with some kibitzing from Tom Lane.
Tom Lane [Mon, 20 Sep 2004 04:19:50 +0000 (04:19 +0000)]
Now that I look, table 8-1 has some other marginal misstatements in it.
If we're going to put brackets around optional precision specs in some
entries, we'd better do it in all.
Tom Lane [Sun, 19 Sep 2004 23:38:21 +0000 (23:38 +0000)]
Add defenses against plpython functions being declared to take or return
pseudotypes. Not sure why I neglected to add these checks at the same
time I added them to the other PLs, but it seems I did.