OSDN Git Service

pg-rex/syncrep.git
13 years agoSupport key word 'all' in host column of pg_hba.conf
Peter Eisentraut [Mon, 18 Oct 2010 19:14:47 +0000 (22:14 +0300)]
Support key word 'all' in host column of pg_hba.conf

13 years agoDocument the tablespace directory "should" be empty, rather than "must"
Bruce Momjian [Mon, 18 Oct 2010 18:15:58 +0000 (18:15 +0000)]
Document the tablespace directory "should" be empty, rather than "must"
be empty.  Because of binary migration usage, it might not be empty.

13 years agoChange example pg_hba.conf in docs to match altered pg_hba.conf.sample
Robert Haas [Mon, 18 Oct 2010 16:17:06 +0000 (12:17 -0400)]
Change example pg_hba.conf in docs to match altered pg_hba.conf.sample

Peter Eisentraut's recent patch to allow host names in pg_hba.conf
changed the contents of pg_hba.conf.sample

Fujii Masao

13 years agoFix a passel of inappropriately-named global functions in GIN.
Tom Lane [Mon, 18 Oct 2010 01:43:26 +0000 (21:43 -0400)]
Fix a passel of inappropriately-named global functions in GIN.

The GIN code has absolutely no business exporting GIN-specific functions
with names as generic as compareItemPointers() or newScanKey(); that's
just trouble waiting to happen.  I got annoyed about this again just now
and decided to fix it.  This commit ensures that all global symbols
defined in access/gin/ have names including "gin" or "Gin".  There were a
couple of cases, like names involving "PostingItem", where arguably the
names were already sufficiently nongeneric; but I figured as long as I was
risking creating merge problems for unapplied GIN patches I might as well
impose a uniform policy.

I didn't touch any static symbol names.  There might be some places
where it'd be appropriate to rename some static functions to match
siblings that are exported, but I'll leave that for another time.

13 years agoImprove GIN indexscan cost estimation.
Tom Lane [Mon, 18 Oct 2010 00:52:32 +0000 (20:52 -0400)]
Improve GIN indexscan cost estimation.

The better estimate requires more statistics than we previously stored:
in particular, counts of "entry" versus "data" pages within the index,
as well as knowledge of the number of distinct key values.  We collect
this information during initial index build and update it during VACUUM,
storing the info in new fields on the index metapage.  No initdb is
required because these fields will read as zeroes in a pre-existing
index, and the new gincostestimate code is coded to behave (reasonably)
sanely if they are zeroes.

Teodor Sigaev, reviewed by Jan Urbanski, Tom Lane, and Itagaki Takahiro.

13 years agoFix msvc build for localized versions of Visual C++
Magnus Hagander [Sun, 17 Oct 2010 14:36:54 +0000 (16:36 +0200)]
Fix msvc build for localized versions of Visual C++

Look only at the non-localized part of the output from "vcbuild /?",
which is used to determine the version of Visual Studio in use. Different
languages seem to localize different amounts of the string, but we assume
the part "Microsoft Visual C++" won't be modified.

13 years agoFix recent changes to not break non-IPV6-aware systems.
Tom Lane [Sat, 16 Oct 2010 14:12:16 +0000 (10:12 -0400)]
Fix recent changes to not break non-IPV6-aware systems.

13 years agoDocument that translate() removes characters in "from" that don't have
Alvaro Herrera [Sat, 16 Oct 2010 04:11:38 +0000 (01:11 -0300)]
Document that translate() removes characters in "from" that don't have
a corresponding "to" character.

Author: Josh Kupershmidt

13 years agoAllow WITH clauses to be attached to INSERT, UPDATE, DELETE statements.
Tom Lane [Fri, 15 Oct 2010 23:53:59 +0000 (19:53 -0400)]
Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements.

This is not the hoped-for facility of using INSERT/UPDATE/DELETE inside
a WITH, but rather the other way around.  It seems useful in its own
right anyway.

Note: catversion bumped because, although the contents of stored rules
might look compatible, there's actually a subtle semantic change.
A single Query containing a WITH and INSERT...VALUES now represents
writing the WITH before the INSERT, not before the VALUES.  While it's
not clear that that matters to anyone, it seems like a good idea to
have it cited in the git history for catversion.h.

Original patch by Marko Tiikkaja, with updating and cleanup by
Hitoshi Harada.

13 years agoSupport host names in pg_hba.conf
Peter Eisentraut [Fri, 15 Oct 2010 19:53:39 +0000 (22:53 +0300)]
Support host names in pg_hba.conf

Peter Eisentraut, reviewed by KaiGai Kohei and Tom Lane

13 years agoChange references to SQL/XML:2003 to :2008 and renumber sections accordingly
Peter Eisentraut [Fri, 15 Oct 2010 18:18:47 +0000 (21:18 +0300)]
Change references to SQL/XML:2003 to :2008 and renumber sections accordingly

13 years agoDocument the DISTINCT noise word in the UNION/INTERSECT/EXCEPT constructs.
Tom Lane [Fri, 15 Oct 2010 19:48:45 +0000 (15:48 -0400)]
Document the DISTINCT noise word in the UNION/INTERSECT/EXCEPT constructs.

I also rearranged the order of the sections to match the logical order
of processing steps: the distinct-elimination implied by SELECT DISTINCT
happens before, not after, any UNION/INTERSECT/EXCEPT combination.

