]> granicus.if.org Git - postgresql/log
postgresql
16 years agoImprove lock level choices in pg_shdepend.c. Noticed by Tom Lane.
Alvaro Herrera [Wed, 23 Jan 2008 15:36:38 +0000 (15:36 +0000)]
Improve lock level choices in pg_shdepend.c.  Noticed by Tom Lane.

16 years agoReference pgAdmin as a typical client-side tool, rather than the
Tom Lane [Wed, 23 Jan 2008 02:04:47 +0000 (02:04 +0000)]
Reference pgAdmin as a typical client-side tool, rather than the
no-longer-maintained PgAccess.  Per Erik Rijkers.

16 years agoDocument the fix for perl 5.10 with this comment:
Andrew Dunstan [Wed, 23 Jan 2008 00:55:47 +0000 (00:55 +0000)]
Document the fix for perl 5.10 with this comment:
 * The temporary enabling of the caller opcode here is to work around a
 * bug in perl 5.10, which unkindly changed the way its Safe.pm works, without
 * notice. It is quite safe, as caller is informational only, and in any case
 * we only enable it while we load the 'strict' module.

16 years agoWork around for perl 5.10 bug - fix due to perl hacker Simon Cozens.
Andrew Dunstan [Tue, 22 Jan 2008 20:17:37 +0000 (20:17 +0000)]
Work around for perl 5.10 bug - fix due to perl hacker Simon Cozens.

16 years agoProvide a clearer error message if the pg_control version number looks
Peter Eisentraut [Mon, 21 Jan 2008 11:17:46 +0000 (11:17 +0000)]
Provide a clearer error message if the pg_control version number looks
wrong because of mismatched byte ordering.

16 years agoImprove description of bgwriter_lru_multiplier, per discussion.
Tom Lane [Mon, 21 Jan 2008 03:28:42 +0000 (03:28 +0000)]
Improve description of bgwriter_lru_multiplier, per discussion.

