]> granicus.if.org Git - postgresql/log
postgresql
18 years agoAdd:
Bruce Momjian [Wed, 19 Apr 2006 21:50:19 +0000 (21:50 +0000)]
Add:

>
>  o Add new version of PQescapeString() that doesn't double backslashes
>    that are part of a client-only multibyte sequence
>
>    Single-quote is not a valid byte in any supported client-only
>    encoding.
>
>  o Add new version of PQescapeString() that doesn't double
>    backslashes when standard_conforming_strings is true and
>    non-E strings are used

18 years agoFix problem that sscanf(buf, "%d", &val) eats leading white space, but
Bruce Momjian [Wed, 19 Apr 2006 18:49:09 +0000 (18:49 +0000)]
Fix problem that sscanf(buf, "%d", &val) eats leading white space, but
our to_* functions were not handling that.

18 years agoRemove use of lorder and tsort while building static libraries. There's
Tom Lane [Wed, 19 Apr 2006 16:32:08 +0000 (16:32 +0000)]
Remove use of lorder and tsort while building static libraries.  There's
no evidence that any currently-supported platform needs this, and good
reason to think that any platform that did need it couldn't use the static
libraries anyway --- libpq, at least, has circular references.  Removing
the code shuts up tsort warnings about the circular references on some
platforms.

18 years agoFix ancient memory leak in PQprintTuples(); our code no longer uses this
Tom Lane [Wed, 19 Apr 2006 16:15:29 +0000 (16:15 +0000)]
Fix ancient memory leak in PQprintTuples(); our code no longer uses this
routine, but perhaps some applications do.  Found by Martijn van Oosterhout
using Coverity.

18 years agoFix a couple of rather-pointless-but-easily-fixed Coverity warnings.
Tom Lane [Wed, 19 Apr 2006 16:02:17 +0000 (16:02 +0000)]
Fix a couple of rather-pointless-but-easily-fixed Coverity warnings.
Per Martijn van Oosterhout.

18 years agoC code whitespace inprovement for formatting.c.
Bruce Momjian [Wed, 19 Apr 2006 14:48:06 +0000 (14:48 +0000)]
C code whitespace inprovement for formatting.c.

18 years agoAdd:
Bruce Momjian [Wed, 19 Apr 2006 02:46:32 +0000 (02:46 +0000)]
Add:

>    o Add reporting of the current WAL file, perhaps as part of
>      partial log file archiving

18 years agoRemove kill mention in install docs, was for pre-7.0 releases.
Bruce Momjian [Tue, 18 Apr 2006 22:52:07 +0000 (22:52 +0000)]
Remove kill mention in install docs, was for pre-7.0 releases.

18 years agoMention "syntax" error as not logged by log_statement.
Bruce Momjian [Tue, 18 Apr 2006 12:41:15 +0000 (12:41 +0000)]
Mention "syntax" error as not logged by log_statement.
Backpatch.

