]> granicus.if.org Git - postgresql/log
postgresql
13 years agoFix copy-pasto in description of pg_serial, and silence compiler warning
Heikki Linnakangas [Tue, 8 Feb 2011 07:03:08 +0000 (09:03 +0200)]
Fix copy-pasto in description of pg_serial, and silence compiler warning
about uninitialized field you get on some compilers.

13 years agoAvoid having autovacuum workers wait for relation locks.
Robert Haas [Tue, 8 Feb 2011 03:04:29 +0000 (22:04 -0500)]
Avoid having autovacuum workers wait for relation locks.

Waiting for relation locks can lead to starvation - it pins down an
autovacuum worker for as long as the lock is held.  But if we're doing
an anti-wraparound vacuum, then we still wait; maintenance can no longer
be put off.

To assist with troubleshooting, if log_autovacuum_min_duration >= 0,
we log whenever an autovacuum or autoanalyze is skipped for this reason.

Per a gripe by Josh Berkus, and ensuing discussion.

13 years agoOops, forgot to bump catversion in the Serializable Snapshot Isolation patch.
Heikki Linnakangas [Mon, 7 Feb 2011 22:24:23 +0000 (00:24 +0200)]
Oops, forgot to bump catversion in the Serializable Snapshot Isolation patch.

I thought we didn't need that, but then I remembered that it added a new
SLRU subdirectory, pg_serial. While we're at it, document what pg_serial is.

13 years agoImplement genuine serializable isolation level.
Heikki Linnakangas [Mon, 7 Feb 2011 21:46:51 +0000 (23:46 +0200)]
Implement genuine serializable isolation level.

Until now, our Serializable mode has in fact been what's called Snapshot
Isolation, which allows some anomalies that could not occur in any
serialized ordering of the transactions. This patch fixes that using a
method called Serializable Snapshot Isolation, based on research papers by
Michael J. Cahill (see README-SSI for full references). In Serializable
Snapshot Isolation, transactions run like they do in Snapshot Isolation,
but a predicate lock manager observes the reads and writes performed and
aborts transactions if it detects that an anomaly might occur. This method
produces some false positives, ie. it sometimes aborts transactions even
though there is no anomaly.

To track reads we implement predicate locking, see storage/lmgr/predicate.c.
Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared
memory is finite, so when a transaction takes many tuple-level locks on a
page, the locks are promoted to a single page-level lock, and further to a
single relation level lock if necessary. To lock key values with no matching
tuple, a sequential scan always takes a relation-level lock, and an index
scan acquires a page-level lock that covers the search key, whether or not
there are any matching keys at the moment.

A predicate lock doesn't conflict with any regular locks or with another
predicate locks in the normal sense. They're only used by the predicate lock
manager to detect the danger of anomalies. Only serializable transactions
participate in predicate locking, so there should be no extra overhead for
for other transactions.

Predicate locks can't be released at commit, but must be remembered until
all the transactions that overlapped with it have completed. That means that
we need to remember an unbounded amount of predicate locks, so we apply a
lossy but conservative method of tracking locks for committed transactions.
If we run short of shared memory, we overflow to a new "pg_serial" SLRU
pool.

We don't currently allow Serializable transactions in Hot Standby mode.
That would be hard, because even read-only transactions can cause anomalies
that wouldn't otherwise occur.

Serializable isolation mode now means the new fully serializable level.
Repeatable Read gives you the old Snapshot Isolation level that we have
always had.

Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and
Anssi Kääriäinen

13 years agoFix a comment for MergeAttributes.
Itagaki Takahiro [Mon, 7 Feb 2011 07:51:39 +0000 (16:51 +0900)]
Fix a comment for MergeAttributes.
We forgot to adjust it when we changed relistemp to relpersistence.

13 years agoSupply now required HeUTF8 macro for plperl where it's missing, per buildfarm results.
Andrew Dunstan [Mon, 7 Feb 2011 02:36:56 +0000 (21:36 -0500)]
Supply now required HeUTF8 macro for plperl where it's missing, per buildfarm results.

13 years agoFix error messages for FreeFile in COPY command.
Itagaki Takahiro [Mon, 7 Feb 2011 01:46:56 +0000 (10:46 +0900)]
Fix error messages for FreeFile in COPY command.
They are extracted from COPY API patch.

suggested by Noah Misch

13 years agoremove tags.
Bruce Momjian [Sun, 6 Feb 2011 23:32:27 +0000 (18:32 -0500)]
remove tags.