16 years agoFix RS_isRegis() to agree exactly with RS_compile()'s idea of what's a valid
Tom Lane [Mon, 21 Jan 2008 02:46:11 +0000 (02:46 +0000)]
Fix RS_isRegis() to agree exactly with RS_compile()'s idea of what's a valid
regis.  Correct the latter's oversight that a bracket-expression needs to be
terminated.  Reduce the ereports to elogs, since they are now not expected to
ever be hit (thus addressing Alvaro's original complaint).
In passing, const-ify the string argument to RS_compile.

16 years agoFix psql \h output for case of no parameters (ie, list all the known commands)
Tom Lane [Sun, 20 Jan 2008 21:13:55 +0000 (21:13 +0000)]
Fix psql \h output for case of no parameters (ie, list all the known commands)
to format properly for the actually needed column width, instead of having
a hard-wired assumption about the longest command name length.  Also make it
respond to the current screen width.  In passing, const-ify the constant
table.

16 years agoSplit error message.
Alvaro Herrera [Sun, 20 Jan 2008 17:50:41 +0000 (17:50 +0000)]
Split error message.

16 years agoMake pg_regress clean out the testtablespace directory only on Windows.
Tom Lane [Sat, 19 Jan 2008 17:43:42 +0000 (17:43 +0000)]
Make pg_regress clean out the testtablespace directory only on Windows.
On other platforms it's better to let the Makefile handle it, but we want
the regression tests to be invokable without make on Windows.  A batch
file would be a better solution, but no time for that before 8.3.
Per my discovery that this breaks testing under SELinux, and subsequent
discussion.

16 years agomust commit after autoconf ... and yes, I used the right autoconf REL8_3_RC2
Marc G. Fournier [Fri, 18 Jan 2008 04:47:32 +0000 (04:47 +0000)]
must commit after autoconf ... and yes, I used the right autoconf

16 years agoStamp release for 8.3RC2; configure will be stamped by packager.
Bruce Momjian [Fri, 18 Jan 2008 00:13:50 +0000 (00:13 +0000)]
Stamp release for 8.3RC2;  configure will be stamped by packager.

16 years agoInsert into getCopyDataMessage() the same logic that already existed in the
Tom Lane [Thu, 17 Jan 2008 21:21:50 +0000 (21:21 +0000)]
Insert into getCopyDataMessage() the same logic that already existed in the
main code path for enlarging libpq's input buffer in one swoop when needing to
read a long data message.  Without this, the code will double the buffer size,
read more data, notice it still hasn't got the whole message, and repeat till
it finally has a large enough buffer.  Which wastes a lot of data-moving
effort and also memory (since malloc probably can't do anything very useful
with the freed-up smaller buffers).  Not sure why this wasn't there already;
certainly the COPY data path is a place where we're quite likely to see long
data messages.  I'm not backpatching though, since this is just a marginal
performance issue rather than a real bug.

16 years agoFix subselect.c to avoid assuming that a SubLink's testexpr references each
Tom Lane [Thu, 17 Jan 2008 20:35:27 +0000 (20:35 +0000)]
Fix subselect.c to avoid assuming that a SubLink's testexpr references each
subquery output column exactly once left-to-right.  Although this is the case
in the original parser output, it might not be so after rewriting and
constant-folding, as illustrated by bug #3882 from Jan Mate.  Instead
scan the subquery's target list to obtain needed per-column information;
this is duplicative of what the parser did, but only a couple dozen lines
need be copied, and we can clean up a couple of notational uglinesses.
Bug was introduced in 8.2 as part of revision of SubLink representation.

16 years agoFix ALTER INDEX RENAME so that if the index belongs to a unique or primary key
Tom Lane [Thu, 17 Jan 2008 18:56:54 +0000 (18:56 +0000)]
Fix ALTER INDEX RENAME so that if the index belongs to a unique or primary key
constraint, the constraint is renamed as well.  This avoids inconsistent
situations that could confuse pg_dump (not to mention humans).  We might at
some point provide ALTER TABLE RENAME CONSTRAINT as a more general solution,
but there seems no reason not to allow doing it this way too.  Per bug #3854
and related discussions.

16 years agoUpdate Japanese FAQ.
Bruce Momjian [Thu, 17 Jan 2008 18:53:20 +0000 (18:53 +0000)]
Update Japanese FAQ.

Jun Kuwamura

16 years agoTypo fix.
Magnus Hagander [Thu, 17 Jan 2008 14:34:45 +0000 (14:34 +0000)]
Typo fix.

Erik Rijkers

16 years agopgcrypto doc updates
Magnus Hagander [Thu, 17 Jan 2008 11:06:28 +0000 (11:06 +0000)]
pgcrypto doc updates

Marko Kreen

16 years agoDocument the fact that COPY always uses the client encoding.
Andrew Dunstan [Wed, 16 Jan 2008 22:07:04 +0000 (22:07 +0000)]
Document the fact that COPY always uses the client encoding.

16 years agoRemove inappropriate cd commands, per David Wheeler. Also make
Tom Lane [Wed, 16 Jan 2008 21:00:25 +0000 (21:00 +0000)]
Remove inappropriate cd commands, per David Wheeler.  Also make
the PATH responsive to the installation prefix, which was the apparent
intent of the previous edit, but not well executed.

16 years agoImprove usage message for pgindent.
Bruce Momjian [Wed, 16 Jan 2008 20:13:44 +0000 (20:13 +0000)]
Improve usage message for pgindent.

16 years agoFix core dump with buffer-overrun by too long infinitive. Add checking of using
Teodor Sigaev [Wed, 16 Jan 2008 13:01:03 +0000 (13:01 +0000)]
Fix core dump with buffer-overrun by too long infinitive. Add checking of using
fixed length arrays to prevent array's overrun. Per report by
Hannes Dorbath <light@theendofthetunnel.de> and comments by Tom.

16 years agoBe less wishy-washy in the documentation and comments about whether a
Tom Lane [Tue, 15 Jan 2008 22:18:20 +0000 (22:18 +0000)]
Be less wishy-washy in the documentation and comments about whether a
ParameterStatus message can be sent during COPY OUT: it's definitely
possible, since COPY from a SELECT subquery can trigger any user-defined
function.

16 years agoPrevent CLUSTER from decreasing a relation's relfrozenxid. Bug
Tom Lane [Tue, 15 Jan 2008 21:20:28 +0000 (21:20 +0000)]
Prevent CLUSTER from decreasing a relation's relfrozenxid.  Bug
introduced in rewrite to make CLUSTER MVCC-safe.

16 years agoRevise memory management for libxml calls. Instead of keeping libxml's data
Tom Lane [Tue, 15 Jan 2008 18:57:00 +0000 (18:57 +0000)]
Revise memory management for libxml calls.  Instead of keeping libxml's data
in whichever context happens to be current during a call of an xml.c function,
use a dedicated context that will not go away until we explicitly delete it
(which we do at transaction end or subtransaction abort).  This makes recovery
after an error much simpler --- we don't have to individually delete the data
structures created by libxml.  Also, we need to initialize and cleanup libxml
only once per transaction (if there's no error) instead of once per function
call, so it should be a bit faster.  We'll need to keep an eye out for
intra-transaction memory leaks, though.  Alvaro and Tom.

16 years agoTweak new error message to conform to style guidelines.
Tom Lane [Tue, 15 Jan 2008 18:22:47 +0000 (18:22 +0000)]
Tweak new error message to conform to style guidelines.

16 years agoAdd check of headline method presence. Per report by Yoshiyuki Asaba <y-asaba@sraoss...
Teodor Sigaev [Tue, 15 Jan 2008 17:16:01 +0000 (17:16 +0000)]
Add check of headline method presence. Per report by Yoshiyuki Asaba <y-asaba@sraoss.co.jp>

16 years agoRe-enabled variables in fetch/move command.
Michael Meskes [Tue, 15 Jan 2008 10:31:47 +0000 (10:31 +0000)]
Re-enabled variables in fetch/move command.

16 years agoSomebody forgot to add this ERRCODE everywhere it should go ...
Tom Lane [Tue, 15 Jan 2008 01:36:53 +0000 (01:36 +0000)]
Somebody forgot to add this ERRCODE everywhere it should go ...

16 years agoAdd:
Bruce Momjian [Mon, 14 Jan 2008 22:14:30 +0000 (22:14 +0000)]
Add:

>
> * Add the ability to automatically create materialized views
>
>   Right now materialized views require the user to create triggers on the
>   main table to keep the summary table current.  SQL syntax should be able
>   to manager the triggers and summary table automatically.  A more
>   sophisticated implementation would automatically retrieve from the
>   summary table when the main table is referenced, if possible.
>

16 years agoMost recent Postgres version is 8.2.6, per report from Robert Treat.
Bruce Momjian [Mon, 14 Jan 2008 20:39:30 +0000 (20:39 +0000)]
Most recent Postgres version is 8.2.6, per report from Robert Treat.

16 years agoPrevent pg_dump from dumping the comment (if any) on the 'public' schema.
Tom Lane [Mon, 14 Jan 2008 19:27:41 +0000 (19:27 +0000)]
Prevent pg_dump from dumping the comment (if any) on the 'public' schema.
This is to avoid uselessly requiring superuser permissions to restore
the dump without errors.  Pretty grotty, but no better alternative seems
available, at least not in the near term.

16 years agoAvoid cluttering the postmaster log with bogus complaints
Tom Lane [Mon, 14 Jan 2008 19:18:53 +0000 (19:18 +0000)]
Avoid cluttering the postmaster log with bogus complaints
during transaction abort, per my note from a couple days ago.

16 years agoFix an ancient oversight in libpq's handling of V3-protocol COPY OUT mode:
Tom Lane [Mon, 14 Jan 2008 18:46:17 +0000 (18:46 +0000)]
Fix an ancient oversight in libpq's handling of V3-protocol COPY OUT mode:
we need to be able to swallow NOTICE messages, and potentially also
ParameterStatus messages (although the latter would be a bit weird),
without exiting COPY OUT state.  Fix it, and adjust the protocol documentation
to emphasize the need for this.  Per off-list report from Alexander Galler.

16 years agoMark autovacuum entries in pg_stat_activity so that they can be easily
Alvaro Herrera [Mon, 14 Jan 2008 13:39:25 +0000 (13:39 +0000)]
Mark autovacuum entries in pg_stat_activity so that they can be easily
distinguished from user-invoked commands.  Per suggestion from Tom Lane.

16 years agoSet valid return values even in case of an error to prevent segfaults.
Michael Meskes [Mon, 14 Jan 2008 09:43:42 +0000 (09:43 +0000)]
Set valid return values even in case of an error to prevent segfaults.

16 years agoFix pgstat_heap() to not be broken by syncscans starting from a block
Tom Lane [Mon, 14 Jan 2008 02:53:31 +0000 (02:53 +0000)]
Fix pgstat_heap() to not be broken by syncscans starting from a block
higher than zero.  Same problem as just detected in CREATE INDEX
CONCURRENTLY.

16 years agoUse an indexscan not a heapscan to search pg_index in get_pkey_attnames.
Tom Lane [Mon, 14 Jan 2008 02:49:47 +0000 (02:49 +0000)]
Use an indexscan not a heapscan to search pg_index in get_pkey_attnames.
Noted while looking for heapscans that might need to start from block
zero.

16 years agoFix CREATE INDEX CONCURRENTLY so that it won't use synchronized scan for
Tom Lane [Mon, 14 Jan 2008 01:39:09 +0000 (01:39 +0000)]
Fix CREATE INDEX CONCURRENTLY so that it won't use synchronized scan for
its second pass over the table.  It has to start at block zero, else the
"merge join" logic for detecting which TIDs are already in the index
doesn't work.  Hence, extend heapam.c's API so that callers can enable or
disable syncscan.  (I put in an option to disable buffer access strategy,
too, just in case somebody needs it.)  Per report from Hannes Dorbath.

16 years agoFix a regression test that fails if default_text_search_config isn't
Tom Lane [Sun, 13 Jan 2008 21:17:46 +0000 (21:17 +0000)]
Fix a regression test that fails if default_text_search_config isn't
'english'.

16 years agoAdd note pointing out that read-only commands no longer consume
Tom Lane [Sun, 13 Jan 2008 17:58:54 +0000 (17:58 +0000)]
Add note pointing out that read-only commands no longer consume
command IDs.

16 years agoChanged prototype for ECPGdo because some compilers don't like int/enum aliasing...
Michael Meskes [Sun, 13 Jan 2008 11:53:16 +0000 (11:53 +0000)]
Changed prototype for ECPGdo because some compilers don't like int/enum aliasing in there.

16 years agoUpdate documentation for tsvector duplicate elimination:
Bruce Momjian [Sat, 12 Jan 2008 21:51:36 +0000 (21:51 +0000)]
Update documentation for tsvector duplicate elimination:

!      Duplicate positions for the same lexeme are discarded.

16 years agoIt turns out the LIBXML_TEST_VERSION macro calls xmlInitParser().
Tom Lane [Sat, 12 Jan 2008 21:14:08 +0000 (21:14 +0000)]
It turns out the LIBXML_TEST_VERSION macro calls xmlInitParser().
Therefore we must xmlCleanupParser(), or we risk leaving behind
dangling pointers to whatever memory context is current when xml_init()
is called.  This seems to fix bug #3860, though we might still want
the more invasive solution being worked on by Alvaro.

16 years agoFix two places in xml.c that neglected to check the return values of
Neil Conway [Sat, 12 Jan 2008 10:50:03 +0000 (10:50 +0000)]
Fix two places in xml.c that neglected to check the return values of
SPI_prepare() and SPI_cursor_open(), to silence a Coverity warning.

16 years agoMinor perf tweak for _SPI_strdup(): if we're going to call strlen()
Neil Conway [Sat, 12 Jan 2008 10:38:32 +0000 (10:38 +0000)]
Minor perf tweak for _SPI_strdup(): if we're going to call strlen()
anyway, it is faster to memcpy() than to strcpy().

16 years agoFix logical errors in constraint exclusion: we cannot assume that a CHECK
Tom Lane [Sat, 12 Jan 2008 00:11:39 +0000 (00:11 +0000)]
Fix logical errors in constraint exclusion: we cannot assume that a CHECK
constraint yields TRUE for every row of its table, only that it does not
yield FALSE (a NULL result isn't disallowed).  This breaks a couple of
implications that would be true in two-valued logic.  I had put in one such
mistake in an 8.2.5 patch: foo IS NULL doesn't refute a strict operator
on foo.  But there was another in the original 8.2 release: NOT foo doesn't
refute an expression whose truth would imply the truth of foo.
Per report from Rajesh Kumar Mallah.

To preserve the ability to do constraint exclusion with one partition
holding NULL values, extend relation_excluded_by_constraints() to check
for attnotnull flags, and add col IS NOT NULL expressions to the set of
constraints we hope to refute.

16 years agoThe original implementation of polymorphic aggregates didn't really get the
Tom Lane [Fri, 11 Jan 2008 18:39:41 +0000 (18:39 +0000)]
The original implementation of polymorphic aggregates didn't really get the
checking of argument compatibility right; although the problem is only exposed
with multiple-input aggregates in which some arguments are polymorphic and
some are not.  Per bug #3852 from Sokolov Yura.

16 years agoFix an old error in clause_selectivity: the default selectivity estimate
Tom Lane [Fri, 11 Jan 2008 17:00:45 +0000 (17:00 +0000)]
Fix an old error in clause_selectivity: the default selectivity estimate
for unhandled clause types ought to be 0.5, not 1.0.  I fear I introduced
this silliness due to misreading the intent of the very-poorly-structured
code that was there when we inherited the file from Berkeley.  The lack
of sanity in this behavior was exposed by an example from Sim Zacks.
(Arguably this is a bug fix and should be back-patched, but I'm a bit
hesitant to introduce a possible planner behavior change in the back
branches; it might detune queries that worked acceptably in the past.)

While at it, make estimation for DistinctExpr do something marginally
realistic, rather than just defaulting.

16 years agoAdd:
Bruce Momjian [Fri, 11 Jan 2008 16:49:27 +0000 (16:49 +0000)]
Add:

> * Add ability to trigger on TRUNCATE
>
>   http://archives.postgresql.org/pgsql-sql/2008-01/msg00050.php

16 years agoFixed lexer to correctly parse C quotes.
Michael Meskes [Fri, 11 Jan 2008 15:19:16 +0000 (15:19 +0000)]
Fixed lexer to correctly parse C quotes.

16 years agoFix a conceptual error in my patch of 2007-10-26 that avoided considering
Tom Lane [Fri, 11 Jan 2008 04:02:18 +0000 (04:02 +0000)]
Fix a conceptual error in my patch of 2007-10-26 that avoided considering
clauseless joins of relations that have unexploited join clauses.  Rather
than looking at every other base relation in the query, the correct thing is
to examine the other relations in the "initial_rels" list of the current
make_rel_from_joinlist() invocation, because those are what we actually have
the ability to join against.  This might be a subset of the whole query in
cases where join_collapse_limit or from_collapse_limit or full joins have
prevented merging the whole query into a single join problem.  This is a bit
untidy because we have to pass those rels down through a new PlannerInfo
field, but it's necessary.  Per bug #3865 from Oleg Kharin.

16 years agoRestructure the shutdown procedure for the archiver process to allow it to
Tom Lane [Fri, 11 Jan 2008 00:54:09 +0000 (00:54 +0000)]
Restructure the shutdown procedure for the archiver process to allow it to
finish archiving everything (when there's no error), and to eliminate various
hazards as best we can.  This fixes a previous 8.3 patch that caused the
postmaster to kill and then restart the archiver during shutdown (!?).

The new behavior is that the archiver is allowed to run unmolested until
the bgwriter has exited; then it is sent SIGUSR2 to tell it to do a final
archiving cycle and quit.  We only SIGQUIT the archiver if we want a panic
stop; this is important since SIGQUIT will also be sent to any active
archive_command.  The postmaster also now doesn't SIGQUIT the stats collector
until the bgwriter is done, since the bgwriter can send stats messages in 8.3.
The postmaster will not exit until both the archiver and stats collector are
gone; this provides some defense (not too bulletproof) against conflicting
archiver or stats collector processes being started by a new postmaster
instance.  We continue the prior practice that the archiver will check
for postmaster death immediately before issuing any archive_command; that
gives some additional protection against conflicting archivers.

Also, modify the archiver process to notice SIGTERM and refuse to issue any
more archive commands if it gets it.  The postmaster doesn't ever send it
SIGTERM; we assume that any such signal came from init and is a notice of
impending whole-system shutdown.  In this situation it seems imprudent to try
to start new archive commands --- if they aren't extremely quick they're
likely to get SIGKILL'd by init.

All per discussion.

16 years agoGenerate and include manifest in standalone libpq build on Windows.
Magnus Hagander [Thu, 10 Jan 2008 16:03:00 +0000 (16:03 +0000)]
Generate and include manifest in standalone libpq build on Windows.

Hiroshi Saito

16 years agovacuum_cost_limit has a minimum value of 1, not zero; update
Bruce Momjian [Thu, 10 Jan 2008 02:50:01 +0000 (02:50 +0000)]
vacuum_cost_limit has a minimum value of 1, not zero;  update
postgresql.conf comment to match.

16 years agoRemove incorrect (and ill-advised anyway) pfree's in pg_convert_from and
Tom Lane [Wed, 9 Jan 2008 23:43:54 +0000 (23:43 +0000)]
Remove incorrect (and ill-advised anyway) pfree's in pg_convert_from and
pg_convert_to.  Per bug #3866 from Andrew Gilligan.

16 years agoFix CREATE INDEX CONCURRENTLY to not deadlock against an automatic or manual
Tom Lane [Wed, 9 Jan 2008 21:52:36 +0000 (21:52 +0000)]
Fix CREATE INDEX CONCURRENTLY to not deadlock against an automatic or manual
VACUUM that is blocked waiting to get lock on the table being indexed.
Per report and fix suggestion from Greg Stark.

16 years agoFix some planner issues found while investigating Kevin Grittner's report
Tom Lane [Wed, 9 Jan 2008 20:42:29 +0000 (20:42 +0000)]
Fix some planner issues found while investigating Kevin Grittner's report
of poorer planning in 8.3 than 8.2:

1. After pushing a constant across an outer join --- ie, given
"a LEFT JOIN b ON (a.x = b.y) WHERE a.x = 42", we can deduce that b.y is
sort of equal to 42, in the sense that we needn't fetch any b rows where
it isn't 42 --- loop to see if any additional deductions can be made.
Previous releases did that by recursing, but I had mistakenly thought that
this was no longer necessary given the EquivalenceClass machinery.

2. Allow pushing constants across outer join conditions even if the
condition is outerjoin_delayed due to a lower outer join.  This is safe
as long as the condition is strict and we re-test it at the upper join.

3. Keep the outer-join clause even if we successfully push a constant
across it.  This is *necessary* in the outerjoin_delayed case, but
even in the simple case, it seems better to do this to ensure that the
join search order heuristics will consider the join as reasonable to
make.  Mark such a clause as having selectivity 1.0, though, since it's
not going to eliminate very many rows after application of the constant
condition.

4. Tweak have_relevant_eclass_joinclause to report that two relations
are joinable when they have vars that are equated to the same constant.
We won't actually generate any joinclause from such an EquivalenceClass,
but again it seems that in such a case it's a good idea to consider
the join as worth costing out.

5. Fix a bug in select_mergejoin_clauses that was exposed by these
changes: we have to reject candidate mergejoin clauses if either side was
equated to a constant, because we can't construct a canonical pathkey list
for such a clause.  This is an implementation restriction that might be
worth fixing someday, but it doesn't seem critical to get it done for 8.3.

16 years agoDon't enforce 32-bit time_t for FRONTEND apps. Fixes standalone
Magnus Hagander [Wed, 9 Jan 2008 09:16:43 +0000 (09:16 +0000)]
Don't enforce 32-bit time_t for FRONTEND apps. Fixes standalone
builds of libpq in both 32 and 64-bit. Per gripe from Hiroshi Saito.

16 years agoFix an omission in the outfuncs.c support for Agg nodes: the grpColIdx
Neil Conway [Wed, 9 Jan 2008 08:46:44 +0000 (08:46 +0000)]
Fix an omission in the outfuncs.c support for Agg nodes: the grpColIdx
and grpOperators fields were not emitted by _outAgg().

16 years agoAdd index entry.
Alvaro Herrera [Wed, 9 Jan 2008 05:27:22 +0000 (05:27 +0000)]
Add index entry.

16 years agoRemove mention of /contrib README files from documentation because files
Bruce Momjian [Wed, 9 Jan 2008 02:37:45 +0000 (02:37 +0000)]
Remove mention of /contrib README files from documentation because files
are moved to SGML.

16 years agolmgr.c:DescribeLockTag was never taught about virtual xids, per Greg Stark.
Tom Lane [Tue, 8 Jan 2008 23:18:51 +0000 (23:18 +0000)]
lmgr.c:DescribeLockTag was never taught about virtual xids, per Greg Stark.
Also a couple of minor tweaks to try to future-proof the code a bit better
against future locktag additions.

16 years agoAdd URLs to two excellent web pages about SSL API and certificate usage.
Bruce Momjian [Tue, 8 Jan 2008 18:07:38 +0000 (18:07 +0000)]
Add URLs to two excellent web pages about SSL API and certificate usage.

16 years agoinformix.c was violating the coding rule about not including any
Tom Lane [Tue, 8 Jan 2008 01:14:52 +0000 (01:14 +0000)]
informix.c was violating the coding rule about not including any
system headers before c.h.  Per report from J6M.

16 years agoRemove unnecessary comma in enum definition ... some C compilers don't
Tom Lane [Tue, 8 Jan 2008 01:04:08 +0000 (01:04 +0000)]
Remove unnecessary comma in enum definition ... some C compilers don't
like that.  Per report from J6M.

16 years agoMention use of src/tools/major_release_split for creating back-branch
Bruce Momjian [Mon, 7 Jan 2008 22:05:27 +0000 (22:05 +0000)]
Mention use of src/tools/major_release_split for creating back-branch
release notes.

16 years agoFix a minor bug in outfuncs support for SetOp: dupOperators is an array
Neil Conway [Mon, 7 Jan 2008 21:33:10 +0000 (21:33 +0000)]
Fix a minor bug in outfuncs support for SetOp: dupOperators is an array
of Oid, and therefore should use the "%u" escape sequence rather than "%d".

16 years agoA long time ago, Peter pointed out that ruleutils.c didn't dump simple
Tom Lane [Sun, 6 Jan 2008 01:03:16 +0000 (01:03 +0000)]
A long time ago, Peter pointed out that ruleutils.c didn't dump simple
constant ORDER/GROUP BY entries properly:
http://archives.postgresql.org/pgsql-hackers/2001-04/msg00457.php
The original solution to that was in fact no good, as demonstrated by
today's report from Martin Pitt:
http://archives.postgresql.org/pgsql-bugs/2008-01/msg00027.php
We can't use the column-number-reference format for a constant that is
a resjunk targetlist entry, a case that was unfortunately not thought of
in the original discussion.  What we can do instead (which did not work
at the time, but does work in 7.3 and up) is to emit the constant with
explicit ::typename decoration, even if it otherwise wouldn't need it.
This is sufficient to keep the parser from thinking it's a column number
reference, and indeed is probably what the user must have done to get
such a thing into the querytree in the first place.

16 years agoPut spaces after "RFC".
Peter Eisentraut [Sat, 5 Jan 2008 13:17:00 +0000 (13:17 +0000)]
Put spaces after "RFC".

16 years agoAdd URL for:
Bruce Momjian [Fri, 4 Jan 2008 15:58:27 +0000 (15:58 +0000)]
Add URL for:

* Allow AS in "SELECT col AS label" to be optional (not wanted)

>   http://archives.postgresql.org/pgsql-hackers/2003-04/msg00436.php

16 years agoStamp release 8.3RC1. REL8_3_RC1
Tom Lane [Thu, 3 Jan 2008 21:40:12 +0000 (21:40 +0000)]
Stamp release 8.3RC1.

Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601

16 years agoUpdate release notes for security releases.
Tom Lane [Thu, 3 Jan 2008 21:35:25 +0000 (21:35 +0000)]
Update release notes for security releases.

Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601

16 years agoThe original patch to disallow non-passworded connections to non-superusers
Tom Lane [Thu, 3 Jan 2008 21:27:59 +0000 (21:27 +0000)]
The original patch to disallow non-passworded connections to non-superusers
failed to cover all the ways in which a connection can be initiated in dblink.
Plug the remaining holes.  Also, disallow transient connections in functions
for which that feature makes no sense (because they are only sensible as
part of a sequence of operations on the same connection).  Joe Conway

Security: CVE-2007-6601

16 years agoMake standard maintenance operations (including VACUUM, ANALYZE, REINDEX,
Tom Lane [Thu, 3 Jan 2008 21:23:15 +0000 (21:23 +0000)]
Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX,
and CLUSTER) execute as the table owner rather than the calling user, using
the same privilege-switching mechanism already used for SECURITY DEFINER
functions.  The purpose of this change is to ensure that user-defined
functions used in index definitions cannot acquire the privileges of a
superuser account that is performing routine maintenance.  While a function
used in an index is supposed to be IMMUTABLE and thus not able to do anything
very interesting, there are several easy ways around that restriction; and
even if we could plug them all, there would remain a risk of reading sensitive
information and broadcasting it through a covert channel such as CPU usage.

To prevent bypassing this security measure, execution of SET SESSION
AUTHORIZATION and SET ROLE is now forbidden within a SECURITY DEFINER context.

Thanks to Itagaki Takahiro for reporting this vulnerability.

Security: CVE-2007-6600

16 years agoFix assorted security-grade bugs in the regex engine. All of these problems
Tom Lane [Thu, 3 Jan 2008 20:47:55 +0000 (20:47 +0000)]
Fix assorted security-grade bugs in the regex engine.  All of these problems
are shared with Tcl, since it's their code to begin with, and the patches
have been copied from Tcl 8.5.0.  Problems:

CVE-2007-4769: Inadequate check on the range of backref numbers allows
crash due to out-of-bounds read.
CVE-2007-4772: Infinite loop in regex optimizer for pattern '($|^)*'.
CVE-2007-6067: Very slow optimizer cleanup for regex with a large NFA
representation, as well as crash if we encounter an out-of-memory condition
during NFA construction.

Part of the response to CVE-2007-6067 is to put a limit on the number of
states in the NFA representation of a regex.  This seems needed even though
the within-the-code problems have been corrected, since otherwise the code
could try to use very large amounts of memory for a suitably-crafted regex,
leading to potential DOS by driving the system into swap, activating a kernel
OOM killer, etc.

Although there are certainly plenty of ways to drive the system into effective
DOS with poorly-written SQL queries, these problems seem worth treating as
security issues because many applications might accept regex search patterns
from untrustworthy sources.

Thanks to Will Drewry of Google for reporting these problems.  Patches by Will
Drewry and Tom Lane.

Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067

16 years agoAdd:
Bruce Momjian [Thu, 3 Jan 2008 18:47:44 +0000 (18:47 +0000)]
Add:

> * Allow multiple identical NOTIFY events to always be communicated to the
>   client, rather than sent as a single notification to the listener

16 years agoForbid ALTER TABLE and CLUSTER when there are pending AFTER-trigger events
Tom Lane [Wed, 2 Jan 2008 23:34:42 +0000 (23:34 +0000)]
Forbid ALTER TABLE and CLUSTER when there are pending AFTER-trigger events
in the current backend for the target table.  These operations move tuples
around and would thus invalidate the TIDs stored in the trigger event records.
(We need not worry about events in other backends, since acquiring exclusive
lock should be enough to ensure there aren't any.)  It might be sufficient
to forbid only the table-rewriting variants of ALTER TABLE, but in the absence
of any compelling use-case, let's just be safe and simple.  Per follow-on
investigation of bug #3847, though this is not actually the same problem
reported therein.

Possibly this should be back-patched, but since the case has never been
reported from the field, I didn't bother.

16 years agoInsert ARST into the list of known timezone abbreviations.
Tom Lane [Wed, 2 Jan 2008 21:42:00 +0000 (21:42 +0000)]
Insert ARST into the list of known timezone abbreviations.

16 years agoFix invalid ipv6 address in example. Per doc comment 7211.
Magnus Hagander [Wed, 2 Jan 2008 19:53:13 +0000 (19:53 +0000)]
Fix invalid ipv6 address in example. Per doc comment 7211.

16 years agoFix plpython's overoptimistic caching of information about the rowtype of
Tom Lane [Wed, 2 Jan 2008 03:10:27 +0000 (03:10 +0000)]
Fix plpython's overoptimistic caching of information about the rowtype of
a trigger's target table.  The rowtype could change from one call to the
next, so cope in such cases, while avoiding doing repetitive catalog lookups.
Per bug #3847 from Mark Reid.

Backpatch to 8.2.x.  Likely this fix should go further back, but I can't test
it because I no longer have a machine with a pre-2.5 Python installation.
(Maybe we should rethink that idea about not supporting Python 2.5 in the
older branches.)

16 years agoCorrect two more copyrights found by updated script.
Bruce Momjian [Wed, 2 Jan 2008 02:42:06 +0000 (02:42 +0000)]
Correct two more copyrights found by updated script.

16 years agoModify copyright script to handle cases where there is only one year
Bruce Momjian [Wed, 2 Jan 2008 02:36:18 +0000 (02:36 +0000)]
Modify copyright script to handle cases where there is only one year
in the copyright

16 years agoUpdate time zone data files to tzdata release 2007k.
Tom Lane [Tue, 1 Jan 2008 20:45:10 +0000 (20:45 +0000)]
Update time zone data files to tzdata release 2007k.

16 years agoFix some missed copyright updates.
Tom Lane [Tue, 1 Jan 2008 20:31:21 +0000 (20:31 +0000)]
Fix some missed copyright updates.

16 years agoUpdate copyrights in source tree to 2008.
Bruce Momjian [Tue, 1 Jan 2008 19:46:01 +0000 (19:46 +0000)]
Update copyrights in source tree to 2008.

16 years agoMove a few release note items from "Utility Commands" to "Object Manipulation".
Bruce Momjian [Tue, 1 Jan 2008 19:41:14 +0000 (19:41 +0000)]
Move a few release note items from "Utility Commands" to "Object Manipulation".

16 years agoUpdate release notes to match CVS HEAD.
Bruce Momjian [Tue, 1 Jan 2008 19:36:20 +0000 (19:36 +0000)]
Update release notes to match CVS HEAD.

16 years ago8.3 is possible release on 2008-01-??, not 2007.
Bruce Momjian [Tue, 1 Jan 2008 15:14:37 +0000 (15:14 +0000)]
8.3 is possible release on 2008-01-??, not 2007.

16 years agoProvide a more helpful error message when there is an autoconf version
Bruce Momjian [Mon, 31 Dec 2007 17:28:21 +0000 (17:28 +0000)]
Provide a more helpful error message when there is an autoconf version
mismatch;  backpatch.

16 years agoProvide a more helpful error message when there is an autoconf version
Bruce Momjian [Mon, 31 Dec 2007 16:47:10 +0000 (16:47 +0000)]
Provide a more helpful error message when there is an autoconf version
mismatch.  Batckpatch to 8.2.X.

16 years agoImprove a number of elog messages for not-supposed-to-happen cases in btrees,
Tom Lane [Mon, 31 Dec 2007 04:52:05 +0000 (04:52 +0000)]
Improve a number of elog messages for not-supposed-to-happen cases in btrees,
since these seem to happen after all in corrupted indexes.  Make sure we
supply the index name in all cases, and provide relevant block numbers where
available.  Also consistently identify the index name as such.

Back-patch to 8.2, in hopes that this might help Mason Hale figure out his
problem.

16 years agoAdd missing return code checks in the uuid-ossp contrib module, per bug #3841.
Alvaro Herrera [Mon, 31 Dec 2007 03:55:50 +0000 (03:55 +0000)]
Add missing return code checks in the uuid-ossp contrib module, per bug #3841.

16 years agoAdd sanity check to ensure delimiter and quote are different in CSV mode
Andrew Dunstan [Sun, 30 Dec 2007 14:46:52 +0000 (14:46 +0000)]
Add sanity check to ensure delimiter and quote are different in CSV mode

16 years agoUpdate TODO list based on 8.3 completed items:
Bruce Momjian [Sun, 30 Dec 2007 03:22:53 +0000 (03:22 +0000)]
Update TODO list based on 8.3 completed items:

< * Allow major upgrades without dump/reload, perhaps using pg_upgrade
<   [pg_upgrade]
< * Check for unreferenced table files created by transactions that were
<   in-progress when the server terminated abruptly
<
<   http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php
<
> * Check for unreferenced table files created by transactions that were
>   in-progress when the server terminated abruptly
>
>   http://archives.postgresql.org/pgsql-patches/2006-06/msg00096.php
>
< * Support table partitioning that allows a single table to be stored
<   in subtables that are partitioned based on the primary key or a WHERE
<   clause
<   creation of rules for INSERT/UPDATE/DELETE, and constraints for
<   rapid partition selection.  Options could include range and hash
>   creation of triggers or rules for INSERT/UPDATE/DELETE, and constraints
>   for rapid partition selection.  Options could include range and hash
<
< * Improve replication solutions
<
<  o Load balancing
<
<    You can use any of the master/slave replication servers to use a
<    standby server for data warehousing. To allow read/write queries to
<    multiple servers, you need multi-master replication like pgcluster.
<
<  o Allow replication over unreliable or non-persistent links
<
<
<  o Mark change-on-restart-only values in postgresql.conf
<    All objects in the default database tablespace must have default
<    tablespace specifications. This is because new databases are
<    created by copying directories. If you mix default tablespace
<    tables and tablespace-specified tables in the same directory,
<    creating a new database from such a mixed directory would create a
<    new database with tables that had incorrect explicit tablespaces.
<    To fix this would require modifying pg_class in the newly copied
<    database, which we don't currently do.
>    Currently all objects in the default database tablespace must
>    have default tablespace specifications. This is because new
>    databases are created by copying directories. If you mix default
>    tablespace tables and tablespace-specified tables in the same
>    directory, creating a new database from such a mixed directory
>    would create a new database with tables that had incorrect
>    explicit tablespaces.  To fix this would require modifying
>    pg_class in the newly copied database, which we don't currently
>    do.
<
<    o Allow recovery.conf to allow the same syntax as
>    o Allow recovery.conf to support the same syntax as
< * Allow user-defined types to specify a type modifier at table creation
<   time
< * Allow all data types to cast to and from TEXT
<
<   http://archives.postgresql.org/pgsql-hackers/2007-04/msg00017.php
<
<
<  o Add support for year-month syntax, INTERVAL '50-6' YEAR TO MONTH
<  o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS
<    INTERVAL MONTH), and this should return '12 months'
>  o Add support for year-month syntax, INTERVAL '50-6' YEAR
>    TO MONTH
>  o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1
>    year' AS INTERVAL MONTH), and this should return '12 months'
<  * Allow MONEY to be cast to/from other numeric data types
>  * Allow MONEY to be easily cast to/from other numeric data types
>
< * Allow functions to have a schema search path specified at creation time
< * Fix cases where invalid byte encodings are accepted by the database,
<   but throw an error on SELECT
<
<   http://archives.postgresql.org/pgsql-hackers/2007-03/msg00767.php
< * Improve logging of prepared statements recovered during startup
> * Improve logging of prepared transactions recovered during startup
< * Make standard_conforming_strings the default in 8.4?
> * Make standard_conforming_strings the default in 8.5?
< * Allow the count returned by SELECT, etc to be to represent as an int64
> * Allow the count returned by SELECT, etc to be represented as an int64
<  o Use more reliable method for CREATE DATABASE to get a consistent
<    copy of db?
<  o Fix transaction restriction checks for CREATE DATABASE and
<    other commands
<
<    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00133.php
<    currently allowed.
>    currently allowed.  This currently is done if the table is
>    created inside the same transaction block as the COPY because
>    no other backends can see the table.
<  o Add SET PATH for schemas?
<
<    This is basically the same as SET search_path.
<  o Enforce referential integrity for system tables
<  o Add Oracle-style packages  (Pavel)
<
<    A package would be a schema with session-local variables,
<    public/private functions, and initialization functions.  It
<    is also possible to implement these capabilities
<    in all schemas and not use a separate "packages"
<    syntax at all.
<
<    http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php
<
<  o Add single-step debugging of functions
<  o Allow RETURN to return row or record functions
<
<    http://archives.postgresql.org/pgsql-patches/2005-11/msg00045.php
<    http://archives.postgresql.org/pgsql-patches/2006-08/msg00397.php
<    http://archives.postgresql.org/pgsql-hackers/2006-09/msg00388.php
<
<  o Fix problems with RETURN NEXT on tables with
<    dropped/added columns after function creation
<
<    http://archives.postgresql.org/pgsql-patches/2006-02/msg00165.php
<
< * Make consistent use of long/short command options --- pg_ctl needs
<   long ones, pg_config doesn't have short ones, postgres doesn't have
<   enough long ones, etc.
<
<
<
<  o Consider parsing the -c string into individual queries so each
<    is run in its own transaction
<
<    http://archives.postgresql.org/pgsql-hackers/2007-01/msg00291.php
<
<
<  o Remove unnecessary function pointer abstractions in pg_dump source
<    code
>  o Remove unnecessary function pointer abstractions in pg_dump source
>    code
<
<
<  o Fix SSL retry to avoid useless repeated connection attempts and
<    ensuing misleading error messages
>
<
<   This is difficult because it requires datatype-specific knowledge.
<
< * Improve commit_delay handling to reduce fsync()
< * %Add an option to sync() before fsync()'ing checkpoint files
>
< * Reduce lock time during VACUUM FULL by moving tuples with read lock,
<   then write lock and truncate table
<
<   Moved tuples are invisible to other backends so they don't require a
<   write lock. However, the read lock promotion to write lock could lead
<   to deadlock situations.
<
< * Prevent long-lived temporary tables from causing frozen-xid advancement
<    starvation
<
<    The problem is that autovacuum cannot vacuum them to set frozen xids;
<    only the session that created them can do that.
<
<
<
<  o Use free-space map information to guide refilling
<  o Consider logging activity either to the logs or a system view
>    The problem is that autovacuum cannot vacuum them to set frozen xids;
>    only the session that created them can do that.
< * Add connection pooling
<
<   It is unclear if this should be done inside the backend code or done
<   by something external like pgpool. The passing of file descriptors to
<   existing backends is one of the difficulties with a backend approach.
<
< * Consider reducing memory used for shared buffer reference count
<
<   http://archives.postgresql.org/pgsql-hackers/2007-01/msg00752.php
<
< * %Remove memory/file descriptor freeing before ereport(ERROR)
< * %Promote debug_query_string into a server-side function current_query()
< * Allow ecpg to work with MSVC and BCC
< * Add xpath_array() to /contrib/xml2 to return results as an array
< * Allow building in directories containing spaces
<
<   This is probably not possible because 'gmake' and other compiler tools
<   do not fully support quoting of paths with spaces.
<
< * Fix sgmltools so PDFs can be generated with bookmarks
< * Split out libpq pgpass and environment documentation sections to make
<   it easier for non-developers to find
< * Use strlcpy() rather than our StrNCpy() macro
<
<   http://archives.postgresql.org/pgsql-hackers/2006-09/msg02108.php
<
<  o Re-enable timezone output on log_line_prefix '%t' when a
<    shorter timezone string is available
< * Allow statements across databases or servers with transaction
<   semantics
<
<   This can be done using dblink and two-phase commit.
> * Add Oracle-style packages  (Pavel)
< * Add the features of packages
>    A package would be a schema with session-local variables,
>    public/private functions, and initialization functions.  It
>    is also possible to implement these capabilities
>    in any schema and not use a separate "packages"
>    syntax at all.
<  o  Make private objects accessible only to objects in the same schema
<  o  Allow current_schema.objname to access current schema objects
<  o  Add session variables
<  o  Allow nested schemas
>    http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php

16 years agoRemove TODO.detil for pg_upgrade.
Bruce Momjian [Sun, 30 Dec 2007 01:50:11 +0000 (01:50 +0000)]
Remove TODO.detil for pg_upgrade.

16 years agoAdd:
Bruce Momjian [Sun, 30 Dec 2007 00:42:38 +0000 (00:42 +0000)]
Add:
>
> * Allow SSL authentication/encryption over unix domain sockets
>
>   http://archives.postgresql.org/pgsql-hackers/2007-12/msg00924.php

16 years agoUpdate Japanese FAQ.
Bruce Momjian [Sat, 29 Dec 2007 19:26:27 +0000 (19:26 +0000)]
Update Japanese FAQ.

Jun Kuwamura

16 years agoDocument how to control the disk write cache on Solaris.
Bruce Momjian [Sat, 29 Dec 2007 17:55:07 +0000 (17:55 +0000)]
Document how to control the disk write cache on Solaris.

Zdenek Kotala

16 years agoRemove tab in file name
Bruce Momjian [Sat, 29 Dec 2007 04:59:27 +0000 (04:59 +0000)]
Remove tab in file name