18 years agoDocument that errors are not output by log_statement (was they were in
Bruce Momjian [Tue, 18 Apr 2006 00:52:23 +0000 (00:52 +0000)]
Document that errors are not output by log_statement (was they were in
8.0), and add as suggestion to use log_min_error_statement for this
purpose.  I also fixed the code so the first EXECUTE has it's prepare,
rather than the last which is what was in the current code.  Also remove
"protocol" prefix for SQL EXECUTE output because it is not accurate.

Backpatch to 8.1.X.

18 years agoFix the torn-page hazard for PITR base backups by forcing full page writes
Tom Lane [Mon, 17 Apr 2006 18:55:05 +0000 (18:55 +0000)]
Fix the torn-page hazard for PITR base backups by forcing full page writes
to occur between pg_start_backup() and pg_stop_backup(), even if the GUC
setting full_page_writes is OFF.  Per discussion, doing this in combination
with the already-existing checkpoint during pg_start_backup() should ensure
safety against partial page updates being included in the backup.  We do
not have to force full page writes to occur during normal PITR operation,
as I had first feared.

18 years agoDone:
Bruce Momjian [Mon, 17 Apr 2006 03:18:07 +0000 (03:18 +0000)]
Done:

<  o Update pg_dump and psql to use the new COPY libpq API (Christopher)
>  o -Update pg_dump and psql to use the new COPY libpq API (Christopher)

18 years agoRemove:
Bruce Momjian [Sat, 15 Apr 2006 18:13:11 +0000 (18:13 +0000)]
Remove:

<  o %Have pg_dump use multi-statement transactions for INSERT dumps

18 years agoDocument that pg_dump -d/-D prevents invalid data from canceling the
Bruce Momjian [Sat, 15 Apr 2006 18:11:16 +0000 (18:11 +0000)]
Document that pg_dump -d/-D prevents invalid data from canceling the
entire table load.

18 years agoSupport the syntax
Tom Lane [Sat, 15 Apr 2006 17:45:46 +0000 (17:45 +0000)]
Support the syntax
CREATE AGGREGATE aggname (input_type) (parameter_list)
along with the old syntax where the input type was named in the parameter
list.  This fits more naturally with the way that the aggregate is identified
in DROP AGGREGATE and other utility commands; furthermore it has a natural
extension to handle multiple-input aggregates, where the basetype-parameter
method would get ugly.  In fact, this commit fixes the grammar and all the
utility commands to support multiple-input aggregates; but DefineAggregate
rejects it because the executor isn't fixed yet.
I didn't do anything about treating agg(*) as a zero-input aggregate instead
of artificially making it a one-input aggregate, but that should be considered
in combination with supporting multi-input aggregates.

18 years agoDone:
Bruce Momjian [Fri, 14 Apr 2006 22:26:22 +0000 (22:26 +0000)]
Done:

> * -Re-enable the GUC full_page_writes in 8.2 when reliability issues have

18 years agoMake the world safe for full_page_writes. Allow XLOG records that try to
Tom Lane [Fri, 14 Apr 2006 20:27:24 +0000 (20:27 +0000)]
Make the world safe for full_page_writes.  Allow XLOG records that try to
update no-longer-existing pages to fall through as no-ops, but make a note
of each page number referenced by such records.  If we don't see a later
XLOG entry dropping the table or truncating away the page, complain at
the end of XLOG replay.  Since this fixes the known failure mode for
full_page_writes = off, revert my previous band-aid patch that disabled
that GUC variable.

18 years agoRepair a low-probability race condition identified by Qingqing Zhou.
Tom Lane [Fri, 14 Apr 2006 03:38:56 +0000 (03:38 +0000)]
Repair a low-probability race condition identified by Qingqing Zhou.
If a process abandons a wait in LockBufferForCleanup (in practice,
only happens if someone cancels a VACUUM) just before someone else
sends it a signal indicating the buffer is available, it was possible
for the wakeup to remain in the process' semaphore, causing misbehavior
next time the process waited for an lmgr lock.  Rather than try to
prevent the race condition directly, it seems best to make the lock
manager robust against leftover wakeups, by having it repeat waiting
on the semaphore if the lock has not actually been granted or denied
yet.

18 years agoFix similar_escape() so that SIMILAR TO works properly for patterns involving
Tom Lane [Thu, 13 Apr 2006 18:01:31 +0000 (18:01 +0000)]
Fix similar_escape() so that SIMILAR TO works properly for patterns involving
alternatives ("|" symbol).  The original coding allowed the added ^ and $
constraints to be absorbed into the first and last alternatives, producing
a pattern that would match more than it should.  Per report from Eric Noriega.

I also changed the pattern to add an ARE director ("***:"), ensuring that
SIMILAR TO patterns do not change behavior if regex_flavor is changed.  This
is necessary to make the non-capturing parentheses work, and seems like a
good idea on general principles.

Back-patched as far as 7.4.  7.3 also has the bug, but a fix seems impractical
because that version's regex engine doesn't have non-capturing parens.

18 years agoFix HTML markup.
Bruce Momjian [Thu, 13 Apr 2006 12:20:36 +0000 (12:20 +0000)]
Fix HTML markup.

18 years agoUpdate tutorial URL's.
Bruce Momjian [Thu, 13 Apr 2006 12:14:41 +0000 (12:14 +0000)]
Update tutorial URL's.

18 years agoUpdate URL for SQL tutorial.
Bruce Momjian [Thu, 13 Apr 2006 12:09:08 +0000 (12:09 +0000)]
Update URL for SQL tutorial.

18 years agoUpdate AIX FAQ:
Bruce Momjian [Thu, 13 Apr 2006 11:41:02 +0000 (11:41 +0000)]
Update AIX FAQ:

At any rate, here's a revision to CVS HEAD to reflect some changes by
myself and by Seneca Cunningham for the AIX FAQ.  It touches on the
following issues:

1.  memcpy pointer patch for dynahash.c

2.  AIX memory management, which can, for 32 bit cases, bite people
    quite unexpectedly...

Chris Browne

18 years agoUpdate:
Bruce Momjian [Thu, 13 Apr 2006 10:50:13 +0000 (10:50 +0000)]
Update:

<   multiple I/O channels simultaneously.
>   multiple I/O channels simultaneously.  One idea is to create a
>   background reader that can pre-fetch sequential and index scan
>   pages needed by other backends.  This could be expanded to allow
>   concurrent reads from multiple devices in a partitioned table.

18 years agoFix an ancient oversight in btree xlog replay. When trying to determine if an
Tom Lane [Thu, 13 Apr 2006 03:53:05 +0000 (03:53 +0000)]
Fix an ancient oversight in btree xlog replay.  When trying to determine if an
upper-level insertion completes a previously-seen split, we cannot simply grab
the downlink block number out of the buffer, because the buffer could contain
a later state of the page --- or perhaps the page doesn't even exist at all
any more, due to relation truncation.  These possibilities have been masked up
to now because the use of full_page_writes effectively ensured that no xlog
replay routine ever actually saw a page state newer than its own change.
Since we're deprecating full_page_writes in 8.1.*, there's no need to fix this
in existing release branches, but we need a fix in HEAD if we want to have any
hope of re-allowing full_page_writes.  Accordingly, adjust the contents of
btree WAL records so that we can always get the downlink block number from the
WAL record rather than having to depend on buffer contents.  Per report from
Kevin Grittner and Peter Brant.

Improve a few comments in related code while at it.

18 years agoFix pg_restore -n option to do what the man page says it does. The
Tom Lane [Wed, 12 Apr 2006 22:18:48 +0000 (22:18 +0000)]
Fix pg_restore -n option to do what the man page says it does.  The
original coding only worked if one of the selTypes restriction options
was also given.  Per report from Nick Johnson.

18 years agoChange int->int32, for clarity.
Bruce Momjian [Wed, 12 Apr 2006 21:46:31 +0000 (21:46 +0000)]
Change int->int32, for clarity.

jw.pgsql@sduept.com

18 years agoAdd, "How do I submit a patch" FAQ item.
Bruce Momjian [Wed, 12 Apr 2006 20:03:54 +0000 (20:03 +0000)]
Add, "How do I submit a patch" FAQ item.

18 years agoAdd second sentence:
Bruce Momjian [Wed, 12 Apr 2006 18:56:16 +0000 (18:56 +0000)]
Add second sentence:
    <P>The maximum table size, row size, and maximum number of columns
    can be quadrupled by increasing the default block size to 32k.  The
    maximum table size can also be increased using table partitioning.</P>

18 years agoUpdated Japanese FAQ, version 2.
Bruce Momjian [Tue, 11 Apr 2006 21:21:52 +0000 (21:21 +0000)]
Updated Japanese FAQ, version 2.

J.Kuwamura

18 years agoUpdate Japanese FAQ, backpatch.
Bruce Momjian [Tue, 11 Apr 2006 21:18:03 +0000 (21:18 +0000)]
Update Japanese FAQ, backpatch.

J.Kuwamura

18 years agoOops, sysctl, not sysconf, for FreeBSD.
Bruce Momjian [Tue, 11 Apr 2006 21:04:52 +0000 (21:04 +0000)]
Oops, sysctl, not sysconf, for FreeBSD.

18 years agoFix typo.
Neil Conway [Tue, 11 Apr 2006 20:26:40 +0000 (20:26 +0000)]
Fix typo.

18 years agoMore FreeBSD jail wording improvements.
Bruce Momjian [Tue, 11 Apr 2006 19:45:33 +0000 (19:45 +0000)]
More FreeBSD jail wording improvements.

18 years agoUpdate jail wording to mention non-root users.
Bruce Momjian [Tue, 11 Apr 2006 19:42:27 +0000 (19:42 +0000)]
Update jail wording to mention non-root users.

18 years agoAdd documentation about running postmasters in FreeBSD jails (use
Bruce Momjian [Tue, 11 Apr 2006 19:26:42 +0000 (19:26 +0000)]
Add documentation about running postmasters in FreeBSD jails (use
separate users).

18 years agoThere is updated Russian translation of the FAQ in the attachment.
Bruce Momjian [Tue, 11 Apr 2006 15:48:11 +0000 (15:48 +0000)]
There is updated Russian translation of the FAQ in the attachment.

Victor Vislobokov

18 years agoDone, per Tom:
Bruce Momjian [Tue, 11 Apr 2006 02:08:19 +0000 (02:08 +0000)]
Done, per Tom:

< * Allow user-defined functions retuning a domain value to enforce domain
> * -Allow user-defined functions retuning a domain value to enforce domain

18 years agoAdd:
Bruce Momjian [Mon, 10 Apr 2006 23:15:46 +0000 (23:15 +0000)]
Add:

* Re-enable the GUC full_page_writes in 8.2 when reliability issues have
  been addressed

18 years agoSuppress unused-variable warning on platforms without HAVE_SYSLOG.
Tom Lane [Mon, 10 Apr 2006 21:53:38 +0000 (21:53 +0000)]
Suppress unused-variable warning on platforms without HAVE_SYSLOG.
Magnus

18 years agoAdd:
Bruce Momjian [Mon, 10 Apr 2006 21:06:23 +0000 (21:06 +0000)]
Add:

> * Allow log_min_messages to be specified on a per-module basis
>
>   This would allow administrators to see more detailed information from
>   specific sections of the backend, e.g. checkpoints, autovacuum, etc.

18 years agoFix stupid mistake in rank_cd_def cleanup
Teodor Sigaev [Mon, 10 Apr 2006 09:56:52 +0000 (09:56 +0000)]
Fix stupid mistake in rank_cd_def cleanup

18 years agoFix another const-decoration mismatch, per Magnus.
Tom Lane [Sun, 9 Apr 2006 22:01:19 +0000 (22:01 +0000)]
Fix another const-decoration mismatch, per Magnus.

18 years agoAdd comment for why we recompile pgport C files.
Bruce Momjian [Sun, 9 Apr 2006 20:27:27 +0000 (20:27 +0000)]
Add comment for why we recompile pgport C files.

# Need to recomple any libpgport object files because we need these
# object files to use the same compile flags as libpq.  If we used
# the object files from libpgport, this would not be true on all
# platforms.

18 years agoAdd:
Bruce Momjian [Sun, 9 Apr 2006 20:24:30 +0000 (20:24 +0000)]
Add:

< * Experiment with multi-threaded backend [thread]
> * Experiment with multi-threaded backend for backend creation [thread]
1003a1004,1008
>
> * Experiment with multi-threaded backend better resource utilization
>
>   This would allow a single query to make use of multiple CPU's or
>   multiple I/O channels simultaneously.

18 years agoSuppress a couple of minor compiler warnings, per Magnus.
Tom Lane [Sun, 9 Apr 2006 19:21:34 +0000 (19:21 +0000)]
Suppress a couple of minor compiler warnings, per Magnus.

18 years agoRevert my best_inner_indexscan patch of yesterday, which turns out to have
Tom Lane [Sun, 9 Apr 2006 18:18:41 +0000 (18:18 +0000)]
Revert my best_inner_indexscan patch of yesterday, which turns out to have
had a bad side-effect: it stopped finding plans that involved BitmapAnd
combinations of indexscans using both join and non-join conditions.  Instead,
make choose_bitmap_and more aggressive about detecting redundancies between
BitmapOr subplans.

18 years agoUpdate:
Bruce Momjian [Sun, 9 Apr 2006 03:27:06 +0000 (03:27 +0000)]
Update:

> * Allow the creation of indexes with mixed ascending/descending
>   specifiers
>
>   This is possible now by creating an operator class with reversed sort
>   operators.  One complexity is that NULLs would then appear at the start
>   of the result set, and this might affect certain sort types, like
>   merge join.
>

18 years agoFix best_inner_indexscan to actually enforce that an "inner indexscan" use
Tom Lane [Sat, 8 Apr 2006 21:32:17 +0000 (21:32 +0000)]
Fix best_inner_indexscan to actually enforce that an "inner indexscan" use
at least one join condition as an indexqual.  Before bitmap indexscans, this
oversight didn't really cost much except for redundantly considering the
same join paths twice; but as of 8.1 it could result in silly bitmap scans
that would do the same BitmapOr twice and then BitmapAnd these together :-(

18 years agoFix EXPLAIN so that it can drill down through multiple levels of subplan
Tom Lane [Sat, 8 Apr 2006 18:49:52 +0000 (18:49 +0000)]
Fix EXPLAIN so that it can drill down through multiple levels of subplan
when trying to locate the referent of a RECORD variable.  This fixes the
'record type has not been registered' failure reported by Stefan
Kaltenbrunner about a month ago.  A side effect of the way I chose to
fix it is that most variable references in join conditions will now be
properly labeled with the variable's source table name, instead of the
not-too-helpful 'outer' or 'inner' we used to use.

18 years agoFix pg_dumpall to do something sane when a pre-8.1 installation has
Tom Lane [Fri, 7 Apr 2006 21:26:29 +0000 (21:26 +0000)]
Fix pg_dumpall to do something sane when a pre-8.1 installation has
identically named user and group: we merge these into a single entity
with LOGIN permission.  Also, add ORDER BY commands to ensure consistent
dump ordering, for ease of comparing outputs from different installations.

18 years agoRevert getaddrinfo configure changes until we get a solution that is
Andrew Dunstan [Fri, 7 Apr 2006 17:50:03 +0000 (17:50 +0000)]
Revert getaddrinfo configure changes until we get a solution that is
properly tested on Tru64 - pre recent discussion (or lack thereof) on -hackers.

18 years agoFix make_restrictinfo_from_bitmapqual() to preserve AND/OR flatness of its
Tom Lane [Fri, 7 Apr 2006 17:05:39 +0000 (17:05 +0000)]
Fix make_restrictinfo_from_bitmapqual() to preserve AND/OR flatness of its
output, ie, no OR immediately below an OR.  Otherwise we get Asserts or
wrong answers for cases such as
select * from tenk1 a, tenk1 b
where (a.ten = b.ten and (a.unique1 = 100 or a.unique1 = 101))
   or (a.hundred = b.hundred and a.unique1 = 42);
Per report from Rafael Martinez Guerrero.

18 years agoRemove the pgstats logic for delaying destruction of stats table entries.
Tom Lane [Thu, 6 Apr 2006 20:38:00 +0000 (20:38 +0000)]
Remove the pgstats logic for delaying destruction of stats table entries.
Per recent discussion, this seems to be making the stats less accurate
rather than more so, particularly on Windows where PID values may be
reused very quickly.  Patch by Peter Brant.

18 years agoBuild src/test/regress/README during tarball making like the other
Peter Eisentraut [Thu, 6 Apr 2006 18:54:37 +0000 (18:54 +0000)]
Build src/test/regress/README during tarball making like the other
generated text files.  Fix build of that file, too.

Put the text files in the right place during make dist, so there are no
extra manual steps required anymore.

18 years agoUpdate AIX FAQ to show readline options more clearly.
Bruce Momjian [Wed, 5 Apr 2006 22:55:05 +0000 (22:55 +0000)]
Update AIX FAQ to show readline options more clearly.

Backpatch FAQ's to 8.1.X.

18 years agoFix a bunch of problems with domains by making them use special input functions
Tom Lane [Wed, 5 Apr 2006 22:11:58 +0000 (22:11 +0000)]
Fix a bunch of problems with domains by making them use special input functions
that apply the necessary domain constraint checks immediately.  This fixes
cases where domain constraints went unchecked for statement parameters,
PL function local variables and results, etc.  We can also eliminate existing
special cases for domains in places that had gotten it right, eg COPY.

Also, allow domains over domains (base of a domain is another domain type).
This almost worked before, but was disallowed because the original patch
hadn't gotten it quite right.

18 years agoWhen merging PO files, take into consideration translations in other PO
Peter Eisentraut [Wed, 5 Apr 2006 13:40:15 +0000 (13:40 +0000)]
When merging PO files, take into consideration translations in other PO
files of the same languages.  That way, similar or equal translations in
different programs are automatically propagated and the life of translators
becomes a little bit easier.

18 years agoAdd a field to the first page of each WAL file to indicate the
Tom Lane [Wed, 5 Apr 2006 03:34:05 +0000 (03:34 +0000)]
Add a field to the first page of each WAL file to indicate the
XLOG_BLCKSZ.  This ought to help in preventing configuration mismatch
problems if anyone tries to ship PITR files between servers compiled
with different XLOG_BLCKSZ settings.  Simon Riggs

18 years agoDon't use BLCKSZ for the physical length of the pg_control file, but
Tom Lane [Tue, 4 Apr 2006 22:39:59 +0000 (22:39 +0000)]
Don't use BLCKSZ for the physical length of the pg_control file, but
instead a dedicated symbol.  This probably makes no functional difference
for likely values of BLCKSZ, but it makes the intent clearer.
Simon Riggs, minor editorialization by Tom Lane.

18 years agoModify all callers of datatype input and receive functions so that if these
Tom Lane [Tue, 4 Apr 2006 19:35:37 +0000 (19:35 +0000)]
Modify all callers of datatype input and receive functions so that if these
functions are not strict, they will be called (passing a NULL first parameter)
during any attempt to input a NULL value of their datatype.  Currently, all
our input functions are strict and so this commit does not change any
behavior.  However, this will make it possible to build domain input functions
that centralize checking of domain constraints, thereby closing numerous holes
in our domain support, as per previous discussion.

While at it, I took the opportunity to introduce convenience functions
InputFunctionCall, OutputFunctionCall, etc to use in code that calls I/O
functions.  This eliminates a lot of grotty-looking casts, but the main
motivation is to make it easier to grep for these places if we ever need
to touch them again.

18 years agoDefine a separately configurable XLOG_BLCKSZ symbol for the page size
Tom Lane [Mon, 3 Apr 2006 23:35:05 +0000 (23:35 +0000)]
Define a separately configurable XLOG_BLCKSZ symbol for the page size
used within WAL files.  Historically this was the same as the data file
BLCKSZ, but there's no necessary connection, and it's possible that
performance gains might ensue from reducing XLOG_BLCKSZ.  In any case
distinguishing two symbols should improve code clarity.  This commit
does not actually change the page size, only provide the infrastructure
to make it possible to do so.  initdb forced because of addition of a
field to pg_control.
Mark Wong, with some help from Simon Riggs and Tom Lane.

18 years agoPut flex'ed and bison'ed files in contrib in the distribution tarball, as
Peter Eisentraut [Mon, 3 Apr 2006 18:47:41 +0000 (18:47 +0000)]
Put flex'ed and bison'ed files in contrib in the distribution tarball, as
is done for the analogous files in the main distribution.

18 years agoFix thinko in gistRedoPageUpdateRecord: if XLR_BKP_BLOCK_1 is set, we
Tom Lane [Mon, 3 Apr 2006 16:45:50 +0000 (16:45 +0000)]
Fix thinko in gistRedoPageUpdateRecord: if XLR_BKP_BLOCK_1 is set, we
don't have anything to do to the page, but we still have to adjust the
incomplete_inserts list that we're maintaining in memory.

18 years agoEliminate ajust scan code. Since concurrent GiST it doesn't
Teodor Sigaev [Mon, 3 Apr 2006 13:44:33 +0000 (13:44 +0000)]
Eliminate ajust scan code. Since concurrent GiST it doesn't
do real work. That was missed during concurrence development.

18 years agoMinor cleanups
Teodor Sigaev [Mon, 3 Apr 2006 08:37:41 +0000 (08:37 +0000)]
Minor cleanups

18 years agoDetoast query in g_intbig_consistent and copy query in g_int_consistent
Teodor Sigaev [Mon, 3 Apr 2006 08:21:05 +0000 (08:21 +0000)]
Detoast query in g_intbig_consistent and copy query in g_int_consistent

18 years agoAdd to qsort TODO.detail.
Bruce Momjian [Mon, 3 Apr 2006 03:46:16 +0000 (03:46 +0000)]
Add to qsort TODO.detail.

18 years agoUpdate for max row size.
Bruce Momjian [Mon, 3 Apr 2006 03:40:20 +0000 (03:40 +0000)]
Update for max row size.

18 years agoUpdate max row size to 400gb, per Tom.
Bruce Momjian [Mon, 3 Apr 2006 03:39:23 +0000 (03:39 +0000)]
Update max row size to 400gb, per Tom.

18 years agoRewrite much of psql's \connect code, for the sake of code clarity and
Neil Conway [Sun, 2 Apr 2006 20:08:22 +0000 (20:08 +0000)]
Rewrite much of psql's \connect code, for the sake of code clarity and
to fix regressions introduced in the recent patch adding additional
\connect options. This is based on work by Volkan YAZICI, although
this version of the patch doesn't bear much resemblance to Volkan's
version.

\connect takes 4 optional arguments: database name, user name, host
name, and port number. If any of those parameters are omitted or
specified as "-", the value of that parameter from the previous
connection is used instead; if there is no previous connection,
the libpq default is used. Note that this behavior makes it
impossible to reuse the libpq defaults without quitting psql and
restarting it; I don't really see the use case for needing to do
that.

18 years agoAdjust interval-addition test so that it won't fail on DST transition days.
Tom Lane [Sun, 2 Apr 2006 19:39:54 +0000 (19:39 +0000)]
Adjust interval-addition test so that it won't fail on DST transition days.
Strange that we missed this DST dependence while fixing the others.

18 years agoUpdate information schema for SQL:2003 and new PostgreSQL features.
Peter Eisentraut [Sun, 2 Apr 2006 17:38:13 +0000 (17:38 +0000)]
Update information schema for SQL:2003 and new PostgreSQL features.

18 years agoAdd tab-completion for REASSIGN OWNED BY and DROP OWNED BY. Also fix some
Alvaro Herrera [Sun, 2 Apr 2006 09:02:41 +0000 (09:02 +0000)]
Add tab-completion for REASSIGN OWNED BY and DROP OWNED BY.  Also fix some
whitespace issues nearby.

DROP OWNED BY is actually a bit kludgy, but it seems better to do it this way
rather than duplicating the words_after_create list just to add a single
element.

18 years agoCorrect some errors and do some SGML police work on the reference pages
Neil Conway [Sun, 2 Apr 2006 04:02:40 +0000 (04:02 +0000)]
Correct some errors and do some SGML police work on the reference pages
for REASSIGN OWNED and DROP OWNED.

18 years agoMinor improvement to DROP TABLE reference page.
Neil Conway [Sun, 2 Apr 2006 03:56:40 +0000 (03:56 +0000)]
Minor improvement to DROP TABLE reference page.

18 years agoAdd recent /port/qsort comparison discussion.
Bruce Momjian [Sun, 2 Apr 2006 01:27:42 +0000 (01:27 +0000)]
Add recent /port/qsort comparison discussion.

18 years agoRemove the 'slow' path for btree index build, which built the btree
Tom Lane [Sat, 1 Apr 2006 03:03:37 +0000 (03:03 +0000)]
Remove the 'slow' path for btree index build, which built the btree
incrementally by successive inserts rather than by sorting the data.
We were only using the slow path during bootstrap, apparently because
when first written it failed during bootstrap --- but it works fine now
AFAICT.  Removing it saves a hundred or so lines of code and produces
noticeably (~10%) smaller initial states of the system catalog indexes.
While that won't make much difference for heavily-modified catalogs,
for the more static ones there may be a useful long-term performance
improvement.

18 years agoClean up WAL/buffer interactions as per my recent proposal. Get rid of the
Tom Lane [Fri, 31 Mar 2006 23:32:07 +0000 (23:32 +0000)]
Clean up WAL/buffer interactions as per my recent proposal.  Get rid of the
misleadingly-named WriteBuffer routine, and instead require routines that
change buffer pages to call MarkBufferDirty (which does exactly what it says).
We also require that they do so before calling XLogInsert; this takes care of
the synchronization requirement documented in SyncOneBuffer.  Note that
because bufmgr takes the buffer content lock (in shared mode) while writing
out any buffer, it doesn't matter whether MarkBufferDirty is executed before
the buffer content change is complete, so long as the content change is
completed before releasing exclusive lock on the buffer.  So it's OK to set
the dirtybit before we fill in the LSN.
This eliminates the former kluge of needing to set the dirtybit in LockBuffer.
Aside from making the code more transparent, we can also add some new
debugging assertions, in particular that the caller of MarkBufferDirty must
hold the buffer content lock, not merely a pin.

18 years agoImprove gist XLOG code to follow the coding rules needed to prevent
Tom Lane [Thu, 30 Mar 2006 23:03:10 +0000 (23:03 +0000)]
Improve gist XLOG code to follow the coding rules needed to prevent
torn-page problems.  This introduces some issues of its own, mainly
that there are now some critical sections of unreasonably broad scope,
but it's a step forward anyway.  Further cleanup will require some
code refactoring that I'd prefer to get Oleg and Teodor involved in.

18 years agoSuppress attempts to report dropped tables to the stats collector from a
Tom Lane [Thu, 30 Mar 2006 22:11:55 +0000 (22:11 +0000)]
Suppress attempts to report dropped tables to the stats collector from a
startup or recovery process.  Since such a process isn't a real backend,
pgstat.c gets confused.  This accounts for recent reports of strange
"invalid server process ID -1" log messages during crash recovery.
There isn't any point in attempting to make the report, since we'll discard
stats in such scenarios anyhow.

18 years agoFix bad SQL, per Stefan Kaltenbrunner.
Andrew Dunstan [Thu, 30 Mar 2006 01:08:15 +0000 (01:08 +0000)]
Fix bad SQL, per Stefan Kaltenbrunner.

18 years agoClean up and document the API for XLogOpenRelation and XLogReadBuffer.
Tom Lane [Wed, 29 Mar 2006 21:17:39 +0000 (21:17 +0000)]
Clean up and document the API for XLogOpenRelation and XLogReadBuffer.
This commit doesn't make much functional change, but it does eliminate some
duplicated code --- for instance, PageIsNew tests are now done inside
XLogReadBuffer rather than by each caller.
The GIST xlog code still needs a lot of love, but I'll worry about that
separately.

18 years agoTablespaceCreateDbspace should function normally even on platforms that do not
Tom Lane [Wed, 29 Mar 2006 15:15:43 +0000 (15:15 +0000)]
TablespaceCreateDbspace should function normally even on platforms that do not
have symlinks (ie, Windows).  Although it'll never be called on to do anything
useful during normal operation on such a platform, it's still needed to
re-create dropped directories during WAL replay.

18 years agoDisable full_page_writes, because turning it off risks causing crash-recovery
Tom Lane [Tue, 28 Mar 2006 22:01:16 +0000 (22:01 +0000)]
Disable full_page_writes, because turning it off risks causing crash-recovery
failures even when the hardware and OS did nothing wrong.  Per recent analysis
of a problem report from Alex Bahdushka.

For the moment I've just diked out the test of the parameter, rather than
removing the GUC infrastructure and documentation, in case we conclude that
there's something salvageable there.  There seems no chance of it being
resurrected in the 8.1 branch though.

18 years agoRepair longstanding error in btree xlog replay: XLogReadBuffer should be
Tom Lane [Tue, 28 Mar 2006 21:17:23 +0000 (21:17 +0000)]
Repair longstanding error in btree xlog replay: XLogReadBuffer should be
passed extend = true whenever we are reading a page we intend to reinitialize
completely, even if we think the page "should exist".  This is because it
might indeed not exist, if the relation got truncated sometime after the
current xlog record was made and before the crash we're trying to recover
from.  These two thinkos appear to explain both of the old bug reports
discussed here:
http://archives.postgresql.org/pgsql-hackers/2005-05/msg01369.php

18 years agoComments in IndexBuildHeapScan describe the indexing of recently-dead
Tom Lane [Fri, 24 Mar 2006 23:02:17 +0000 (23:02 +0000)]
Comments in IndexBuildHeapScan describe the indexing of recently-dead
tuples as needed "to keep VACUUM from complaining", but actually there is
a more compelling reason to do it: failure to do so violates MVCC semantics.
This is because a pre-existing serializable transaction might try to use
the index after we finish (re)building it, and it might fail to find tuples
it should be able to see.  We got this mostly right, but not in the case
of partial indexes: the code mistakenly discarded recently-dead tuples for
partial indexes.  Fix that, and adjust the comments.

18 years agoArrange to emit a description of the current XLOG record as error context
Tom Lane [Fri, 24 Mar 2006 04:32:13 +0000 (04:32 +0000)]
Arrange to emit a description of the current XLOG record as error context
when an error occurs during xlog replay.  Also, replace the former risky
'write into a fixed-size buffer with no overflow detection' API for XLOG
record description routines; use an expansible StringInfo instead.  (The
latter accounts for most of the patch bulk.)

Qingqing Zhou

18 years agoFix plpgsql to pass only one copy of any given plpgsql variable into a SQL
Tom Lane [Thu, 23 Mar 2006 04:22:37 +0000 (04:22 +0000)]
Fix plpgsql to pass only one copy of any given plpgsql variable into a SQL
command or expression, rather than one copy for each textual occurrence as
it did before.  This might result in some small performance improvement,
but the compelling reason to do it is that not doing so can result in
unexpected grouping failures because the main SQL parser won't see different
parameter numbers as equivalent.  Add a regression test for the failure case.
Per report from Robert Davidson.

18 years agoAdd error location info to ResTarget parse nodes. Allows error cursor to be supplied
Tom Lane [Thu, 23 Mar 2006 00:19:30 +0000 (00:19 +0000)]
Add error location info to ResTarget parse nodes.  Allows error cursor to be supplied
for various mistakes involving INSERT and UPDATE target columns.

18 years agoImprove performance of our private version of qsort. Per recent testing,
Tom Lane [Tue, 21 Mar 2006 19:49:15 +0000 (19:49 +0000)]
Improve performance of our private version of qsort.  Per recent testing,
the logic it contained to switch to insertion sort for near-sorted input was
in fact a big loss, because it could fairly easily be fooled into applying
insertion sort to large subfiles that weren't all that well ordered.  Remove
that, and instead add a simple check for already-perfectly-sorted input, as
per suggestion from Dann Corbit.  This adds at worst O(N*lgN) overhead, and
usually far less, while sometimes allowing a subfile sort to finish in O(N)
time.  Preliminary testing says this is an improvement over the basic
Bentley & McIlroy code for many nonrandom inputs, and it costs almost
nothing when the input is random.

18 years agoMinor refactoring: initialize_SSL() only returns 0, so it should return
Neil Conway [Tue, 21 Mar 2006 18:18:35 +0000 (18:18 +0000)]
Minor refactoring: initialize_SSL() only returns 0, so it should return
"void" rather than "int".

18 years agoMerge the loading of shared object descriptions with regular descriptions,
Alvaro Herrera [Tue, 21 Mar 2006 17:54:28 +0000 (17:54 +0000)]
Merge the loading of shared object descriptions with regular descriptions,
both in code and in the messages emitted to the user.

18 years agoFix psql history handling:
Bruce Momjian [Tue, 21 Mar 2006 13:38:12 +0000 (13:38 +0000)]
Fix psql history handling:

> 1) Fix the problems with the \s command.
> When the saveHistory is executed by the \s command we must not do the
> conversion \n -> \x01  (per
> http://archives.postgresql.org/pgsql-hackers/2006-03/msg00317.php )
>
> 2) Fix the handling of Ctrl+C
>
> Now when you do
> wsdb=# select 'your long query here '
> wsdb-#
> and press afterwards the CtrlC the line "select 'your long query here
'"
> will be in the history
>
> (partly per
> http://archives.postgresql.org/pgsql-hackers/2006-03/msg00297.php )
>
> 3) Fix the handling of commands with not closed brackets, quotes,
double
> quotes. (now those commands are not splitted in parts...)
>
> 4) Fix the behaviour when SINGLELINE mode is used. (before it was
almost
> broken ;(

Sergey E. Koposov

18 years agoUpdate comment that pgNotify.be_pid is pid of the notifying server process.
Bruce Momjian [Mon, 20 Mar 2006 15:07:05 +0000 (15:07 +0000)]
Update comment that pgNotify.be_pid is pid of the notifying server process.

18 years agoFix a few places that were checking for the return value of palloc() to be
Neil Conway [Sun, 19 Mar 2006 22:22:56 +0000 (22:22 +0000)]
Fix a few places that were checking for the return value of palloc() to be
non-NULL: palloc() ereports on OOM, so we can safely assume it returns a
valid pointer.

18 years agoAdjust join_1.out to match Windows behavior for new mergejoin regression
Tom Lane [Sun, 19 Mar 2006 01:19:42 +0000 (01:19 +0000)]
Adjust join_1.out to match Windows behavior for new mergejoin regression
test, per Dave Page and buildfarm.  Perhaps we will need a join_2 instead,
but for the moment assume that this test tracks the other diffs.

18 years agoThe call to DNSServiceRegistrationCreate in postmaster.c does incorrect
Neil Conway [Sat, 18 Mar 2006 22:09:58 +0000 (22:09 +0000)]
The call to DNSServiceRegistrationCreate in postmaster.c does incorrect
byte-swapping on the port number which causes the call to fail on Intel
Macs.

This patch uses htons() instead of htonl() and fixes this bug.

Ashley Clark

18 years agoFix bug introduced into mergejoin logic by performance improvement patch of
Tom Lane [Fri, 17 Mar 2006 19:38:12 +0000 (19:38 +0000)]
Fix bug introduced into mergejoin logic by performance improvement patch of
2005-05-13.  When we find that a new inner tuple can't possibly match any
outer tuple (because it contains a NULL), we can't immediately skip the
tuple when we are in NEXTINNER state.  Doing so can lead to emitting
multiple copies of the tuple in FillInner mode, because we may rescan the
tuple after returning to a previous marked tuple.  Instead, proceed to
NEXTOUTER state the same as we used to do.  After we've found that there's
no need to return to the marked position, we can go to SKIPINNER_ADVANCE
state instead of SKIP_TEST when the inner tuple is unmatchable; this
preserves the performance improvement.  Per bug report from Bruce.
I also made a couple of cosmetic code rearrangements and added a regression
test for the problem.

18 years agoDocument long names for format options (plain, tar, custom). They already
Peter Eisentraut [Fri, 17 Mar 2006 16:02:47 +0000 (16:02 +0000)]
Document long names for format options (plain, tar, custom).  They already
worked and someone asked about them, so we might as well document them.