13 years agoForce strings passed to and from plperl to be in UTF8 encoding.
Andrew Dunstan [Sun, 6 Feb 2011 22:29:26 +0000 (17:29 -0500)]
Force strings passed to and from plperl to be in UTF8 encoding.

String are converted to UTF8 on the way into perl and to the
database encoding on the way back. This avoids a number of
observed anomalies, and ensures Perl a consistent view of the
world.

Some minor code cleanups are also accomplished.

Alex Hunsaker, reviewed by Andy Colson.

13 years agoAdjust libpq docs to be clearer about 'hostaddr' usage by rewording and
Bruce Momjian [Sun, 6 Feb 2011 17:04:42 +0000 (12:04 -0500)]
Adjust libpq docs to be clearer about 'hostaddr' usage by rewording and
using an itemized list.

13 years agoRename macro DECIMAL to DECIMAL_T to help pgindent; this is already
Bruce Momjian [Sun, 6 Feb 2011 15:46:15 +0000 (10:46 -0500)]
Rename macro DECIMAL to DECIMAL_T to help pgindent;  this is already
done for a few other macros in that file, for other reasons.  I also
remove pgindent/README mention of the file.

13 years agoIDENTIFY_SYSTEM now returns 3 fields, not 2
Magnus Hagander [Sun, 6 Feb 2011 06:46:14 +0000 (07:46 +0100)]
IDENTIFY_SYSTEM now returns 3 fields, not 2

13 years agoTighten ALTER FOREIGN TABLE .. SET DATA TYPE checks.
Robert Haas [Sun, 6 Feb 2011 05:26:27 +0000 (00:26 -0500)]
Tighten ALTER FOREIGN TABLE .. SET DATA TYPE checks.

If the foreign table's rowtype is being used as the type of a column in
another table, we can't just up and change its data type.  This was
already checked for composite types and ordinary tables, but we
previously failed to enforce it for foreign tables.

13 years agoAdd C comment about why older compilers complain about basebackup.c's
Bruce Momjian [Sat, 5 Feb 2011 04:27:45 +0000 (23:27 -0500)]
Add C comment about why older compilers complain about basebackup.c's
longjump.

13 years agoAttempt to unbreak MSVC builds after pipe.c move.
Andrew Dunstan [Sat, 5 Feb 2011 01:49:39 +0000 (20:49 -0500)]
Attempt to unbreak MSVC builds after pipe.c move.

13 years agoAdd doc comment that installation.sgml can't use xrefs.
Bruce Momjian [Fri, 4 Feb 2011 22:30:22 +0000 (17:30 -0500)]
Add doc comment that installation.sgml can't use xrefs.

13 years agoClarify comment in ATRewriteTable().
Robert Haas [Fri, 4 Feb 2011 21:14:54 +0000 (16:14 -0500)]
Clarify comment in ATRewriteTable().

Make sure it's clear that the prohibition on adding a column with a default
when the rowtype is used elsewhere is intentional, and be a bit more
explicit about the other cases where we perform this check.

13 years agoMove pipe.c into the backend.
Robert Haas [Fri, 4 Feb 2011 20:52:21 +0000 (15:52 -0500)]
Move pipe.c into the backend.

It's full of backend-specific error reporting, so it's neither possible
nor necessary for this to be used from frontend code.

13 years agoIn docs, move PQrequestCancel() deprecation mention up to match other
Bruce Momjian [Fri, 4 Feb 2011 19:23:01 +0000 (14:23 -0500)]
In docs, move PQrequestCancel() deprecation mention up to match other
libpq doc mentions.

13 years agoAvoid including postgres.h in frontend compiles of src/port.
Robert Haas [Fri, 4 Feb 2011 18:11:53 +0000 (13:11 -0500)]
Avoid including postgres.h in frontend compiles of src/port.

This isn't kosher, and doesn't play nicely with my recent changes to the
Makefile in this directory.

13 years agoUpdate ALTER TABLE docs to mention using VACUUM FULL for rewrites.
Robert Haas [Fri, 4 Feb 2011 18:08:56 +0000 (13:08 -0500)]
Update ALTER TABLE docs to mention using VACUUM FULL for rewrites.

Remove the claim that ALTER TABLE .. SET DATA TYPE is the fastest way of
rewriting a table, since it no longer is.

Noah Misch and Robert Haas, based on a suggestion from Tom Lane.