Per a suggestion from Hitoshi Harada.

13 years agoAllow pg_ctl to register the service in either AUTO or DEMAND start type
Alvaro Herrera [Fri, 15 Oct 2010 17:30:03 +0000 (14:30 -0300)]
Allow pg_ctl to register the service in either AUTO or DEMAND start type

Author: Quan Zongliang
Documentation updates by David Fetter

13 years agoFix low-risk potential denial of service against RADIUS login.
Magnus Hagander [Fri, 15 Oct 2010 14:59:10 +0000 (16:59 +0200)]
Fix low-risk potential denial of service against RADIUS login.

Corrupt RADIUS responses were treated as errors and not ignored
(which the RFC2865 states they should be). This meant that a
user with unfiltered access to the network of the PostgreSQL
or RADIUS server could send a spoofed RADIUS response
to the PostgreSQL server causing it to reject a valid login,
provided the attacker could also guess (or brute-force) the
correct port number.

Fix is to simply retry the receive in a loop until the timeout
has expired or a valid (signed by the correct RADIUS server)
packet arrives.

Reported by Alan DeKok in bug #5687.

13 years agoCorrect WAL space calculation formula in docs.
Simon Riggs [Fri, 15 Oct 2010 09:17:12 +0000 (10:17 +0100)]
Correct WAL space calculation formula in docs.

Error pointed out by Fujii Masao, though not his patch.

13 years agoImprove comment about ignoring 128 error code on Windows:
Bruce Momjian [Fri, 15 Oct 2010 01:57:41 +0000 (01:57 +0000)]
Improve comment about ignoring 128 error code on Windows:

     * Microsoft reports it is related to mutex failure:
     *   http://archives.postgresql.org/pgsql-hackers/2010-09/msg00790.php

13 years agoAdd pg_user_mappings to the table of system views.
Robert Haas [Thu, 14 Oct 2010 23:12:24 +0000 (19:12 -0400)]
Add pg_user_mappings to the table of system views.

13 years agoSupport MergeAppend plans, to allow sorted output from append relations.
Tom Lane [Thu, 14 Oct 2010 20:56:39 +0000 (16:56 -0400)]
Support MergeAppend plans, to allow sorted output from append relations.

This patch eliminates the former need to sort the output of an Append scan
when an ordered scan of an inheritance tree is wanted.  This should be
particularly useful for fast-start cases such as queries with LIMIT.

Original patch by Greg Stark, with further hacking by Hans-Jurgen Schonig,
Robert Haas, and Tom Lane.

13 years agoFix makefile logic to not break the build when xgettext is missing
Peter Eisentraut [Thu, 14 Oct 2010 19:15:46 +0000 (22:15 +0300)]
Fix makefile logic to not break the build when xgettext is missing

xgettext is only required when make init-po is run manually; it is not
required for a build.  The intent to handle that was already there, but
the ifdef's were in the wrong place.

13 years agoRemove reference.ced
Peter Eisentraut [Thu, 14 Oct 2010 18:32:45 +0000 (21:32 +0300)]
Remove reference.ced

This is a parsed DocBook DTD for the PSGML Emacs mode, but it hasn't
been updated since we switched to DocBook 4.2 about seven years ago.
Also, PSGML has deprecated this method of DTD parsing.

13 years agoComplete the documentation of the USAGE privilege for foreign servers
Peter Eisentraut [Thu, 14 Oct 2010 17:36:42 +0000 (20:36 +0300)]
Complete the documentation of the USAGE privilege for foreign servers

The GRANT reference page failed to mention that the USAGE privilege
allows modifying associated user mappings, although this was already
documented on the CREATE/ALTER/DROP USER MAPPING pages.

13 years agoDocument (compositeval).* field selection syntax
Peter Eisentraut [Thu, 14 Oct 2010 17:07:13 +0000 (20:07 +0300)]
Document (compositeval).* field selection syntax

13 years agoImprovements to docs about pg_archive_cleanup and use of archives
Simon Riggs [Thu, 14 Oct 2010 18:30:15 +0000 (19:30 +0100)]
Improvements to docs about pg_archive_cleanup and use of archives

Brendan Jurd

13 years agoMake startup process respond to signals to cancel waiting on latch.
Simon Riggs [Thu, 14 Oct 2010 18:15:26 +0000 (19:15 +0100)]
Make startup process respond to signals to cancel waiting on latch.
A tidy up for recently committed changes to startup latch.

Fujii Masao

13 years agoFix bug in comment of timeline history file.
Simon Riggs [Thu, 14 Oct 2010 18:06:06 +0000 (19:06 +0100)]
Fix bug in comment of timeline history file.

Fujii Masao

13 years agoApplied patch by Itagaki Takahiro to fix incorrect status calculation in
Michael Meskes [Thu, 14 Oct 2010 15:55:07 +0000 (17:55 +0200)]
Applied patch by Itagaki Takahiro to fix incorrect status calculation in
ecpglib. Instead of parsing the statement just as ask the database server. This
patch removes the whole client side track keeping of the current transaction
status.

13 years agoRemove executable permission from files where it doesn't belong
Peter Eisentraut [Wed, 13 Oct 2010 19:30:25 +0000 (22:30 +0300)]
Remove executable permission from files where it doesn't belong

