Bruce Momjian [Fri, 8 Oct 2004 00:36:23 +0000 (00:36 +0000)]
Add:
* Consider parallel processing a single query
This would involve using multiple threads or processes to do optimization,
sorting, or execution of single query. The major advantage of such a
feature would be to allow multiple CPUs to work together to process a
single query.
Tom Lane [Thu, 7 Oct 2004 20:36:52 +0000 (20:36 +0000)]
Change get_rule_expr so that when the input is a List, it displays the
list elements comma-separated instead of barfing. This allows elimination
of half a dozen redundant copies of that behavior, and also makes the
world safe again for pg_get_expr() applied to pg_index.indexprs, per gripe
from Alexander Zhiltsov.
Tom Lane [Thu, 7 Oct 2004 18:38:51 +0000 (18:38 +0000)]
Fix problems with SQL functions returning rowtypes that have dropped
columns. The returned tuple needs to have appropriate NULL columns
inserted so that it actually matches the declared rowtype. It seemed
convenient to use a JunkFilter for this, so I made some cleanups and
simplifications in the JunkFilter code to allow it to support this
additional functionality. (That in turn exposed a latent bug in
nodeAppend.c, which is that it was returning a tuple slot whose
descriptor didn't match its data.) Also, move check_sql_fn_retval
out of pg_proc.c and into functions.c, where it seems to more naturally
belong.
Bruce Momjian [Thu, 7 Oct 2004 17:03:50 +0000 (17:03 +0000)]
Update comment to fix nibble mention:
* We are not sure how much precision is in tv_usec, so we
* swap the high and low 16 bits of 'later' and XOR them with
* 'earlier'. On the off chance that the result is 0, we
* loop until it isn't.
Tom Lane [Thu, 7 Oct 2004 00:03:15 +0000 (00:03 +0000)]
XOR process PID into a backend's initial random seed, to ensure that
different backends get a reasonably wide set of initial seeds even if
gettimeofday returns tv_usec values with only a few bits of precision.
Per recent discussion.
Bruce Momjian [Wed, 6 Oct 2004 09:35:23 +0000 (09:35 +0000)]
Here is a patch to fix win32 ssl builds. Summary of changes:
* Links with -leay32 and -lssleay32 instead of crypto and ssl. On win32,
"crypto and ssl" is only used for static linking.
* Initializes SSL in the backend and not just in the postmaster. We
cannot pass the SSL context from the postmaster through the parameter
file, because it contains function pointers.
* Split one error check in be-secure.c. Previously we could not tell
which of three calls actually failed. The previous code also returned
incorrect error messages if SSL_accept() failed - that function needs to
use SSL_get_error() on the return value, can't just use the error queue.
* Since the win32 implementation uses non-blocking sockets "behind the
scenes" in order to deliver signals correctly, implements a version of
SSL_accept() that can handle this. Also, add a wait function in case
SSL_read or SSL_write() needs more data.
Neil Conway [Wed, 6 Oct 2004 08:20:58 +0000 (08:20 +0000)]
Slightly rearrange psql startup code so that we read psqlrc before printing
the startup banner. This allows "\set QUIET on" in psqlrc to do what the
user probably intended. Patch from Sean Chittenden, editorializing from
Neil Conway.
Neil Conway [Tue, 5 Oct 2004 00:12:49 +0000 (00:12 +0000)]
License cleanup: crypt.c and qsort.c to latest NetBSD CVS sources, to
pickup license clarification (3-clause BSD is now used). Add license
terms to memcmp.c (also from NetBSD), which previously had none.
Finally, pickup an upstream fix to crypt.c (const-ify some arrays).
Tom Lane [Mon, 4 Oct 2004 22:49:59 +0000 (22:49 +0000)]
Remove arithmetic operators on the 1-byte-char datatype, as per proposals
made several times in the past. Add coercion functions between "char"
and integer so that a workaround is possible if needed.
Tom Lane [Mon, 4 Oct 2004 22:13:14 +0000 (22:13 +0000)]
Correct the volatility labeling of ten timestamp-related functions,
per discussion from Friday. initdb not forced in this commit but I intend
to do that later.
Tom Lane [Mon, 4 Oct 2004 21:52:15 +0000 (21:52 +0000)]
PortalRun must guard against the possibility that the portal it's
running contains VACUUM or a similar command that will internally start
and commit transactions. In such a case, the original caller values of
CurrentMemoryContext and CurrentResourceOwner will point to objects that
will be destroyed by the internal commit. We must restore these pointers
to point to the newly-manufactured transaction context and resource owner,
rather than possibly pointing to deleted memory.
Also tweak xact.c so that AbortTransaction and AbortSubTransaction
forcibly restore a sane value for CurrentResourceOwner, much as they
have always done for CurrentMemoryContext. I'm not certain this is
necessary but I'm feeling paranoid today.
Responds to Sean Chittenden's bug report of 4-Oct.
Tom Lane [Mon, 4 Oct 2004 14:42:48 +0000 (14:42 +0000)]
Detect overflow in integer arithmetic operators (integer, smallint, and
bigint variants). Clean up some inconsistencies in error message wording.
Fix scanint8 to allow trailing whitespace in INT64_MIN case. Update
int8-exp-three-digits.out, which seems to have been ignored by the last
couple of people to modify the int8 regression test, and remove
int8-exp-three-digits-win32.out which is thereby exposed as redundant.
Bruce Momjian [Mon, 4 Oct 2004 13:43:59 +0000 (13:43 +0000)]
Make libpgport be front-end only and make libpgport_srv be a backend
library that uses palloc, ereport, etc. This simplifies the makefiles
for client applications.
Tom Lane [Sat, 2 Oct 2004 22:39:49 +0000 (22:39 +0000)]
Clean up handling of inherited-table update queries, per bug report
from Sebastian Böck. The fix involves being more consistent about
when rangetable entries are copied or modified. Someday we really
need to fix this stuff to not scribble on its input data structures
in the first place...
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.