13 years agoUse $(MAKE) rather than make.
Robert Haas [Fri, 4 Feb 2011 14:48:32 +0000 (09:48 -0500)]
Use $(MAKE) rather than make.

Per buildfarm.

13 years agoMake handling of errcodes.h more consistent with other generated headers.
Robert Haas [Fri, 4 Feb 2011 14:28:06 +0000 (09:28 -0500)]
Make handling of errcodes.h more consistent with other generated headers.

This fixes make distprep, and seems more robust in other ways as well.
Some special handling is required because errcodes.txt is needed by
some stuff in src/port, but just by src/backend as is the case for the
other generated headers.

While I'm at it, fix a few other things that were overlooked in the
original patch.

13 years agoAttempt to un-break the documentation build again
Magnus Hagander [Fri, 4 Feb 2011 14:23:34 +0000 (15:23 +0100)]
Attempt to un-break the documentation build again

Another case of <xref linkend> in the documentation that
builds INSTALL, which is not allowed.

13 years agoUnbreak 'configure' followed immediately by 'make install'.
Robert Haas [Fri, 4 Feb 2011 12:03:19 +0000 (07:03 -0500)]
Unbreak 'configure' followed immediately by 'make install'.

More fallout from ddfe26f6441c24660595c5efe5fd0bd3974cdc5c.

Report by Fujii Masao.

13 years agoUse single quotes when there are backslashes in the filename
Magnus Hagander [Fri, 4 Feb 2011 09:52:25 +0000 (10:52 +0100)]
Use single quotes when there are backslashes in the filename

In the hope of unbreaking the buildfarm

13 years agoUnbreak the VPATH build.
Robert Haas [Fri, 4 Feb 2011 05:07:08 +0000 (00:07 -0500)]
Unbreak the VPATH build.

My commit ddfe26f6441c24660595c5efe5fd0bd3974cdc5c of 2010-02-03 broke it.

Per buildfarm.

13 years agoPreserve copyright notice from old errcodes.h file.
Robert Haas [Fri, 4 Feb 2011 03:38:02 +0000 (22:38 -0500)]
Preserve copyright notice from old errcodes.h file.

13 years agoAvoid maintaining three separate copies of the error codes list.
Robert Haas [Fri, 4 Feb 2011 03:32:49 +0000 (22:32 -0500)]
Avoid maintaining three separate copies of the error codes list.

src/pl/plpgsql/src/plerrcodes.h, src/include/utils/errcodes.h, and a
big chunk of errcodes.sgml are now automatically generated from a single
file, src/backend/utils/errcodes.txt.

Jan Urbański, reviewed by Tom Lane.

13 years agoALTER TABLE sometimes takes only ShareUpdateExclusiveLock.
Robert Haas [Thu, 3 Feb 2011 20:14:27 +0000 (15:14 -0500)]
ALTER TABLE sometimes takes only ShareUpdateExclusiveLock.

Along the way, be more consistent about the wording we use here.

13 years agoIn docs, PL is Procedural Language, not Programming Language.
Bruce Momjian [Thu, 3 Feb 2011 16:54:07 +0000 (11:54 -0500)]
In docs, PL is Procedural Language, not Programming Language.

Satoshi Nagayasu

13 years agoSimplify code used in is_absolute_path() macro; also add comment about
Bruce Momjian [Thu, 3 Feb 2011 15:46:31 +0000 (10:46 -0500)]
Simplify code used in is_absolute_path() macro;  also add comment about
'E:abc' Win32 path handling.

13 years agoInclude more status information in walsender results
Magnus Hagander [Thu, 3 Feb 2011 12:46:23 +0000 (13:46 +0100)]
Include more status information in walsender results

Add the current xlog insert location to the response of
IDENTIFY_SYSTEM, and adds result sets containing start
and stop location of backups to BASE_BACKUP responses.

13 years agoFix typo.
Magnus Hagander [Thu, 3 Feb 2011 10:24:47 +0000 (11:24 +0100)]
Fix typo.

Thom Brown

13 years agoFurther sepgsql documentation cleanup.
Robert Haas [Thu, 3 Feb 2011 05:23:44 +0000 (00:23 -0500)]
Further sepgsql documentation cleanup.

13 years agosepgsql doc fix
Robert Haas [Thu, 3 Feb 2011 04:47:45 +0000 (23:47 -0500)]
sepgsql doc fix

KaiGai Kohei

13 years agoMinor sepgsql regression test fixes.
Robert Haas [Thu, 3 Feb 2011 04:46:51 +0000 (23:46 -0500)]
Minor sepgsql regression test fixes.