13 years agoAdd index entries for pg_stat* views
Peter Eisentraut [Wed, 13 Oct 2010 18:29:10 +0000 (21:29 +0300)]
Add index entries for pg_stat* views

13 years agoMention the default pg_ctl wait time in the -t option documentation
Peter Eisentraut [Wed, 13 Oct 2010 17:24:51 +0000 (20:24 +0300)]
Mention the default pg_ctl wait time in the -t option documentation

13 years agoMake title capitalization consistent with surroundings
Peter Eisentraut [Wed, 13 Oct 2010 17:05:16 +0000 (20:05 +0300)]
Make title capitalization consistent with surroundings

13 years agoPut per-letter quicklinks at the top of the HTML bookindex page
Peter Eisentraut [Wed, 13 Oct 2010 16:46:05 +0000 (19:46 +0300)]
Put per-letter quicklinks at the top of the HTML bookindex page

13 years agoAccept 'public' as a pseudo-role name in has_table_privilege() and friends
Itagaki Takahiro [Wed, 13 Oct 2010 05:37:23 +0000 (14:37 +0900)]
Accept 'public' as a pseudo-role name in has_table_privilege() and friends
to see if a particular privilege has been granted to PUBLIC.

The issue was reported by Jim Nasby.
Patch by Alvaro Herrera, and reviewed by KaiGai Kohei.

13 years agoRemove some unnecessary tests of pgstat_track_counts.
Tom Lane [Tue, 12 Oct 2010 18:44:25 +0000 (14:44 -0400)]
Remove some unnecessary tests of pgstat_track_counts.

We may as well make pgstat_count_heap_scan() and related macros just count
whenever rel->pgstat_info isn't null.  Testing pgstat_track_counts buys
nothing at all in the normal case where that flag is ON; and when it's OFF,
the pgstat_info link will be null, so it's still a useless test.

This change is unlikely to buy any noticeable performance improvement,
but a cycle shaved is a cycle earned; and my investigations earlier today
convinced me that we're down to the point where individual instructions in
the inner execution loops are starting to matter.

13 years agoFix typo
Alvaro Herrera [Tue, 12 Oct 2010 16:24:10 +0000 (13:24 -0300)]
Fix typo

13 years agoFix plpython so that it again honors typmod while assigning to tuple fields.
Tom Lane [Tue, 12 Oct 2010 02:16:40 +0000 (22:16 -0400)]
Fix plpython so that it again honors typmod while assigning to tuple fields.

This was broken in 9.0 while improving plpython's conversion behavior for
bytea and boolean.  Per bug report from maizi.

13 years agoFix assorted bugs in GIN's WAL replay logic.
Tom Lane [Mon, 11 Oct 2010 23:04:37 +0000 (19:04 -0400)]
Fix assorted bugs in GIN's WAL replay logic.

The original coding was quite sloppy about handling the case where
XLogReadBuffer fails (because the page has since been deleted).  This
would result in either "bad buffer id: 0" or an Assert failure during
replay, if indeed the page were no longer there.  In a couple of places
it also neglected to check whether the change had already been applied,
which would probably result in corrupted index contents.  I believe that
bug #5703 is an instance of the first problem.  These issues could show up
without replication, but only if you were unfortunate enough to crash
between modification of a GIN index and the next checkpoint.

Back-patch to 8.2, which is as far back as GIN has WAL support.

13 years agoImprove the planner's simplification of NOT constructs.
Tom Lane [Mon, 11 Oct 2010 03:19:50 +0000 (23:19 -0400)]
Improve the planner's simplification of NOT constructs.

This patch merges the responsibility for NOT-flattening into
eval_const_expressions' processing.  It wasn't done that way originally
because prepqual.c is far older than eval_const_expressions.  But putting
this work into eval_const_expressions saves one pass over the qual trees,
and in fact saves even more than that because we can exploit the knowledge
that the subexpressions have already been recursively simplified.  Doing it
this way also lets us do it uniformly over all expressions, whereas
prepqual.c formerly just did it at top level to save cycles.  That should
improve the planner's ability to recognize logically-equivalent constructs.

While at it, also add the ability to fold a NOT into BooleanTest and
NullTest constructs (the latter only for the scalar-datatype case).

Per discussion of bug #5702.

13 years agoTeach psql to do tab completion for names of psql variables.
Tom Lane [Sun, 10 Oct 2010 22:42:35 +0000 (18:42 -0400)]
Teach psql to do tab completion for names of psql variables.

Completion is supported in the context of \set and when interpolating
a variable value using :foo etc.

In passing, fix some places in tab-complete.c that weren't following
project style for comment formatting.

Pavel Stehule, reviewed by Itagaki Takahiro

13 years agoSupport triggers on views.
Tom Lane [Sun, 10 Oct 2010 17:43:33 +0000 (13:43 -0400)]
Support triggers on views.

This patch adds the SQL-standard concept of an INSTEAD OF trigger, which
is fired instead of performing a physical insert/update/delete.  The
trigger function is passed the entire old and/or new rows of the view,
and must figure out what to do to the underlying tables to implement
the update.  So this feature can be used to implement updatable views
using trigger programming style rather than rule hacking.

In passing, this patch corrects the names of some columns in the
information_schema.triggers view.  It seems the SQL committee renamed
them somewhere between SQL:99 and SQL:2003.