13 years agoVarious sepgsql corrections.
Robert Haas [Thu, 3 Feb 2011 04:39:43 +0000 (23:39 -0500)]
Various sepgsql corrections.

KaiGai Kohei

13 years agoRename function to first_path_var_separator() to clarify it works with
Bruce Momjian [Thu, 3 Feb 2011 03:49:54 +0000 (22:49 -0500)]
Rename function to first_path_var_separator() to clarify it works with
path variables, not directory paths.

13 years agoClearify macro IS_PATH_VAR_SEP in path.c so it is clear this is a path
Bruce Momjian [Thu, 3 Feb 2011 03:28:14 +0000 (22:28 -0500)]
Clearify macro IS_PATH_VAR_SEP in path.c so it is clear this is a path
variable, not a directory path.

13 years agoLog restartpoints in the same fashion as checkpoints.
Robert Haas [Thu, 3 Feb 2011 02:08:53 +0000 (21:08 -0500)]
Log restartpoints in the same fashion as checkpoints.

Prior to 9.0, restartpoints never created, deleted, or recycled WAL
files, but now they can.  This code makes log_checkpoints treat
checkpoints and restartpoints symmetrically.  It also adjusts up
the documentation of the parameter to mention restartpoints.

Fujii Masao.  Docs by me, as suggested by Itagaki Takahiro.

13 years agoRepair multiple breakage in Windows-specific code for appending '.exe'.
Tom Lane [Thu, 3 Feb 2011 01:26:43 +0000 (20:26 -0500)]
Repair multiple breakage in Windows-specific code for appending '.exe'.

13 years agoClean up missed change to plpython expected files.
Tom Lane [Thu, 3 Feb 2011 01:16:27 +0000 (20:16 -0500)]
Clean up missed change to plpython expected files.

13 years agoMark all GUC variables with <varname> markup, rather than <literal>.
Bruce Momjian [Wed, 2 Feb 2011 23:06:38 +0000 (18:06 -0500)]
Mark all GUC variables with <varname> markup, rather than <literal>.

13 years agoFix wrong verb in pg_upgrade text message, per Haas.
Bruce Momjian [Wed, 2 Feb 2011 21:53:12 +0000 (16:53 -0500)]
Fix wrong verb in pg_upgrade text message, per Haas.

13 years agoSimplify pg_upgrade checking of executable permissions.
Bruce Momjian [Wed, 2 Feb 2011 20:40:20 +0000 (15:40 -0500)]
Simplify pg_upgrade checking of executable permissions.

13 years agoWrap PL/Python SPI calls into subtransactions
Peter Eisentraut [Wed, 2 Feb 2011 20:06:10 +0000 (22:06 +0200)]
Wrap PL/Python SPI calls into subtransactions

This allows the language-specific try/catch construct to catch and
handle exceptions arising from SPI calls, matching the behavior of
other PLs.

As an additional bonus you no longer get all the ugly "unrecognized
error in PLy_spi_execute_query" errors.

Jan Urbański, reviewed by Steve Singer

13 years agoAdd comment on why we're passing a useless 'false' to the plperl function compiler.
Andrew Dunstan [Wed, 2 Feb 2011 17:45:42 +0000 (12:45 -0500)]
Add  comment on why we're passing a useless 'false' to the plperl function compiler.

It's for compatibility with modules like PostgreSQL::PLPerl::NYTProf.

13 years agoDocument that CREATE VIEW that uses "*" for the column list will not
Bruce Momjian [Tue, 1 Feb 2011 22:17:34 +0000 (17:17 -0500)]
Document that CREATE VIEW that uses "*" for the column list will not
auto-add columns later added to the base table.

13 years agoProperly capitalize hyphenated words in documentation titles.
Bruce Momjian [Tue, 1 Feb 2011 22:00:26 +0000 (17:00 -0500)]
Properly capitalize hyphenated words in documentation titles.

13 years agoClarify documentation to state that "zero_damaged_pages" does not force
Bruce Momjian [Tue, 1 Feb 2011 21:43:51 +0000 (16:43 -0500)]
Clarify documentation to state that "zero_damaged_pages" does not force
data to disk, so the table or index should be recreated before the
parameter is turned off again.

13 years agoAdd validator to PL/Python
Peter Eisentraut [Tue, 1 Feb 2011 20:53:40 +0000 (22:53 +0200)]
Add validator to PL/Python

Jan Urbański, reviewed by Hitoshi Harada

13 years agoDocument that effective cache size does not assume data remains in the
Bruce Momjian [Tue, 1 Feb 2011 20:23:35 +0000 (15:23 -0500)]
Document that effective cache size does not assume data remains in the
cache between queries.

13 years agoDocument that Slony can do upgrades easier _because_ it supports
Bruce Momjian [Tue, 1 Feb 2011 20:21:22 +0000 (15:21 -0500)]
Document that Slony can do upgrades easier _because_ it supports
replication between different Postgres major versions.

13 years agoClarify pg_upgrade install instructions, per suggestion from Robert Haas.
Bruce Momjian [Tue, 1 Feb 2011 18:57:43 +0000 (13:57 -0500)]
Clarify pg_upgrade install instructions, per suggestion from Robert Haas.

13 years agoAdd missing period "." in pg_upgrade documentation.
Bruce Momjian [Tue, 1 Feb 2011 18:53:04 +0000 (13:53 -0500)]
Add missing period "." in pg_upgrade documentation.

13 years agoAdd pg_upgrade comment for why we can't use template1 inheritance for
Bruce Momjian [Tue, 1 Feb 2011 17:22:34 +0000 (12:22 -0500)]
Add pg_upgrade comment for why we can't use template1 inheritance for
the support functions.

13 years agoSet up PLPerl trigger data using C code instead of Perl code.
Andrew Dunstan [Tue, 1 Feb 2011 14:43:25 +0000 (09:43 -0500)]
Set up PLPerl trigger data using C code instead of Perl code.

This is an efficiency change, and means we now no longer have to run
"out $_TD; local $_TD = shift;", which was especially pointless in the case of
non-trigger functions where the passed value was always undef anyway.

A tiny open issue is whether we should get rid of the $prolog argument of
mkfunc, and the corresponding pushed value, which is now just a constant "false".

Tim Bunce, reviewed by Alex Hunsaker.

13 years agoUndefine setlocale() macro on Win32
Magnus Hagander [Tue, 1 Feb 2011 12:19:18 +0000 (13:19 +0100)]
Undefine setlocale() macro on Win32

New versions of libintl redefine setlocale() to a macro
which causes problems when the backend and libintl are
linked against different versions of the runtime, which
is often the case in msvc builds.

Hiroshi Inoue, slightly updated comment by me

13 years agoRe-classify ERRCODE_DATABASE_DROPPED to 57P04
Simon Riggs [Tue, 1 Feb 2011 08:44:01 +0000 (08:44 +0000)]
Re-classify ERRCODE_DATABASE_DROPPED to 57P04

13 years agoFix wrong error reports in 'number of array dimensions exceeds the
Itagaki Takahiro [Tue, 1 Feb 2011 06:21:32 +0000 (15:21 +0900)]
Fix wrong error reports in 'number of array dimensions exceeds the
maximum allowed' messages, that have reported one-less dimensions.

Alexey Klyukin

13 years agoAdd a link from client_encoding parameter to the list of character sets
Itagaki Takahiro [Tue, 1 Feb 2011 05:26:17 +0000 (14:26 +0900)]
Add a link from client_encoding parameter to the list of character sets
in documentation.

Thom Brown

13 years agoImprove docs for pg_authid encryption description with better markup and
Bruce Momjian [Tue, 1 Feb 2011 03:53:58 +0000 (22:53 -0500)]
Improve docs for pg_authid encryption description with better markup and
a mention of unencrypted passwords.

13 years agoIn pg_authid.rolpassword docs, make "md5" appear as a literal.
Bruce Momjian [Tue, 1 Feb 2011 03:28:42 +0000 (22:28 -0500)]
In pg_authid.rolpassword docs, make "md5" appear as a literal.

13 years agoSupport LIKE and ILIKE index searches via contrib/pg_trgm indexes.
Tom Lane [Tue, 1 Feb 2011 02:33:55 +0000 (21:33 -0500)]
Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.

Unlike Btree-based LIKE optimization, this works for non-left-anchored
search patterns.  The effectiveness of the search depends on how many
trigrams can be extracted from the pattern.  (The worst case, with no
trigrams, degrades to a full-table scan, so this isn't a panacea.  But
it can be very useful.)

Alexander Korotkov, reviewed by Jan Urbanski