Dean Rasheed, reviewed by Bernd Helmle; some additional hacking by me.

13 years agoExtensive ECPG documentation improvements
Peter Eisentraut [Sun, 10 Oct 2010 10:46:02 +0000 (13:46 +0300)]
Extensive ECPG documentation improvements

Satoshi Nagayasu, reviewed and revised by Peter Eisentraut

Since this introduces new refentries that we probably don't want to publish as
man pages, tweak man page stylesheet to omit man pages without manvolnum
element.

Peter Eisentraut

13 years agoAdjust EXPLAIN documentation, so that it's not unreasonably wide.
Robert Haas [Sat, 9 Oct 2010 02:59:48 +0000 (22:59 -0400)]
Adjust EXPLAIN documentation, so that it's not unreasonably wide.

The new formatting matches what we do for COPY.

Per a complaint from Bruce Momjian.

13 years agoSingle-word clarification in postgresql.conf log_truncate_on_rotation
Bruce Momjian [Fri, 8 Oct 2010 19:10:06 +0000 (19:10 +0000)]
Single-word clarification in postgresql.conf log_truncate_on_rotation
comment.

13 years agoFix sloppy usage of TRIGGER_FIRED_BEFORE/TRIGGER_FIRED_AFTER.
Tom Lane [Fri, 8 Oct 2010 17:27:31 +0000 (13:27 -0400)]
Fix sloppy usage of TRIGGER_FIRED_BEFORE/TRIGGER_FIRED_AFTER.

Various places were testing TRIGGER_FIRED_BEFORE() where what they really
meant was !TRIGGER_FIRED_AFTER(), or vice versa.  This needs to be cleaned
up because there are about to be more than two possible states.

We might want to note this in the 9.1 release notes as something for
trigger authors to double-check.

For consistency's sake I also changed some places that assumed that
TRIGGER_FIRED_FOR_ROW and TRIGGER_FIRED_FOR_STATEMENT are necessarily
mutually exclusive; that's not in immediate danger of breaking, but
it's still sloppier than it should be.

Extracted from Dean Rasheed's patch for triggers on views.  I'm committing
this separately since it's an identifiable separate issue, and is the
only reason for the patch to touch most of these particular files.

13 years agoWarn that views can be safely used to hide columns, but not rows.
Robert Haas [Fri, 8 Oct 2010 13:15:17 +0000 (09:15 -0400)]
Warn that views can be safely used to hide columns, but not rows.

13 years agoImprove logging in VACUUM FULL VERBOSE and CLUSTER VERBOSE.
Tom Lane [Fri, 8 Oct 2010 01:46:46 +0000 (21:46 -0400)]
Improve logging in VACUUM FULL VERBOSE and CLUSTER VERBOSE.

This patch resurrects some of the information that could be logged by the
old, now-dead implementation of VACUUM FULL, in particular counts of live
and dead tuples and the time taken for the table rebuild proper.  There's
still no logging about the ensuing index rebuilds, though.

Itagaki Takahiro

13 years agoEliminate some repetitive coding in tuplesort.c.
Tom Lane [Fri, 8 Oct 2010 00:32:21 +0000 (20:32 -0400)]
Eliminate some repetitive coding in tuplesort.c.

Use a macro LogicalTapeReadExact() to encapsulate the error check when
we want to read an exact number of bytes from a "tape".  Per a suggestion
of Takahiro Itagaki.

13 years agoTeach CLUSTER to use seqscan-and-sort when it's faster than indexscan.
Tom Lane [Fri, 8 Oct 2010 00:00:28 +0000 (20:00 -0400)]
Teach CLUSTER to use seqscan-and-sort when it's faster than indexscan.

... or at least, when the planner's cost estimates say it will be faster.

Leonardo Francalanci, reviewed by Itagaki Takahiro and Tom Lane

13 years agoImprove WAL reliability documentation, and add more cross-references to it.
Robert Haas [Thu, 7 Oct 2010 16:19:03 +0000 (12:19 -0400)]
Improve WAL reliability documentation, and add more cross-references to it.

In particular, we are now more explicit about the fact that you may need
wal_sync_method=fsync_writethrough for crash-safety on some platforms,
including MaxOS X.  There's also now an explicit caution against assuming
that the default setting of wal_sync_method is either crash-safe or best
for performance.

13 years agoReduce the memory requirement for large ispell dictionaries.
Tom Lane [Wed, 6 Oct 2010 23:31:05 +0000 (19:31 -0400)]
Reduce the memory requirement for large ispell dictionaries.

This patch eliminates per-chunk palloc overhead for most small allocations
needed in the representation of an ispell dictionary.  This saves close to
a factor of 2 on the current Czech ispell data.  While it doesn't cover
every last small allocation in the ispell code, we are at the point of
diminishing returns, because about 95% of the allocations are covered
already.

Pavel Stehule, rather heavily revised by Tom

13 years agoClean up temporary-memory management during ispell dictionary loading.
Tom Lane [Wed, 6 Oct 2010 19:15:15 +0000 (15:15 -0400)]
Clean up temporary-memory management during ispell dictionary loading.

Add explicit initialization and cleanup functions to spell.c, and keep
all working state in the already-existing ISpellDict struct.  This lets us
get rid of a static variable along with some extremely shaky assumptions
about usage of child memory contexts.