13 years agoFix pg_upgrade to create pg_authid restore functions in the 'postgres'
Bruce Momjian [Tue, 1 Feb 2011 01:15:43 +0000 (20:15 -0500)]
Fix pg_upgrade to create pg_authid restore functions in the 'postgres'
database, not in the os-user database, per report from Magnus.

13 years agoCreate new errcode for recovery conflict caused by db drop on master.
Simon Riggs [Tue, 1 Feb 2011 00:20:53 +0000 (00:20 +0000)]
Create new errcode for recovery conflict caused by db drop on master.
Previously reported as ERRCODE_ADMIN_SHUTDOWN, this case is now
reported as ERRCODE_T_R_DATABASE_DROPPED. No message text change.
Unlikely to happen on most servers, so low impact change to allow
session poolers to correctly handle this situation.

Tatsuo Ishii, edits by me, review by Robert Haas

13 years agoRemove spurious word, spotted by Thom Brown.
Heikki Linnakangas [Mon, 31 Jan 2011 20:51:51 +0000 (22:51 +0200)]
Remove spurious word, spotted by Thom Brown.

13 years agoUpdate pg_upgrade docs to mention its use in a less risk-warning way,
Bruce Momjian [Mon, 31 Jan 2011 20:21:51 +0000 (15:21 -0500)]
Update pg_upgrade docs to mention its use in a less risk-warning way,
and update the pg_upgrade docs to mention its reliance on no changes to
the storage format (the later based on Robert Haas's patch).

13 years agoFix SGML markup for upgrade doc addition.
Bruce Momjian [Mon, 31 Jan 2011 19:58:49 +0000 (14:58 -0500)]
Fix SGML markup for upgrade doc addition.

13 years agoFix error code for canceling statement due to conflict with recovery.
Simon Riggs [Mon, 31 Jan 2011 19:20:23 +0000 (19:20 +0000)]
Fix error code for canceling statement due to conflict with recovery.
All retryable conflict errors now have an error code that indicates that
a retry is possible, correcting my incomplete fix of 2010/05/12

Tatsuo Ishii and Simon Riggs, input from Robert Haas and Florian Pflug

13 years agoUpdate docs on building for Windows to accomodate current reality.
Andrew Dunstan [Mon, 31 Jan 2011 18:40:45 +0000 (13:40 -0500)]
Update docs on building for Windows to accomodate current reality.

Document how to build 64 bit Windows binaries using the MinGW64 tool set.
Remove recommendation against using Mingw as a build platform.
Be more specific about when Cygwin is useful and when it's not,  in
particular note its usefulness for running psql, and
add a note about building on Cygwin in non-C locales.

Per recent discussions.

13 years agoMove upgrade instructions into its own section under "Server Setup and
Bruce Momjian [Mon, 31 Jan 2011 17:32:03 +0000 (12:32 -0500)]
Move upgrade instructions into its own section under "Server Setup and
Operation", merged from upgrade sections in "Installation from Source
Code" and "Backup and Restore".  This now gives a single place for all
upgrade information.

13 years agoFix typo
Heikki Linnakangas [Mon, 31 Jan 2011 16:29:38 +0000 (18:29 +0200)]
Fix typo

13 years agoSupport multiple concurrent pg_basebackup backups.
Heikki Linnakangas [Mon, 31 Jan 2011 16:13:01 +0000 (18:13 +0200)]
Support multiple concurrent pg_basebackup backups.

With this patch, pg_basebackup doesn't write a backup_label file in the
data directory, so it doesn't interfere with a pg_start/stop_backup() based
backup anymore. backup_label is still included in the backup, but it is
injected directly into the tar stream.

Heikki Linnakangas, reviewed by Fujii Masao and Magnus Hagander.

13 years agoFix typo
Andrew Dunstan [Mon, 31 Jan 2011 01:34:05 +0000 (20:34 -0500)]
Fix typo

13 years agoEnable building with the Mingw64 compiler.
Andrew Dunstan [Mon, 31 Jan 2011 00:56:46 +0000 (19:56 -0500)]
Enable building with the Mingw64 compiler.

This can be used to build 64 bit Windows binaries, not only on 64 bit
Windows but on supported cross-compiling hosts including 32 bit Windows,
Cygwin, Darwin and Linux.

13 years agoMake reduce_outer_joins() smarter about semijoins.
Tom Lane [Sun, 30 Jan 2011 22:04:31 +0000 (17:04 -0500)]
Make reduce_outer_joins() smarter about semijoins.

reduce_outer_joins() mistakenly treated a semijoin like a left join for
purposes of deciding whether not-null constraints created by the join's
quals could be passed down into the join's left-hand side (possibly
resulting in outer-join simplification there).  Actually, semijoin works
like inner join for this purpose, ie, we do not need to see any rows that
can't possibly satisfy the quals.  Hence, two-line fix to treat semi and
inner joins alike.  Per observation by Andres Freund about a performance
gripe from Yazan Suleiman.

Back-patch to 8.4, since this oversight has been there since the current
handling of semijoins was implemented.

13 years agoAdd option to include WAL in base backup
Magnus Hagander [Sun, 30 Jan 2011 20:30:09 +0000 (21:30 +0100)]
Add option to include WAL in base backup

When included, this makes the base backup a complete working
"clone" of the initial database, ready to have a postmaster
started against it without the need to set up any log archiving
or similar.

Magnus Hagander, reviewed by Fujii Masao and Heikki Linnakangas

13 years agoProperly capitalize documentation headings; some only had initial-word
Bruce Momjian [Sat, 29 Jan 2011 18:00:18 +0000 (13:00 -0500)]
Properly capitalize documentation headings;  some only had initial-word
capitalization.

13 years agoMake installation.sgml build standalone again.
Tom Lane [Sat, 29 Jan 2011 17:51:44 +0000 (12:51 -0500)]
Make installation.sgml build standalone again.

We must not try to link to sections that aren't part of the standalone
"make INSTALL" build.  Corrects build failure introduced in commit
159e3d86292cfec2a2828f9f69ac7a6cb1be242d.

13 years agoUse GSSAPI library for SSPI auth, when native SSPI is not available
Magnus Hagander [Sat, 29 Jan 2011 16:06:55 +0000 (17:06 +0100)]
Use GSSAPI library for SSPI auth, when native SSPI is not available

This allows non-Windows clients to connect to a Windows
server with SSPI authentication.

Christian Ullrich, largely modified by me

13 years agoTry to avoid running with a full fsync request queue.
Robert Haas [Sat, 29 Jan 2011 13:08:41 +0000 (08:08 -0500)]
Try to avoid running with a full fsync request queue.

When we need to insert a new entry and the queue is full, compact the
entire queue in the hopes of making room for the new entry.  Doing this
on every insertion might worsen contention on BgWriterCommLock, but
when the queue it's full, it's far better than allowing the backend to
perform its own fsync, per testing by Greg Smith as reported in
http://archives.postgresql.org/pgsql-hackers/2011-01/msg02665.php

Original idea from Greg Smith.  Patch by me.  Review by Chris Browne
and Greg Smith

13 years agoCopy-edit a paragraph in the contrib/seg documentation.
Tom Lane [Fri, 28 Jan 2011 19:34:42 +0000 (14:34 -0500)]
Copy-edit a paragraph in the contrib/seg documentation.

Although this improves the style, an ulterior motive is to keep the two
table links from breaking across lines in PDF output, per complaint from
Josh Kupershmidt.

13 years agoRephrase pg_conversion description to avoid splitting link across page.
Tom Lane [Thu, 27 Jan 2011 23:42:12 +0000 (18:42 -0500)]
Rephrase pg_conversion description to avoid splitting link across page.

The link to the CREATE CONVERSION manual page was split across a page
boundary in the PDF output, leading to "\pdfendlink ended up in different
nesting level than \pdfstartlink" error while building PDFs.

It wouldn't be worth changing text that's undergoing active editing to
avoid this, since other editing might result in moving the link away from
the page end anyway.  But this paragraph has been static for a long time,
so might as well fix it to prevent it from being an issue in future.

13 years agoUpdate release notes.
Tom Lane [Thu, 27 Jan 2011 22:45:37 +0000 (17:45 -0500)]
Update release notes.

Security: CVE-2010-4015

13 years agoPrevent buffer overrun while parsing an integer in a "query_int" value.
Tom Lane [Thu, 27 Jan 2011 22:41:41 +0000 (17:41 -0500)]
Prevent buffer overrun while parsing an integer in a "query_int" value.

contrib/intarray's gettoken() uses a fixed-size buffer to collect an
integer's digits, and did not guard against overrunning the buffer.
This is at least a backend crash risk, and in principle might allow
arbitrary code execution.  The code didn't check for overflow of the
integer value either, which while not presenting a crash risk was still
bad.

Thanks to Apple Inc's security team for reporting this issue and supplying
the fix.

Security: CVE-2010-4015