This commit is just code beautification and has no impact on functionality
or performance, but it opens the way to a less-grotty implementation of
Pavel's memory-saving hack, which will follow shortly.

13 years agoCorrect docs for behaviour of ALTER DATABASE .. RENAME during Hot Standby.
Simon Riggs [Tue, 5 Oct 2010 23:19:05 +0000 (00:19 +0100)]
Correct docs for behaviour of ALTER DATABASE .. RENAME during Hot Standby.
Actual behaviour did not match documented behaviour and we have agreed
that it should be the docs that change.

Spotted by Bernd Helmle

13 years agoUndo some poorly-thought-out "proofreading improvements".
Tom Lane [Tue, 5 Oct 2010 22:48:13 +0000 (18:48 -0400)]
Undo some poorly-thought-out "proofreading improvements".
Per Tatsuhito Kasahara.

13 years agoBehave correctly if INSERT ... VALUES is decorated with additional clauses.
Tom Lane [Sun, 3 Oct 2010 00:02:27 +0000 (20:02 -0400)]
Behave correctly if INSERT ... VALUES is decorated with additional clauses.

In versions 8.2 and up, the grammar allows attaching ORDER BY, LIMIT,
FOR UPDATE, or WITH to VALUES, and hence to INSERT ... VALUES.  But the
special-case code for VALUES in transformInsertStmt() wasn't expecting any
of those, and just ignored them, leading to unexpected results.  Rather
than complicate the special-case path, just ensure that the presence of any
of those clauses makes us treat the query as if it had a general SELECT.
Per report from Hitoshi Harada.

13 years agoRemove excess argument to open(2).
Tom Lane [Sat, 2 Oct 2010 22:40:28 +0000 (18:40 -0400)]
Remove excess argument to open(2).

Many compilers don't complain about this, but some do, and it's certainly
wrong.  Back-patch to 8.4 where the error was introduced.

Mark Kirkwood

13 years agoThrow an appropriate error if ALTER COLUMN TYPE finds a dependent trigger.
Tom Lane [Sat, 2 Oct 2010 22:21:41 +0000 (18:21 -0400)]
Throw an appropriate error if ALTER COLUMN TYPE finds a dependent trigger.

Actually making this case work, if the column is used in the trigger's
WHEN condition, will take some new code that probably isn't appropriate
to back-patch.  For now, just throw a FEATURE_NOT_SUPPORTED error rather
than allowing control to reach the "unexpected object" case.  Per bug #5688
from Daniel Grace.  Back-patch to 9.0 where the possibility of such a
dependency was introduced.

13 years agoUse a separate interpreter for each calling SQL userid in plperl and pltcl.
Tom Lane [Thu, 30 Sep 2010 21:18:51 +0000 (17:18 -0400)]
Use a separate interpreter for each calling SQL userid in plperl and pltcl.

There are numerous methods by which a Perl or Tcl function can subvert
the behavior of another such function executed later; for example, by
redefining standard functions or operators called by the target function.
If the target function is SECURITY DEFINER, or is called by such a
function, this means that any ordinary SQL user with Perl or Tcl language
usage rights can do essentially anything with the privileges of the target
function's owner.

To close this security hole, create a separate Perl or Tcl interpreter for
each SQL userid under which plperl or pltcl functions are executed within
a session.  However, all plperlu or pltclu functions run within a session
still share a single interpreter, since they all execute at the trust
level of a database superuser anyway.

Note: this change results in a functionality loss when libperl has been
built without the "multiplicity" option: it's no longer possible to call
plperl functions under different userids in one session, since such a
libperl can't support multiple interpreters in one process.  However, such
a libperl already failed to support concurrent use of plperl and plperlu,
so it's likely that few people use such versions with Postgres.

Security: CVE-2010-3433

13 years agoAdjust pg_archivecleanup docs to match message changes made 2010-06-17.
Robert Haas [Thu, 30 Sep 2010 21:05:15 +0000 (17:05 -0400)]
Adjust pg_archivecleanup docs to match message changes made 2010-06-17.

Erik Rijkers

13 years agoUpdate release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22,
Tom Lane [Thu, 30 Sep 2010 18:27:15 +0000 (14:27 -0400)]
Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22,
8.0.26, and 7.4.30.

13 years agoAdd/fix caching on some configure checks
Peter Eisentraut [Wed, 29 Sep 2010 19:38:04 +0000 (22:38 +0300)]
Add/fix caching on some configure checks

13 years agoUpdate ecpglib error code listing
Peter Eisentraut [Wed, 29 Sep 2010 10:58:35 +0000 (13:58 +0300)]
Update ecpglib error code listing

Satoshi Nagayasu

13 years agoHave pg_upgrade use strtoul(), not strtol().
Bruce Momjian [Wed, 29 Sep 2010 02:40:25 +0000 (02:40 +0000)]
Have pg_upgrade use strtoul(), not strtol().

13 years agoUse macro atooid() for conversion of strings to oids, per suggestion
Bruce Momjian [Tue, 28 Sep 2010 22:11:17 +0000 (22:11 +0000)]
Use macro atooid() for conversion of strings to oids, per suggestion
from Tom.

13 years agoImprove messages for too many private files/dirs. Per Alexey Parshin.
Tom Lane [Tue, 28 Sep 2010 22:08:02 +0000 (18:08 -0400)]
Improve messages for too many private files/dirs.  Per Alexey Parshin.

13 years agoIn pg_upgrade, properly handle oids > 2^31 by using strtoul() internally
Bruce Momjian [Tue, 28 Sep 2010 21:41:03 +0000 (21:41 +0000)]
In pg_upgrade, properly handle oids > 2^31 by using strtoul() internally
rather than atol().

Per report from Brian Hirt

13 years agoFix leak patch that was using fclose() instead of close().
Bruce Momjian [Tue, 28 Sep 2010 21:27:32 +0000 (21:27 +0000)]
Fix leak patch that was using fclose() instead of close().

13 years agoProperly close files after read file failure to prevent potential
Bruce Momjian [Tue, 28 Sep 2010 19:25:12 +0000 (19:25 +0000)]
Properly close files after read file failure to prevent potential
resource leak.  Of course, any such failure aborts pg_upgrade, but might
as well be clean about it.

Per patch from Grzegorz Ja?kiewicz.

13 years agoFix another small oversight in command_no_begin patch.
Tom Lane [Tue, 28 Sep 2010 18:47:25 +0000 (14:47 -0400)]
Fix another small oversight in command_no_begin patch.

Need a "return false" to prevent tests from continuing after we've moved
the "query" pointer.  As it stood, it'd accept "DROP DISCARD ALL" as a
match.

13 years agoMention that pg_upgrade requires write permission in the current
Bruce Momjian [Tue, 28 Sep 2010 18:43:01 +0000 (18:43 +0000)]
Mention that pg_upgrade requires write permission in the current
directory.

Per report from Harald Armin Massa.

13 years agoMention in pg_upgrade docs that the proper Win32 service name should be used.
Bruce Momjian [Tue, 28 Sep 2010 18:32:06 +0000 (18:32 +0000)]
Mention in pg_upgrade docs that the proper Win32 service name should be used.

Per report from Harald Armin Massa

13 years agoFix PlaceHolderVar mechanism's interaction with outer joins.
Tom Lane [Tue, 28 Sep 2010 16:08:56 +0000 (12:08 -0400)]
Fix PlaceHolderVar mechanism's interaction with outer joins.