13 years agoDon't include <asm/ia64regs.h> unnecessarily.
Tom Lane [Thu, 27 Jan 2011 21:27:27 +0000 (16:27 -0500)]
Don't include <asm/ia64regs.h> unnecessarily.

We only need that header when compiling with icc, since the gcc variant of
ia64_get_bsp() uses in-line assembly code.  Per report from Frank Brendel,
the header doesn't exist on all IA64 platforms; so don't include it unless
we need it.

13 years agoUpdate release notes for releases 9.0.3, 8.4.7, 8.3.14, and 8.2.20.
Tom Lane [Thu, 27 Jan 2011 21:09:39 +0000 (16:09 -0500)]
Update release notes for releases 9.0.3, 8.4.7, 8.3.14, and 8.2.20.

13 years agoUpdate psql's \copyright to match the text we have in the COPYRIGHT file.
Heikki Linnakangas [Thu, 27 Jan 2011 18:20:08 +0000 (20:20 +0200)]
Update psql's \copyright to match the text we have in the COPYRIGHT file.

13 years agoImprove grammar and spelling in durability discussion.
Tom Lane [Thu, 27 Jan 2011 17:48:57 +0000 (12:48 -0500)]
Improve grammar and spelling in durability discussion.

13 years agoUpdate non-durable docs about non-synchronous-commit allowing
Bruce Momjian [Thu, 27 Jan 2011 17:06:26 +0000 (12:06 -0500)]
Update non-durable docs about non-synchronous-commit allowing
transaction loss for a _database_ crash.

13 years agoRestore ALTER TABLE .. ADD COLUMN w/DEFAULT restriction.
Robert Haas [Thu, 27 Jan 2011 13:35:34 +0000 (08:35 -0500)]
Restore ALTER TABLE .. ADD COLUMN w/DEFAULT restriction.

This reverts commit a06e41deebdf74b8b5109329dc75b2e9d9057962 of 2011-01-26.
Per discussion, this behavior is not wanted, as it would need to change if
we ever made composite types support DEFAULT.

13 years agoRestructure streaming docs so streaming seems more integrated in the
Bruce Momjian [Thu, 27 Jan 2011 00:54:41 +0000 (19:54 -0500)]
Restructure streaming docs so streaming seems more integrated in the
paragraphs, per suggestion from Dan Birken.

13 years agoChange inv_truncate() to not repeat its systable_getnext_ordered() scan.
Tom Lane [Thu, 27 Jan 2011 00:33:50 +0000 (19:33 -0500)]
Change inv_truncate() to not repeat its systable_getnext_ordered() scan.

In the case where the initial call of systable_getnext_ordered() returned
NULL, this function would nonetheless call it again.  That's undefined
behavior that only by chance failed to not give visibly incorrect results.
Put an if-test around the final loop to prevent that, and in passing
improve some comments.  No back-patch since there's no actual failure.

Per report from YAMAMOTO Takashi.

13 years agoUse -Wformat-security when available
Peter Eisentraut [Wed, 26 Jan 2011 23:23:48 +0000 (01:23 +0200)]
Use -Wformat-security when available

13 years agoautoreconf
Peter Eisentraut [Wed, 26 Jan 2011 23:03:55 +0000 (01:03 +0200)]
autoreconf

Synchronize pg_config.h.in with configure.in (someone must have
forgotten to run autoheader or autoreconf), and clean up some spurious
change in configure introduced by the last commit there.

13 years agoDo not prefix error messages with the string "PL/Python: "
Peter Eisentraut [Wed, 26 Jan 2011 23:00:58 +0000 (01:00 +0200)]
Do not prefix error messages with the string "PL/Python: "

It is redundant, given the error context.

Jan Urbański

13 years agoImprove exception usage in PL/Python
Peter Eisentraut [Wed, 26 Jan 2011 22:47:14 +0000 (00:47 +0200)]
Improve exception usage in PL/Python

Use the built-in TypeError, not SPIError, for errors having to do with
argument counts or types.  Use SPIError, not simply plpy.Error, for
errors in PLy_spi_execute_plan.  Finally, do not set a Python
exception if PyArg_ParseTuple failed, as it already sets the correct
exception.

Jan Urbański

13 years agoAlso save the error detail in SPIError
Peter Eisentraut [Wed, 26 Jan 2011 22:35:28 +0000 (00:35 +0200)]
Also save the error detail in SPIError

The temporarily broken plpython_unicode test shows a case where this
is used.

Do remaining fix-ups on the expected files at the same time.