The point of a PlaceHolderVar is to allow a non-strict expression to be
evaluated below an outer join, after which its value bubbles up like a Var
and can be forced to NULL when the outer join's semantics require that.
However, there was a serious design oversight in that, namely that we
didn't ensure that there was actually a correct place in the plan tree
to evaluate the placeholder :-(.  It may be necessary to delay evaluation
of an outer join to ensure that a placeholder that should be evaluated
below the join can be evaluated there.  Per recent bug report from Kirill
Simonov.

Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.

13 years agoAdd mention of installing pg_upgrade_support in pg_upgrade doc section
Bruce Momjian [Tue, 28 Sep 2010 17:25:20 +0000 (17:25 +0000)]
Add mention of installing pg_upgrade_support in pg_upgrade doc section
title, per suggestion from Ian Barwick.

13 years agoAdd missing agg_type nonterminal description in new reference page.
Alvaro Herrera [Tue, 28 Sep 2010 15:24:00 +0000 (11:24 -0400)]
Add missing agg_type nonterminal description in new reference page.

13 years agoFix MSVC builds for dummy_seclabel breakage.
Andrew Dunstan [Tue, 28 Sep 2010 14:00:28 +0000 (10:00 -0400)]
Fix MSVC builds for dummy_seclabel breakage.

13 years agoFix duplicate OIDs introduced by SECURITY LABEL patch.
Robert Haas [Tue, 28 Sep 2010 11:03:10 +0000 (07:03 -0400)]
Fix duplicate OIDs introduced by SECURITY LABEL patch.

Report by Shigeru Hanada.

13 years agoOnly DISCARD ALL should be in the command_no_begin list.
Itagaki Takahiro [Tue, 28 Sep 2010 06:55:25 +0000 (15:55 +0900)]
Only DISCARD ALL should be in the command_no_begin list.
We allowes DISCARD PLANS and TEMP in a transaction.

13 years agoAdd DISCARD to the command_no_begin list for AUTOCOMMIT=off.
Itagaki Takahiro [Tue, 28 Sep 2010 05:20:17 +0000 (14:20 +0900)]
Add DISCARD to the command_no_begin list for AUTOCOMMIT=off.
Backpatch to 8.3.

Reported by Sergey Burladyan.

13 years agoAdd a SECURITY LABEL command.
Robert Haas [Tue, 28 Sep 2010 00:55:27 +0000 (20:55 -0400)]
Add a SECURITY LABEL command.

This is intended as infrastructure to support integration with label-based
mandatory access control systems such as SE-Linux. Further changes (mostly
hooks) will be needed, but this is a big chunk of it.

KaiGai Kohei and Robert Haas

13 years agoAdd "(change requires restart)" note to some postgresql.conf parameters.
Robert Haas [Mon, 27 Sep 2010 13:14:14 +0000 (09:14 -0400)]
Add "(change requires restart)" note to some postgresql.conf parameters.

Devrim GÜNDÜZ

13 years agoImprove git_changelog as per discussion with Robert Haas.
Tom Lane [Mon, 27 Sep 2010 00:22:17 +0000 (20:22 -0400)]
Improve git_changelog as per discussion with Robert Haas.

1. Resurrect the behavior where old commits on master will have Branch:
labels for branches sprouted after the commit was made.  I'm still
dubious about this mode, but if you want it, say --post-date or -p.

2. Annotate the Branch: labels with the release or branch in which the
commit was publicly released.  For example, on a release branch you could
see
Branch: REL8_3_STABLE Release: REL8_3_2 [92c3a8004] 2008-03-29 00:15:37 +0000
showing that the fix was released in 8.3.2.  Commits on master will
usually instead have notes like
Branch: master Release: REL8_4_BR [6fc9d4272] 2008-03-29 00:15:28 +0000
showing that this commit is ancestral to release branches 8.4 and later.
If no Release: marker appears, the commit hasn't yet made it into any
release.

3. Add support for release branches older than 7.4.

4. The implementation is improved by running git log on each branch only
back to where the branch sprouts from master.  This saves a good deal
of time (about 50% of the runtime when generating the complete history).
We generate the post-date-mode tags via a direct understanding that
they should be applied to master commits made before the branch sprouted,
rather than backing into them via matching (which isn't any too
reliable when people used identical log messages for successive commits).

13 years agoAdd ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE
Peter Eisentraut [Sun, 26 Sep 2010 11:41:03 +0000 (14:41 +0300)]
Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE

Like with tables, this also requires allowing the existence of
composite types with zero attributes.

reviewed by KaiGai Kohei

13 years agoStill more tweaking of git_changelog.
Tom Lane [Sun, 26 Sep 2010 05:51:20 +0000 (01:51 -0400)]
Still more tweaking of git_changelog.

1. Don't assume there's only one candidate match; check them all and use the
one with the closest timestamp.  Avoids funny output when someone makes
several successive commits with the same log message, as certain people
have been known to do.

2. When the same commit (with the same SHA1) is reachable from multiple
branch tips, don't report it for all the branches; instead report it only
for the first such branch.  Given our development practices, this case
arises only for commits that occurred before a given branch split off from
master.  The original coding blamed old commits on *all* the branches,
which isn't terribly useful; the new coding blames such a commit only on
master.

13 years agoFix some more bugs in git_changelog.
Tom Lane [Sun, 26 Sep 2010 04:21:51 +0000 (00:21 -0400)]
Fix some more bugs in git_changelog.

1. Don't forget the last (oldest) commit on the oldest branch.

2. When considering which commit to print next, if two alternatives have
the same "distortion" score (which is actually the normal case, since
generally the "distortion" is 0), then choose the later timestamp to
print first.  I don't know where Robert got the idea to ignore timestamps
and sort by branch age, but it wasn't a good idea: the resulting ordering
of commits was just plain bizarre anywhere that some branches had many
fewer commits than others, which is the typical situation for us.

13 years agoMinor improvements to git_changelog.
Tom Lane [Sun, 26 Sep 2010 00:50:57 +0000 (20:50 -0400)]
Minor improvements to git_changelog.

Avoid depending on Date::Calc, which isn't in a basic Perl installation,
when we can equally well use Time::Local which is.  Also fix the parsing
of timestamps to take heed of the timezone.  (It looks like cvs2git emitted
all commit timestamps with zone GMT, so this refinement might've looked
unnecessary when looking at converted data; but it's needed now.)

Fix parsing of message bodies so that blank lines that may or may not get
emitted by "git log" aren't confused with real data.  This avoids strange
formatting of the oldest commit on a branch.

Check child-process exit status, so that we actually notice if "git log"
fails, and so that we don't accumulate zombie children.

13 years agoRename git_topo_order -> git_changelog, per discussion.
Tom Lane [Sat, 25 Sep 2010 23:31:26 +0000 (19:31 -0400)]
Rename git_topo_order -> git_changelog, per discussion.

13 years agoFix another join removal bug: the check on PlaceHolderVars was wrong.
Tom Lane [Sat, 25 Sep 2010 23:03:50 +0000 (19:03 -0400)]
Fix another join removal bug: the check on PlaceHolderVars was wrong.

The previous coding would decide that join removal was unsafe upon finding
a PlaceHolderVar that needed to be evaluated at the inner rel and then used
above the join.  However, this fails to cover the case of PlaceHolderVars
that refer to both the inner rel and some other rels.  Per bug report from
Andrus.

13 years agoFix man page markup for <cmdsynopsis> with multiple variants
Peter Eisentraut [Sat, 25 Sep 2010 06:57:09 +0000 (09:57 +0300)]
Fix man page markup for <cmdsynopsis> with multiple variants

Command synopses using <cmdsynopsis> with multiple variants previously used
<sbr> to break lines between variants.  The new man page toolchain introduced
in 9.0 makes a mess out of that, and that markup was probably wrong all along,
because <sbr> is supposed to break lines within a synopsis, not between them.
So fix that by using multiple <cmdsynopsis> elements inside <refsynopsisdiv>.

backpatched to 9.0

13 years agoIn levenshtein_internal(), describe algorithm a bit more clearly.
Robert Haas [Fri, 24 Sep 2010 18:35:01 +0000 (14:35 -0400)]
In levenshtein_internal(), describe algorithm a bit more clearly.

13 years agoStill more .gitignore cleanup.
Tom Lane [Fri, 24 Sep 2010 17:48:15 +0000 (13:48 -0400)]
Still more .gitignore cleanup.

Fix overly-enthusiastic ignores, as identified by
git ls-files -i --exclude-standard

13 years agoPrevent doc/src/sgml subdirs from being created, instead of deleting
Alvaro Herrera [Fri, 24 Sep 2010 05:32:52 +0000 (01:32 -0400)]
Prevent doc/src/sgml subdirs from being created, instead of deleting
them after the fact.  This is a more elegant fix for bug #5595.

13 years agoAdd contrib/xml2/pgxml.sql to .gitignore
Robert Haas [Fri, 24 Sep 2010 02:00:26 +0000 (22:00 -0400)]
Add contrib/xml2/pgxml.sql to .gitignore

Kevin Grittner

13 years agoReplace doc references to install-win32 with install-windows.
Robert Haas [Thu, 23 Sep 2010 21:44:22 +0000 (17:44 -0400)]
Replace doc references to install-win32 with install-windows.

Windows is not necessarily 32-bit, any more.

As suggested by Mike Toews.

13 years agoProcessIncomingNotify *must* reset notifyInterruptOccurred when called.
Tom Lane [Thu, 23 Sep 2010 21:16:51 +0000 (17:16 -0400)]
ProcessIncomingNotify *must* reset notifyInterruptOccurred when called.

This was broken in 9.0 by careless addition of an early-exit path.
Bug report and diagnosis by Jeff Davis.

13 years agoPrevent show_session_authorization from crashing when session_authorization
Tom Lane [Thu, 23 Sep 2010 20:53:16 +0000 (16:53 -0400)]
Prevent show_session_authorization from crashing when session_authorization
hasn't been set.

The only known case where this can happen is when show_session_authorization
is invoked in an autovacuum process, which is possible if an index function
calls it, as for example in bug #5669 from Andrew Geery.  We could perhaps
try to return a sensible value, such as the name of the cluster-owning
superuser; but that seems like much more trouble than the case is worth,
and in any case it could create new possible failure modes.  Simply
returning an empty string seems like the most appropriate fix.

Back-patch to all supported versions, even those before autovacuum, just
in case there's another way to provoke this crash.

13 years agoAvoid sharing subpath list structure when flattening nested AppendRels.
Tom Lane [Thu, 23 Sep 2010 19:34:56 +0000 (15:34 -0400)]
Avoid sharing subpath list structure when flattening nested AppendRels.

In some situations the original coding led to corrupting the child AppendRel's
subpaths list, effectively adding other members of the parent's list to it.
This was usually masked because we never made any further use of the child's
list, but given the right combination of circumstances, we could do so.  The
visible symptom would be a relation getting scanned twice, as in bug #5673
from David Schmitt.

Backpatch to 8.2, which is as far back as the risky coding appears.  The
example submitted by David only fails in 8.4 and later, but I'm not convinced
that there aren't any even-more-obscure cases where 8.2 and 8.3 would fail.

13 years agoMake _outPathInfo print the relid set of the path's parent rel.
Tom Lane [Thu, 23 Sep 2010 19:16:49 +0000 (15:16 -0400)]
Make _outPathInfo print the relid set of the path's parent rel.

We can't actually print the parent RelOptInfo in toto, because that would
lead to infinite recursion.  But it's safe enough to reach into the parent
and print its identifying relids, and that makes it a whole lot easier
to figure out what a Path represents.  Should have done this years ago.

13 years agoInitialize tableoid field correctly when dumping foreign data wrappers and
Heikki Linnakangas [Thu, 23 Sep 2010 11:49:00 +0000 (14:49 +0300)]
Initialize tableoid field correctly when dumping foreign data wrappers and
servers. AFAICT it's harmless at the moment because nothing can depend on
either, but as soon as we introduce an object type with such dependencies,
tableoid needs to be set or pg_dump will fail to interpret the dependencies
correctly. In theory, I guess the uninitialized garbage in tableoid could
cause the object to be mistaken for some other object with same OID as well.

13 years agoRe-allow input of Julian dates prior to 0001-01-01 AD.
Tom Lane [Thu, 23 Sep 2010 03:48:07 +0000 (23:48 -0400)]
Re-allow input of Julian dates prior to 0001-01-01 AD.

This was unintentionally broken in 8.4 while tightening up checking of
ordinary non-Julian date inputs to forbid references to "year zero".
Per bug #5672 from Benjamin Gigot.

13 years agoMore fixes for libpq's .gitignore file.
Tom Lane [Thu, 23 Sep 2010 06:32:03 +0000 (02:32 -0400)]
More fixes for libpq's .gitignore file.

The previous patches failed to cover a lot of symlinks that are only
added in platform-specific cases.  Make the lists match what's in the
Makefile for each branch.

13 years agoFix inconsistent capitalization of "PL/pgSQL".
Robert Haas [Thu, 23 Sep 2010 01:57:37 +0000 (21:57 -0400)]
Fix inconsistent capitalization of "PL/pgSQL".

Josh Kupershmidt

13 years agoDo some copy-editing on the Git usage docs.
Tom Lane [Thu, 23 Sep 2010 00:22:26 +0000 (20:22 -0400)]
Do some copy-editing on the Git usage docs.