PostgreSQL 9.1.0 commit log

Stamp 9.1.0.

commit   : 1f43001424a9da624a89b213d0be606a8212a50a    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 8 Sep 2011 17:13:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 8 Sep 2011 17:13:27 -0400    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32

Translation updates for 9.1.0

commit   : bd6db68f714d8e4609c0b22425590ab632a14812    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 8 Sep 2011 23:10:40 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 8 Sep 2011 23:10:40 +0300    

Click here for diff

M src/backend/nls.mk
M src/backend/po/de.po
M src/backend/po/es.po
M src/backend/po/fr.po
M src/backend/po/pt_BR.po
D src/backend/po/tr.po
M src/bin/initdb/nls.mk
M src/bin/initdb/po/cs.po
M src/bin/initdb/po/es.po
M src/bin/initdb/po/ja.po
A src/bin/initdb/po/pl.po
M src/bin/initdb/po/pt_BR.po
D src/bin/initdb/po/ta.po
M src/bin/initdb/po/tr.po
M src/bin/pg_basebackup/nls.mk
A src/bin/pg_basebackup/po/cs.po
M src/bin/pg_basebackup/po/es.po
M src/bin/pg_basebackup/po/fr.po
M src/bin/pg_basebackup/po/ja.po
A src/bin/pg_basebackup/po/pl.po
A src/bin/pg_basebackup/po/pt_BR.po
M src/bin/pg_config/nls.mk
A src/bin/pg_config/po/cs.po
M src/bin/pg_config/po/ja.po
A src/bin/pg_config/po/pl.po
M src/bin/pg_config/po/pt_BR.po
M src/bin/pg_controldata/nls.mk
A src/bin/pg_controldata/po/cs.po
M src/bin/pg_controldata/po/ja.po
A src/bin/pg_controldata/po/pl.po
M src/bin/pg_controldata/po/pt_BR.po
D src/bin/pg_controldata/po/sv.po
D src/bin/pg_controldata/po/ta.po
M src/bin/pg_controldata/po/tr.po
M src/bin/pg_ctl/nls.mk
A src/bin/pg_ctl/po/cs.po
M src/bin/pg_ctl/po/es.po
D src/bin/pg_ctl/po/it.po
M src/bin/pg_ctl/po/ja.po
D src/bin/pg_ctl/po/ko.po
A src/bin/pg_ctl/po/pl.po
M src/bin/pg_ctl/po/pt_BR.po
D src/bin/pg_ctl/po/sv.po
D src/bin/pg_ctl/po/ta.po
M src/bin/pg_ctl/po/tr.po
D src/bin/pg_ctl/po/zh_CN.po
M src/bin/pg_dump/nls.mk
A src/bin/pg_dump/po/cs.po
M src/bin/pg_dump/po/de.po
M src/bin/pg_dump/po/es.po
M src/bin/pg_dump/po/fr.po
M src/bin/pg_dump/po/ja.po
A src/bin/pg_dump/po/pl.po
M src/bin/pg_dump/po/pt_BR.po
M src/bin/pg_dump/po/tr.po
M src/bin/pg_resetxlog/nls.mk
A src/bin/pg_resetxlog/po/cs.po
M src/bin/pg_resetxlog/po/ja.po
A src/bin/pg_resetxlog/po/pl.po
M src/bin/pg_resetxlog/po/pt_BR.po
M src/bin/psql/nls.mk
M src/bin/psql/po/cs.po
M src/bin/psql/po/es.po
M src/bin/psql/po/fr.po
M src/bin/psql/po/ja.po
A src/bin/psql/po/pl.po
M src/bin/psql/po/pt_BR.po
D src/bin/psql/po/sv.po
M src/bin/psql/po/tr.po
M src/bin/scripts/nls.mk
M src/bin/scripts/po/cs.po
A src/bin/scripts/po/pl.po
M src/bin/scripts/po/pt_BR.po
M src/interfaces/ecpg/ecpglib/nls.mk
A src/interfaces/ecpg/ecpglib/po/cs.po
A src/interfaces/ecpg/ecpglib/po/pl.po
M src/interfaces/ecpg/ecpglib/po/pt_BR.po
M src/interfaces/ecpg/preproc/nls.mk
A src/interfaces/ecpg/preproc/po/cs.po
A src/interfaces/ecpg/preproc/po/pl.po
M src/interfaces/ecpg/preproc/po/pt_BR.po
M src/interfaces/libpq/nls.mk
M src/interfaces/libpq/po/cs.po
M src/interfaces/libpq/po/es.po
M src/interfaces/libpq/po/fr.po
A src/interfaces/libpq/po/pl.po
M src/interfaces/libpq/po/pt_BR.po
D src/interfaces/libpq/po/ta.po
M src/interfaces/libpq/po/tr.po
M src/pl/plperl/nls.mk
A src/pl/plperl/po/cs.po
M src/pl/plperl/po/es.po
D src/pl/plperl/po/it.po
A src/pl/plperl/po/pl.po
M src/pl/plperl/po/tr.po
M src/pl/plpgsql/src/nls.mk
A src/pl/plpgsql/src/po/cs.po
M src/pl/plpgsql/src/po/es.po
M src/pl/plpgsql/src/po/ja.po
M src/pl/plpgsql/src/po/pl.po
M src/pl/plpgsql/src/po/pt_BR.po
A src/pl/plpgsql/src/po/tr.po
M src/pl/plpython/nls.mk
A src/pl/plpython/po/cs.po
M src/pl/plpython/po/es.po
D src/pl/plpython/po/it.po
A src/pl/plpython/po/pl.po
M src/pl/plpython/po/pt_BR.po
M src/pl/tcl/nls.mk
A src/pl/tcl/po/cs.po
A src/pl/tcl/po/pl.po
M src/pl/tcl/po/pt_BR.po

Add missing format argument to ecpg_log() call

commit   : ba7ef09a3bb49e38fda0b872bf85e46421c251d3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 8 Sep 2011 22:09:08 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 8 Sep 2011 22:09:08 +0300    

Click here for diff

M src/interfaces/ecpg/ecpglib/execute.c

One last round of copy-editing for the 9.1 release notes.

commit   : c7d60312fb661cdb212c63924249d623bd9d87c6    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 8 Sep 2011 00:53:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 8 Sep 2011 00:53:11 -0400    

Click here for diff

Also set the documented release date to 2011-09-12.  

M doc/src/sgml/release-9.1.sgml

Fix corner case bug in numeric to_char().

commit   : 5df20a6e4f5eee5eef1b28760ceca604f57d535b    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 17:06:19 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 17:06:19 -0400    

Click here for diff

Trailing-zero stripping applied by the FM specifier could strip zeroes  
to the left of the decimal point, for a format with no digit positions  
after the decimal point (such as "FM999.").  
  
Reported and diagnosed by Marti Raudsepp, though I didn't use his patch.  

M src/backend/utils/adt/formatting.c
M src/test/regress/expected/numeric.out
M src/test/regress/sql/numeric.sql

Allow bcc32 and win32 batch files to compile libpq.

commit   : 60765d86c3a91bf2fdf796ee66672120fd599d02    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 15:43:52 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 15:43:52 -0400    

Click here for diff

Backpatch to 9.1.  
  
By Hiroshi Saito  

M src/interfaces/libpq/bcc32.mak
M src/interfaces/libpq/win32.mak

In pg_upgrade, disallow migration of 8.3 clusters using contrib/ltree because its internal format was changed in 8.4.

commit   : 8cdd62068d2b6913902741f2fbc74d51042c3d3e    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 14:42:36 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 14:42:36 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  
  
Report by depesz, diagnosis by Tom.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/version_old_8_3.c
M doc/src/sgml/pgupgrade.sgml

Fix typo in error message.

commit   : 673dfe9690a54889bdb434321552f227806209fa    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 13:29:26 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 13:29:26 -0400    

Click here for diff

Per Euler Taveira de Oliveira.  

M src/backend/commands/collationcmds.c

Fix get_name_for_var_field() to deal with RECORD Params.

commit   : 90398132417232cb56dcda53a4cb66ed2d579681    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 13:01:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 7 Sep 2011 13:01:15 -0400    

Click here for diff

With 9.1's use of Params to pass down values from NestLoop join nodes  
to their inner plans, it is possible for a Param to have type RECORD, in  
which case the set of fields comprising the value isn't determinable by  
inspection of the Param alone.  However, just as with a Var of type RECORD,  
we can find out what we need to know if we can locate the expression that  
the Param represents.  We already knew how to do this in get_parameter(),  
but I'd overlooked the need to be able to cope in get_name_for_var_field(),  
which led to EXPLAIN failing with "record type has not been registered".  
  
To fix, refactor the search code in get_parameter() so it can be used by  
both functions.  
  
Per report from Marti Raudsepp.  

M src/backend/utils/adt/ruleutils.c

Revert documentation patch about NEW/OLD and triggers.

commit   : d5d94e16011a4fbb52de13a3d1ca326ad0c4ff36    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 09:24:02 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 7 Sep 2011 09:24:02 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  
  
Patch from Josh Kupershmidt.  

M doc/src/sgml/plpgsql.sgml

Properly document the existance of OLD/NEW trigger pl/pgsql trigger fields.

commit   : e4d59f35366964298b0c9d4847f0a7efd3ddf830    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 22:54:18 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 22:54:18 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  
  
Report from Pavel Stehule, patch from Josh Kupershmidt  

M doc/src/sgml/plpgsql.sgml

Fix spelling mistake in pgpass documentation change.

commit   : 6117526b5bf17dc22812ca8aa958a40c8edfc8a2    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 19:42:48 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 19:42:48 -0400    

Click here for diff

Per Peter.  

M doc/src/sgml/libpq.sgml

Add documentation suggestion about adding a comment to the top of pgpass.

commit   : 2b3e86d4756ac5480058e71caaed9fa58a644d35    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 17:32:16 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 17:32:16 -0400    

Click here for diff

Backpatch to 9.1.  

M doc/src/sgml/libpq.sgml

Fix plpgsql "PERFORM" markup.

commit   : 3430ab5986e5d402f7ada7c672a51f679b60c95c    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 15:20:16 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 15:20:16 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  

M doc/src/sgml/plpgsql.sgml

Avoid possibly accessing off the end of memory in SJIS2004 conversion.

commit   : 8b81b99b89de186aeda9baabf4e1b6bd792d54b9    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 14:50:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 14:50:28 -0400    

Click here for diff

The code in shift_jis_20042euc_jis_2004() would fetch two bytes even when  
only one remained in the string.  Since conversion functions aren't  
supposed to assume null-terminated input, this poses a small risk of  
fetching past the end of memory and incurring SIGSEGV.  No such crash has  
been identified in the field, but we've certainly seen the equivalent  
happen in other code paths, so patch this one all the way back.  
  
Report and patch by Noah Misch.  

M src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c

Avoid possibly accessing off the end of memory in examine_attribute().

commit   : 460bfd07b38f6495314c01499fca49f5f4a68a38    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 14:35:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 14:35:27 -0400    

Click here for diff

Since the last couple of columns of pg_type are often NULL,  
sizeof(FormData_pg_type) can be an overestimate of the actual size of the  
tuple data part.  Therefore memcpy'ing that much out of the catalog cache,  
as analyze.c was doing, poses a small risk of copying past the end of  
memory and incurring SIGSEGV.  No such crash has been identified in the  
field, but we've certainly seen the equivalent happen in other code paths,  
so patch this one all the way back.  
  
Per valgrind testing by Noah Misch, though this is not his proposed patch.  
I chose to use SearchSysCacheCopy1 rather than inventing special-purpose  
infrastructure for copying only the minimal part of a pg_type tuple.  

M src/backend/commands/analyze.c

Document PERFORM limitation when using WITH queries.

commit   : 94bf47db8ffc13005d9b14ec3331f6db94a91d46    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 13:41:30 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 13:41:30 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  
  
Report from [email protected].  

M doc/src/sgml/plpgsql.sgml

Add an "incompatibility" entry to 9.1 release notes about CREATE EXTENSION.

commit   : a3850a5f7582ebe328d2506873e31aac2b01d51b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 12:36:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 12:36:40 -0400    

Click here for diff

We've now seen more than one gripe from somebody who didn't get the memo  
about how to install contrib modules in 9.1.  Try to make it a little more  
prominent that you aren't supposed to call the scripts directly anymore.  

M doc/src/sgml/release-9.1.sgml

Update type-conversion documentation for long-ago changes.

commit   : 95a07c1ebe78444177b15cf77b80fbaa8380bb56    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 12:14:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 6 Sep 2011 12:14:51 -0400    

Click here for diff

This example wasn't updated when we changed the behavior of bpcharlen()  
in 8.0, nor when we changed the number of parameters taken by the bpchar()  
cast function in 7.3.  Per report from lsliang.  

M doc/src/sgml/typeconv.sgml

Properly document semphore requirements by accounting for worker processes.

commit   : f85adb65bf2842c258e4c2d2930569e3b702c7d6    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 11:08:34 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 6 Sep 2011 11:08:34 -0400    

Click here for diff

Backpatch to 9.1 and 9.0.  
  
Submitted by Anton Yuzhaninov, confirmed by Robert Haas  

M doc/src/sgml/runtime.sgml

commit   : 0603ba3415f2fa6182248a6b96973224507543d3    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 22:58:13 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 22:58:13 -0400    

Click here for diff

M doc/src/sgml/config.sgml

Adjust translator comment format to xgettext expectations

commit   : 7dc956fee3284170db50c343bad9f52cf767894b    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 5 Sep 2011 18:52:49 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 5 Sep 2011 18:52:49 -0300    

Click here for diff

M src/backend/access/transam/xlog.c
M src/backend/catalog/dependency.c
M src/bin/scripts/common.c

Mark some untranslatable messages with errmsg_internal

commit   : c729082da46c615e663e7c7f996baff1c4c3d560    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 5 Sep 2011 17:47:18 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 5 Sep 2011 17:47:18 -0300    

Click here for diff

M src/backend/access/transam/xlog.c

Add mention that UTC really means UT1.

commit   : 082befb5162920d64ef4c1e905489a625dff2d5a    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 15:38:00 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 15:38:00 -0400    

Click here for diff

Backpatch to 9.1.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/func.sgml

Update time zone data files to tzdata release 2011i.

commit   : 33c371b4f5ac3b3975e57beaf7481f736e53c031    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 5 Sep 2011 14:46:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 5 Sep 2011 14:46:31 -0400    

Click here for diff

DST law changes in Canada, Egypt, Russia, Samoa, South Sudan.  

M src/timezone/data/africa
M src/timezone/data/antarctica
M src/timezone/data/asia
M src/timezone/data/australasia
M src/timezone/data/europe
M src/timezone/data/iso3166.tab
M src/timezone/data/northamerica
M src/timezone/data/southamerica
M src/timezone/data/zone.tab

Document that contrib/pgtrgm only processes ASCII alphanumeric characters.

commit   : 2c62b5bb636f5f13bd25777ee1f4c8e557accecd    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 13:24:46 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 5 Sep 2011 13:24:46 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  

M doc/src/sgml/pgtrgm.sgml

Guard against using plperl's Makefile without specifying --with-perl.

commit   : eed7dcfceedeb314d17695f014754ac0f3e8f892    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 4 Sep 2011 20:07:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 4 Sep 2011 20:07:38 -0400    

Click here for diff

The $(PERL) macro will be set by configure if it finds perl at all,  
but $(perl_privlibexp) isn't configured unless you said --with-perl.  
This results in confusing error messages if someone cd's into  
src/pl/plperl and tries to build there despite the configure omission,  
as reported by Tomas Vondra in bug #6198.  Add simple checks to  
provide a more useful report, while not disabling other use of the  
makefile such as "make clean".  
  
Back-patch to 9.0, which is as far as the patch applies easily.  

M src/pl/plperl/GNUmakefile

Fix #include problems in 9.1 branch.

commit   : 1ae019f04b95771293f9a649c298aaeb0d3155a2    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 4 Sep 2011 19:10:09 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 4 Sep 2011 19:10:09 -0400    

Click here for diff

Remove unnecessary and circular #include of syncrep.h from proc.h.  
Add htup.h to tablecmds.h so it will compile without prerequisites.  

M src/include/commands/tablecmds.h
M src/include/storage/proc.h

Fix typo in pg_srand48 (srand48 in older branches).

commit   : b6cfede8b630db61afa7dd158adde93ba669f429    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 3 Sep 2011 16:17:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 3 Sep 2011 16:17:39 -0400    

Click here for diff

">" should be ">>".  This typo results in failure to use all of the bits  
of the provided seed.  
  
This might rise to the level of a security bug if we were relying on  
srand48 for any security-critical purposes, but we are not --- in fact,  
it's not used at all unless the platform lacks srandom(), which is  
improbable.  Even on such a platform the exposure seems minimal.  
  
Reported privately by Andres Freund.  

M src/port/erand48.c

Fix brace indentation of commit 5ad0e899f08136a00f56bf224a6b9729b2f4c69f to fit PostgreSQL style.

commit   : 7c0e1a28ac4596e9ea4d942f213114bd70026d6a    
  
author   : Michael Meskes <[email protected]>    
date     : Fri, 2 Sep 2011 09:45:11 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Fri, 2 Sep 2011 09:45:11 +0200    

Click here for diff

M src/interfaces/ecpg/ecpglib/execute.c

Remove spurious comma. Spotted by Tom.

commit   : 8027e4d4be11e19784908671bf5cee0c6472fb14    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 19:59:09 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 19:59:09 +0300    

Click here for diff

M src/interfaces/libpq/Makefile

libpq compiles various pgport files like ecpg does, and needs similar Makefile changes for the win32 setlocale() wrapper I put into ecpg, to make it compile on MinGW.

commit   : 4fcceef0de221ba98d3f273b6d69ef0d17e43e74    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 18:58:50 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 18:58:50 +0300    

Click here for diff

M src/interfaces/libpq/Makefile

In ecpglib restore LC_NUMERIC in case of an error.

commit   : 5ad0e899f08136a00f56bf224a6b9729b2f4c69f    
  
author   : Michael Meskes <[email protected]>    
date     : Thu, 1 Sep 2011 15:27:38 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Thu, 1 Sep 2011 15:27:38 +0200    

Click here for diff

M src/interfaces/ecpg/ecpglib/execute.c

commit   : 6952071450befb74ee0bc3c76c17de816cddfc43    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 14:02:40 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 14:02:40 +0300    

Click here for diff

M configure
M configure.in
M src/interfaces/ecpg/ecpglib/Makefile
M src/port/chklocale.c
A src/port/win32setlocale.c
M src/tools/msvc/Mkvcbuild.pm

setlocale() on Windows doesn't work correctly if the locale name contains dots. I previously worked around this in initdb, mapping the known problematic locale names to aliases that work, but Hiroshi Inoue pointed out that that's not enough because even if you use one of the aliases, like "Chinese_HKG", setlocale(LC_CTYPE, NULL) returns back the long form, ie. "Chinese_Hong Kong S.A.R.". When we try to restore an old locale value by passing that value back to setlocale(), it fails. Note that you are affected by this bug also if you use one of those short-form names manually, so just reverting the hack in initdb won't fix it.

commit   : 83748f3a4e0a6bf3ea3d3da53dc507be038b3d1f    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 11:08:32 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 11:08:32 +0300    

Click here for diff

To work around that, move the locale name mapping from initdb to a wrapper  
around setlocale(), so that the mapping is invoked on every setlocale() call.  
  
Also, add a few checks for failed setlocale() calls in the backend. These  
calls shouldn't fail, and if they do there isn't much we can do about it,  
but at least you'll get a warning.  
  
Backpatch to 9.1, where the initdb hack was introduced. The Windows bug  
affects older versions too if you set locale manually to one of the aliases,  
but given the lack of complaints from the field, I'm hesitent to backpatch.  

M src/backend/utils/adt/pg_locale.c
M src/bin/initdb/initdb.c
M src/include/port.h
M src/port/chklocale.c

Move the line to undefine setlocale() macro on Win32 outside USE_REPL_SNPRINTF ifdef block. It has nothing to do with whether the replacement snprintf function is used. It caused no live bug, because the replacement snprintf function is always used on Win32, but it was nevertheless misplaced.

commit   : 116b67f3add43b750c73e30727a58922080067bf    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 09:13:37 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 1 Sep 2011 09:13:37 +0300    

Click here for diff

M src/include/port.h

Further repair of eqjoinsel ndistinct-clamping logic.

commit   : f759ef139ea3d1b2c74c8b6275ca959d7320f4a6    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 1 Sep 2011 00:18:34 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 1 Sep 2011 00:18:34 -0400    

Click here for diff

Examination of examples provided by Mark Kirkwood and others has convinced  
me that actually commit 7f3eba30c9d622d1981b1368f2d79ba0999cdff2 was quite  
a few bricks shy of a load.  The useful part of that patch was clamping  
ndistinct for the inner side of a semi or anti join, and the reason why  
that's needed is that it's the only way that restriction clauses  
eliminating rows from the inner relation can affect the estimated size of  
the join result.  I had not clearly understood why the clamping was  
appropriate, and so mis-extrapolated to conclude that we should clamp  
ndistinct for the outer side too, as well as for both sides of regular  
joins.  These latter actions were all wrong, and are reverted with this  
patch.  In addition, the clamping logic is now made to affect the behavior  
of both paths in eqjoinsel_semi, with or without MCV lists to compare.  
When we have MCVs, we suppose that the most common values are the ones  
that are most likely to survive the decimation resulting from a lower  
restriction clause, so we think of the clamping as eliminating non-MCV  
values, or potentially even the least-common MCVs for the inner relation.  
  
Back-patch to 8.4, same as previous fixes in this area.  

M src/backend/utils/adt/selfuncs.c

Fix pg_upgrade to preserve toast relfrozenxids for old 8.3 servers.

commit   : dbb8d4769cff7387c4419aa53b2dae96b0a601d7    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 31 Aug 2011 21:49:59 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 31 Aug 2011 21:49:59 -0400    

Click here for diff

This fixes a pg_upgrade bug that could lead to query errors when  
clog files are improperly removed.  
  
Backpatch to 8.4, 9.0, 9.1.  

M src/bin/pg_dump/pg_dump.c

Improve eqjoinsel's ndistinct clamping to work for multiple levels of join.

commit   : ca4f70ca779013599ec4c31c54944c2c7a584e92    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 31 Aug 2011 16:04:53 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 31 Aug 2011 16:04:53 -0400    

Click here for diff

This patch fixes an oversight in my commit  
7f3eba30c9d622d1981b1368f2d79ba0999cdff2 of 2008-10-23.  That patch  
accounted for baserel restriction clauses that reduced the number of rows  
coming out of a table (and hence the number of possibly-distinct values of  
a join variable), but not for join restriction clauses that might have been  
applied at a lower level of join.  To account for the latter, look up the  
sizes of the min_lefthand and min_righthand inputs of the current join,  
and clamp with those in the same way as for the base relations.  
  
Noted while investigating a complaint from Ben Chobot, although this in  
itself doesn't seem to explain his report.  
  
Back-patch to 8.4; previous versions used different estimation methods  
for which this heuristic isn't relevant.  

M src/backend/utils/adt/selfuncs.c

The replication status values in pg_stat_replication was changed to lowercase earlier, but documentation was not updated. Update the docs.

commit   : edf4edae5799e5f7b7d9822d2932170341ba5472    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 31 Aug 2011 12:37:37 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 31 Aug 2011 12:37:37 +0300    

Click here for diff

Fujii Masao  

M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml

Fix not-backwards-compatible pg_upgrade test for prepared transactions.

commit   : 333eb32081d261ede946935379b66e6ac192629d    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 30 Aug 2011 17:15:00 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 30 Aug 2011 17:15:00 -0400    

Click here for diff

There's no reason for this test to use the undocumented pg_prepared_xact()  
function, when it can use the stable API pg_prepared_xacts instead.  
Fixes breakage against 8.3, as reported by Justin Arnold.  

M contrib/pg_upgrade/check.c

Fix a missed case in code for "moving average" estimate of reltuples.

commit   : 030cdaf7fb90decfd7f959aa0d67d19b5669f458    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 30 Aug 2011 14:49:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 30 Aug 2011 14:49:52 -0400    

Click here for diff

It is possible for VACUUM to scan no pages at all, if the visibility map  
shows that all pages are all-visible.  In this situation VACUUM has no new  
information to report about the relation's tuple density, so it wasn't  
changing pg_class.reltuples ... but it updated pg_class.relpages anyway.  
That's wrong in general, since there is no evidence to justify changing the  
density ratio reltuples/relpages, but it's particularly bad if the previous  
state was relpages=reltuples=0, which means "unknown tuple density".  
We just replaced "unknown" with "zero".  ANALYZE would eventually recover  
from this, but it could take a lot of repetitions of ANALYZE to do so if  
the relation size is much larger than the maximum number of pages ANALYZE  
will scan, because of the moving-average behavior introduced by commit  
b4b6923e03f4d29636a94f6f4cc2f5cf6298b8c8.  
  
The only known situation where we could have relpages=reltuples=0 and yet  
the visibility map asserts everything's visible is immediately following  
a pg_upgrade.  It might be advisable for pg_upgrade to try to preserve the  
relpages/reltuples statistics; but in any case this code is wrong on its  
own terms, so fix it.  Per report from Sergey Koposov.  
  
Back-patch to 8.4, where the visibility map was introduced, same as the  
previous change.  

M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/utils/cache/relcache.c

Fix concat_ws() to not insert a separator after leading NULL argument(s).

commit   : 579577320ef449442f804043a67ce5c13d679679    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 29 Aug 2011 15:20:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 29 Aug 2011 15:20:57 -0400    

Click here for diff

Per bug #6181 from Itagaki Takahiro.  Also do some marginal code cleanup  
and improve error handling.  

M src/backend/utils/adt/varlena.c

Actually, all of parallel restore's limitations should be tested earlier.

commit   : 4fa37702a041a90355f693e10cad0751ef700658    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 28 Aug 2011 22:27:48 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 28 Aug 2011 22:27:48 -0400    

Click here for diff

On closer inspection, whining in restore_toc_entries_parallel is really  
much too late for any user-facing error case.  The right place to do it  
is at the start of RestoreArchive(), before we've done anything interesting  
(suh as trying to DROP all the targets ...)  
  
Back-patch to 8.4, where parallel restore was introduced.  

M src/bin/pg_dump/pg_backup_archiver.c

Be more user-friendly about unsupported cases for parallel pg_restore.

commit   : 76d8bd8b906ddc27e4aee4b92b3f82e896b7e926    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 28 Aug 2011 21:48:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 28 Aug 2011 21:48:58 -0400    

Click here for diff

If we are unable to do a parallel restore because the input file is stdin  
or is otherwise unseekable, we should complain and fail immediately, not  
after having done some of the restore.  Complaining once per thread isn't  
so cool either, and the messages should be worded to make it clear this is  
an unsupported case not some weird race-condition bug.  Per complaint from  
Lonni Friedman.  
  
Back-patch to 8.4, where parallel restore was introduced.  

M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_custom.c

Don't assume that "E" response to NEGOTIATE_SSL_CODE means pre-7.0 server.

commit   : 5f81cf34e3e45ae4d464618c0b61914a60282aba    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Aug 2011 16:37:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Aug 2011 16:37:02 -0400    

Click here for diff

These days, such a response is far more likely to signify a server-side  
problem, such as fork failure.  Reporting "server does not support SSL"  
(in sslmode=require) could be quite misleading.  But the results could  
be even worse in sslmode=prefer: if the problem was transient and the  
next connection attempt succeeds, we'll have silently fallen back to  
protocol version 2.0, possibly disabling features the user needs.  
  
Hence, it seems best to just eliminate the assumption that backing off  
to non-SSL/2.0 protocol is the way to recover from an "E" response, and  
instead treat the server error the same as we would in non-SSL cases.  
  
I tested this change against a pre-7.0 server, and found that there  
was a second logic bug in the "prefer" path: the test to decide whether  
to make a fallback connection attempt assumed that we must have opened  
conn->ssl, which in fact does not happen given an "E" response.  After  
fixing that, the code does indeed connect successfully to pre-7.0,  
as long as you didn't set sslmode=require.  (If you did, you get  
"Unsupported frontend protocol", which isn't completely off base  
given the server certainly doesn't support SSL.)  
  
Since there seems no reason to believe that pre-7.0 servers exist anymore  
in the wild, back-patch to all supported branches.  

M src/interfaces/libpq/fe-connect.c

Ensure we discard unread/unsent data when abandoning a connection attempt.

commit   : ef3455f190d3c12de71c06316109bb5ffbffe462    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Aug 2011 14:16:19 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Aug 2011 14:16:19 -0400    

Click here for diff

There are assorted situations wherein PQconnectPoll() will abandon a  
connection attempt and try again with different parameters (eg, SSL versus  
not SSL).  However, the code forgot to discard any pending data in libpq's  
I/O buffers when doing this.  In at least one case (server returns E  
message during SSL negotiation), there is unread input data which bollixes  
the next connection attempt.  I have not checked to see whether this is  
possible in the other cases where we close the socket and retry, but it  
seems like a matter of good defensive programming to add explicit  
buffer-flushing code to all of them.  
  
This is one of several issues exposed by Daniel Farina's report of  
misbehavior after a server-side fork failure.  
  
This has been wrong since forever, so back-patch to all supported branches.  

M src/interfaces/libpq/fe-connect.c

Spelling improvement

commit   : 814a7f50c6c53883b0b753458c9912b0e6bc2519    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 27 Aug 2011 08:07:58 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 27 Aug 2011 08:07:58 +0300    

Click here for diff

M doc/src/sgml/ref/psql-ref.sgml

Fix potential memory clobber in tsvector_concat().

commit   : 93809ad5eb8f0dbd704b2f713f707d8cf684fd57    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 26 Aug 2011 16:51:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 26 Aug 2011 16:51:39 -0400    

Click here for diff

tsvector_concat() allocated its result workspace using the "conservative"  
estimate of the sum of the two input tsvectors' sizes.  Unfortunately that  
wasn't so conservative as all that, because it supposed that the number of  
pad bytes required could not grow.  Which it can, as per test case from  
Jesper Krogh, if there's a mix of lexemes with positions and lexemes  
without them in the input data.  The fix is to assume that we might add  
a not-previously-present pad byte for each and every lexeme in the two  
inputs; which really is conservative, but it doesn't seem worthwhile to  
try to be more precise.  
  
This is an aboriginal bug in tsvector_concat, so back-patch to all  
versions containing it.  

M src/backend/utils/adt/tsvector_op.c

In pg_upgrade, limit schema name filter to include toast tables. Bug introduced recently when trying to filter out temp tables.

commit   : 39a713ea059a8ad3d07e3ea4d2c9b5da1fe3fa25    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Aug 2011 00:12:34 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Aug 2011 00:12:34 -0400    

Click here for diff

Backpatch to 9.0 and 9.1.  

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/version_old_8_3.c

Add expected isolationtester output when prepared xacts are disabled

commit   : 0b298bd7a1782fca621068a5e17681be207f5635    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 25 Aug 2011 17:35:57 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 25 Aug 2011 17:35:57 -0300    

Click here for diff

This was deemed unnecessary initially but in later discussion it was  
agreed otherwise.  
  
Original file from Kevin Grittner, allegedly from Dan Ports.  
I had to clean up whitespace a bit per changes from Heikki.  

A src/test/isolation/expected/prepared-transactions_1.out
M src/test/isolation/isolation_schedule

Fix psql lexer to avoid use of backtracking.

commit   : be93200c76911047dcb94ddb696441ecdef9a3cb    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 25 Aug 2011 14:33:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 25 Aug 2011 14:33:08 -0400    

Click here for diff

Per previous experimentation, backtracking slows down lexing performance  
significantly (by about a third).  It's usually pretty easy to avoid, just  
need to have rules that accept an incomplete construct and do whatever the  
lexer would have done otherwise.  
  
The backtracking was introduced by the patch that added quoted variable  
substitution.  Back-patch to 9.0 where that was added.  

M src/bin/psql/psqlscan.l

Properly quote SQL/MED generic options in pg_dump output.

commit   : de632180ed51b8a6ff275a5f81198521e8b30e12    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 12:37:32 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 12:37:32 -0400    

Click here for diff

Shigeru Hanada  

M src/bin/pg_dump/pg_dump.c

Revert "Tweak postgresql.conf.sample's comments on listen_addresess."

commit   : e1f0820b0d252ace738d7c337eb348eb4dab42d8    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:41:00 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:41:00 -0400    

Click here for diff

This reverts commit 1bde67c0b9adce8b7ed2a2d1fcb2788cf96cea64, which  
should have been done only on the master branch.  

M src/backend/utils/misc/postgresql.conf.sample

Tweak postgresql.conf.sample's comments on listen_addresess.

commit   : 1bde67c0b9adce8b7ed2a2d1fcb2788cf96cea64    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:39:35 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:39:35 -0400    

Click here for diff

This makes it slightly more clear that '*' is not part of the default  
value, in case that wasn't obvious.  
  
As requested by Dougal Sutherland.  

M src/backend/utils/misc/postgresql.conf.sample

Adjust CREATE DOMAIN example for standard_conforming_strings=on.

commit   : eb11a37ed8cd0b38d29c7001435c14fb9316cee6    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:35:38 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Aug 2011 09:35:38 -0400    

Click here for diff

Noted by Hitoshi Harada.  

M doc/src/sgml/ref/create_domain.sgml

Fix pgstatindex() to give consistent results for empty indexes.

commit   : ac45828e99024da2a9febe603d1be91cd87a9a50    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 23:50:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 23:50:15 -0400    

Click here for diff

For an empty index, the pgstatindex() function would compute 0.0/0.0 for  
its avg_leaf_density and leaf_fragmentation outputs.  On machines that  
follow the IEEE float arithmetic standard with any care, that results in  
a NaN.  However, per report from Rushabh Lathia, Microsoft couldn't  
manage to get this right, so you'd get a bizarre error on Windows.  
  
Fix by forcing the results to be NaN explicitly, rather than relying on  
the division operator to give that or the snprintf function to print it  
correctly.  I have some doubts that this is really the most useful  
definition, but it seems better to remain backward-compatible with  
those platforms for which the behavior wasn't completely broken.  
  
Back-patch to 8.2, since the code is like that in all current releases.  

M contrib/pgstattuple/pgstatindex.c

Fix pgxs.mk to always add --dbname=$(CONTRIB_TESTDB) to REGRESS_OPTS.

commit   : 5354abb8f69734ff1c07cee5e29845b74d46e9d6    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 15:16:23 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 15:16:23 -0400    

Click here for diff

The previous coding resulted in contrib modules unintentionally overriding  
the use of CONTRIB_TESTDB.  There seems no particularly good reason to  
allow that (after all, the makefile can set CONTRIB_TESTDB if that's really  
what it intends).  
  
In passing, document REGRESS_OPTS where the other pgxs.mk options are  
documented.  
  
Back-patch to 9.1 --- in prior versions, there were no cases of contrib  
modules setting REGRESS_OPTS without including the --dbname switch, so  
while the coding was fragile there was no actual bug.  

M contrib/sepgsql/Makefile
M doc/src/sgml/extend.sgml
M src/makefiles/pgxs.mk

Build src/ before contrib/ in make world

commit   : ed1a4adbe38ed94cc2e3c017a9f5be4b282bccb9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 24 Aug 2011 21:34:49 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 24 Aug 2011 21:34:49 +0300    

Click here for diff

This fixes failures under parallel make when contrib modules use a  
generated backend header file (such as errcodes.h).  

M GNUmakefile.in

Avoid locale dependency in expected output.

commit   : 867c20c0720bb2fb7441cbb80949b9ae579ee774    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 13:47:01 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 13:47:01 -0400    

Click here for diff

We'll have to settle for just listing the extensions' data types,  
since function arguments seem to sort differently in different locales.  
Per buildfarm results.  

M contrib/earthdistance/expected/earthdistance.out
M contrib/earthdistance/sql/earthdistance.sql

Fix multiple bugs in extension dropping.

commit   : e8513328760ea175001bac52c10219315379b2c1    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 13:09:06 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 24 Aug 2011 13:09:06 -0400    

Click here for diff

When we implemented extensions, we made findDependentObjects() treat  
EXTENSION dependency links similarly to INTERNAL links.  However, that  
logic contained an implicit assumption that an object could have at most  
one INTERNAL dependency, so it did not work correctly for objects having  
both INTERNAL and DEPENDENCY links.  This led to failure to drop some  
extension member objects when dropping the extension.  Furthermore, we'd  
never actually exercised the case of recursing to an internally-referenced  
(owning) object from anything other than a NORMAL dependency, and it turns  
out that passing the incoming dependency's flags to the owning object is  
the Wrong Thing.  This led to sometimes dropping a whole extension silently  
when we should have rejected the drop command for lack of CASCADE.  
  
Since we obviously were under-testing extension drop scenarios, add some  
regression test cases.  Unfortunately, such test cases require some  
extensions (duh), so we can't test for problems in the core regression  
tests.  I chose to add them to the earthdistance contrib module, which is  
a good test case because it has a dependency on the cube contrib module.  
  
Back-patch to 9.1.  Arguably these are pre-existing bugs in INTERNAL  
dependency handling, but since it appears that the cases can never arise  
pre-9.1, I'll refrain from back-patching the logic changes further than  
that.  

M contrib/earthdistance/expected/earthdistance.out
M contrib/earthdistance/sql/earthdistance.sql
M src/backend/catalog/dependency.c

Make CREATE EXTENSION check schema creation permissions.

commit   : 7f7fdd2a17ce087f995a0660fadf3e9523d72810    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 23 Aug 2011 21:49:07 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 23 Aug 2011 21:49:07 -0400    

Click here for diff

When creating a new schema for a non-relocatable extension, we neglected  
to check whether the calling user has permission to create schemas.  
That didn't matter in the original coding, since we had already checked  
superuserness, but in the new dispensation where users need not be  
superusers, we should check it.  Use CreateSchemaCommand() rather than  
calling NamespaceCreate() directly, so that we also enforce the rules  
about reserved schema names.  
  
Per complaint from KaiGai Kohei, though this isn't the same as his patch.  

M src/backend/commands/extension.c

Fix overoptimistic assumptions in column width estimation for subqueries.

commit   : 48f545a3aef461a635b975443a99dd268269590a    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 23 Aug 2011 17:11:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 23 Aug 2011 17:11:41 -0400    

Click here for diff

set_append_rel_pathlist supposed that, while computing per-column width  
estimates for the appendrel, it could ignore child rels for which the  
translated reltargetlist entry wasn't a Var.  This gave rise to completely  
silly estimates in some common cases, such as constant outputs from some or  
all of the arms of a UNION ALL.  Instead, fall back on get_typavgwidth to  
estimate from the value's datatype; which might be a poor estimate but at  
least it's not completely wacko.  
  
That problem was exposed by an Assert in set_subquery_size_estimates, which  
unfortunately was still overoptimistic even with that fix, since we don't  
compute attr_widths estimates for appendrels that are entirely excluded by  
constraints.  So remove the Assert; we'll just fall back on get_typavgwidth  
in such cases.  
  
Also, since set_subquery_size_estimates calls set_baserel_size_estimates  
which calls set_rel_width, there's no need for set_subquery_size_estimates  
to call get_typavgwidth; set_rel_width will handle it for us if we just  
leave the estimate set to zero.  Remove the unnecessary code.  
  
Per report from Erik Rijkers and subsequent investigation.  

M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c

Add recovery.conf to the index in the user manual.

commit   : 26a092657ba4ac52212d43bae9a822a119efbd8a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 23 Aug 2011 11:55:21 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 23 Aug 2011 11:55:21 +0300    

Click here for diff

Fujii Masao  

M doc/src/sgml/recovery-config.sgml

Fix handling of extension membership when filling in a shell operator.

commit   : 9c471d24126280a5f90ee9d276a9df37480dfcde    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 22 Aug 2011 10:55:47 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 22 Aug 2011 10:55:47 -0400    

Click here for diff

The previous coding would result in deleting and not re-creating the  
extension membership pg_depend rows, since there was no  
CommandCounterIncrement that would allow recordDependencyOnCurrentExtension  
to see that the deletion had happened.  Make it work like the shell type  
case, ie, keep the existing entries (and then throw an error if they're for  
the wrong extension).  
  
Per bug #6172 from Hitoshi Harada.  Investigation and fix by Dimitri  
Fontaine.  

M src/backend/catalog/pg_operator.c

Fix trigger WHEN conditions when both BEFORE and AFTER triggers exist.

commit   : 38c9eb8fee298a9242bb2049c4fdf94407187d0c    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 21 Aug 2011 18:16:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 21 Aug 2011 18:16:02 -0400    

Click here for diff

Due to tuple-slot mismanagement, evaluation of WHEN conditions for AFTER  
ROW UPDATE triggers could crash if there had been a BEFORE ROW trigger  
fired for the same update.  Fix by not trying to overload the use of  
estate->es_trig_tuple_slot.  Per report from Yoran Heling.  
  
Back-patch to 9.0, when trigger WHEN conditions were introduced.  

M src/backend/commands/trigger.c
M src/backend/executor/execMain.c
M src/backend/executor/execUtils.c
M src/include/nodes/execnodes.h
M src/test/regress/expected/triggers.out
M src/test/regress/sql/triggers.sql

Fix performance problem when building a lossy tidbitmap.

commit   : 548d1f752be7a11e240f1eadd4f9987a7b9793c5    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 20 Aug 2011 14:51:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 20 Aug 2011 14:51:02 -0400    

Click here for diff

As pointed out by Sergey Koposov, repeated invocations of tbm_lossify can  
make building a large tidbitmap into an O(N^2) operation.  To fix, make  
sure we remove more than the minimum amount of information per call, and  
add a fallback path to behave sanely if we're unable to fit the bitmap  
within the requested amount of memory.  
  
This has been wrong since the tidbitmap code was written, so back-patch  
to all supported branches.  

M src/backend/nodes/tidbitmap.c

commit   : 1ffcc377f692fb227ebfeb6036aa949099d71979    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 19 Aug 2011 11:57:38 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 19 Aug 2011 11:57:38 -0400    

Click here for diff

contrib/xml2 can get by without libxslt; the relevant features just  
won't work.  But if doesn't have libxml2, or if sepgsql doesn't have  
libselinux, the link succeeds but the module then fails to work at load  
time.  To avoid that, link the require libraries unconditionally, so  
that it will be clear at link-time that there is a problem.  
  
Per discussion with Tom Lane and KaiGai Kohei.  

M contrib/sepgsql/Makefile
M contrib/xml2/Makefile

Allow sepgsql regression tests to be run from a user homedir.

commit   : 1013770dd22193928fab5a3e379dc5ebe5a260be    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 19 Aug 2011 11:51:10 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 19 Aug 2011 11:51:10 -0400    

Click here for diff

KaiGai Kohei, with some changes by me.  

M contrib/sepgsql/sepgsql-regtest.te

Tag 9.1rc1.

commit   : d89b8daf5ee05f9c6fa63695e88d2315a224bf2d    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 18 Aug 2011 17:23:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 18 Aug 2011 17:23:13 -0400    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32

Explain max_prepared_transactions requirement in isolation tests' README.

commit   : 6a42b29102092d185f9b752f5a4edf4735e42f9b    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 18 Aug 2011 11:45:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 18 Aug 2011 11:45:33 -0400    

Click here for diff

Now that we have a test that requires nondefault settings to pass, it seems  
like we'd better mention that detail in the directions about how to run the  
tests.  
  
Also do some very minor copy-editing.  

M src/test/isolation/README

Report libpq errors correctly if session setup or teardown steps fail in isolation regression tests.

commit   : b936d9264c08418909e3ec5d6107bd104d62fdc2    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 16:47:31 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 16:47:31 +0300    

Click here for diff

Alvaro committed these fixes to master branch on Tue Jul 29th, as part of  
Noah Misch's patch. The rest of that patch is not needed on 9.1, but this  
part should be backpatched.  

M src/test/isolation/isolationtester.c

Add an SSI regression test that tests all interesting permutations in the order of begin, prepare, and commit of three concurrent transactions that have conflicts between them.

commit   : b9585e8f983863fc7e1e147f503091a5f82d6ccf    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 13:36:37 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 13:36:37 +0300    

Click here for diff

The test runs for a quite long time, and the expected output file is huge,  
but this test caught some serious bugs during development, so seems  
worthwhile to keep. The test uses prepared transactions, so it fails if the  
server has max_prepared_transactions=0. Because of that, it's marked as  
"ignore" in the schedule file.  
  
Dan Ports  

A src/test/isolation/expected/prepared-transactions.out
M src/test/isolation/isolation_schedule
M src/test/isolation/isolationtester.c
A src/test/isolation/specs/prepared-transactions.spec

Strip whitespace from SQL blocks in the isolation test suite. This is purely cosmetic, it removes a lot of IMHO ugly whitespace from the expected output.

commit   : 89c096c56542cdd7355925f826b3c67dc5265155    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 12:16:10 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Aug 2011 12:16:10 +0300    

Click here for diff

M src/test/isolation/expected/classroom-scheduling.out
M src/test/isolation/expected/multiple-row-versions.out
M src/test/isolation/expected/partial-index.out
M src/test/isolation/expected/project-manager.out
M src/test/isolation/expected/receipt-report.out
M src/test/isolation/expected/referential-integrity.out
M src/test/isolation/expected/ri-trigger.out
M src/test/isolation/expected/simple-write-skew.out
M src/test/isolation/expected/temporal-range-integrity.out
M src/test/isolation/expected/total-cash.out
M src/test/isolation/expected/two-ids.out
M src/test/isolation/specscanner.l

Improve detection of Python 3.2 installations

commit   : 7ce4abf5993dd8819053d0592aa2276d49b3ffb3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 18 Aug 2011 14:43:16 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 18 Aug 2011 14:43:16 +0300    

Click here for diff

Because of ABI tagging, the library version number might no longer be  
exactly the Python version number, so do extra lookups.  This affects  
installations without a shared library, such as ActiveState's  
installer.  
  
Also update the way to detect the location of the 'config' directory,  
which can also be versioned.  
  
Ashesh Vashi  

M config/python.m4
M configure

Change PyInit_plpy to external linkage

commit   : 7b1509d56256fa391d4ae71288be194923a41947    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 18 Aug 2011 12:53:32 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 18 Aug 2011 12:53:32 +0300    

Click here for diff

Module initialization functions in Python 3 must have external  
linkage, because PyMODINIT_FUNC does dllexport on Windows-like  
platforms.  Without this change, the build with Python 3 fails on  
Windows.  

M src/pl/plpython/plpython.c

Update 9.1 release notes to reflect commits through today.

commit   : f85e4057cfe62752eb57d2315d4acda5bb5c1e9e    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 17 Aug 2011 20:18:23 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 17 Aug 2011 20:18:23 -0400    

Click here for diff

Also do another pass of copy-editing.  

M doc/src/sgml/release-9.1.sgml

Fix two issues in plpython's handling of composite results.

commit   : f26474eff49c12c1bfc02f986406e44045108074    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 17 Aug 2011 17:07:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 17 Aug 2011 17:07:25 -0400    

Click here for diff

Dropped columns within a composite type were not handled correctly.  
Also, we did not check for whether a composite result type had changed  
since we cached the information about it.  
  
Jan Urbański, per a bug report from Jean-Baptiste Quenot  

M src/pl/plpython/expected/plpython_record.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_record.sql

Properly handle empty arrays returned from plperl functions.

commit   : 22a55b3af687806e6b3a08a131d00541774eaade    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 17 Aug 2011 12:03:26 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 17 Aug 2011 12:03:26 -0400    

Click here for diff

Bug reported by David Wheeler, fix by Alex Hunsaker.  
# Please enter the commit message for your changes. Lines starting  
# with '#' will be ignored, and an empty message aborts the commit.  
# On branch master  
# Changes to be committed:  
#   (use "git reset HEAD <file>..." to unstage)  
#  
#	modified:   src/pl/plperl/plperl.c  
#  
# Untracked files:  
#   (use "git add <file>..." to include in what will be committed)  
#  
#	autom4te.cache/  
#	configure.in~  
#	doc/src/sgml/ref/grant.sgml~  
#	src/backend/port/win32_latch.c~  
#	src/bin/psql/command.c~  
#	src/include/pg_config.h.win32~  
#	src/pl/plpython/plpython.c~  
#	src/tools/msvc/pgbison.bat~  
#	src/tools/msvc/pgbison.pl.bak  
#	src/tools/msvc/pgflex.bat~  
#	src/tools/msvc/pgflex.pl.bak  
#	src/tools/pgindent/README~  
#	src/tools/pgindent/pgindent.pl  
#	src/tools/pgindent/pgindent.pl~  
#	xxxxx  
#	yyyyyy  

M src/pl/plperl/plperl.c

Translation updates

commit   : dfee7d16ad2060e9f73f3002fd979acc085f9391    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 14:02:24 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 14:02:24 +0300    

Click here for diff

M src/backend/po/de.po
M src/backend/po/fr.po
M src/backend/po/ja.po
M src/bin/initdb/po/fr.po
M src/bin/initdb/po/ja.po
M src/bin/pg_basebackup/nls.mk
M src/bin/pg_basebackup/po/de.po
M src/bin/pg_basebackup/po/es.po
A src/bin/pg_basebackup/po/fr.po
A src/bin/pg_basebackup/po/ja.po
M src/bin/pg_ctl/po/de.po
M src/bin/pg_ctl/po/es.po
M src/bin/pg_ctl/po/fr.po
M src/bin/pg_ctl/po/ja.po
M src/bin/pg_dump/po/fr.po
M src/bin/pg_dump/po/ja.po
M src/bin/psql/po/de.po
M src/bin/psql/po/fr.po
M src/bin/psql/po/ja.po
M src/bin/scripts/po/de.po
M src/interfaces/libpq/po/de.po
M src/interfaces/libpq/po/es.po
M src/interfaces/libpq/po/fr.po
M src/interfaces/libpq/po/ja.po
M src/interfaces/libpq/po/pt_BR.po
M src/pl/plperl/po/fr.po
M src/pl/plperl/po/ja.po
M src/pl/plperl/po/pt_BR.po
M src/pl/plpgsql/src/nls.mk
M src/pl/plpgsql/src/po/fr.po
M src/pl/plpgsql/src/po/ja.po
A src/pl/plpgsql/src/po/pl.po
M src/pl/plpython/po/fr.po
M src/pl/plpython/po/ja.po

Adjust wording now that estimated size can increase

commit   : aee1df4de5006300cfb59b531933b1e0142a8735    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 17 Aug 2011 11:01:06 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 17 Aug 2011 11:01:06 +0200    

Click here for diff

Per comment form Fujii Masao.  

M doc/src/sgml/ref/pg_basebackup.sgml

If backup-end record is not seen, and we reach end of recovery from a streamed backup, throw an error and refuse to start up. The restore has not finished correctly in that case and the data directory is possibly corrupt. We already errored out in case of archive recovery, but could not during crash recovery because we couldn't distinguish between the case that pg_start_backup() was called and the database then crashed (must not error, data is OK), and the case that we're restoring from a backup and not all the needed WAL was replayed (data can be corrupt).

commit   : 59dd4790e24b2fdffe85b8d3664a8374303cca24    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 17 Aug 2011 11:36:47 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 17 Aug 2011 11:36:47 +0300    

Click here for diff

To distinguish those cases, add a line to backup_label to indicate  
whether the backup was taken with pg_start/stop_backup(), or by streaming  
(ie. pg_basebackup).  
  
This is a different implementation than what I committed to 9.2 a week ago.  
That implementation was not back-patchable because it required re-initdb.  
  
Fujii Masao  

M src/backend/access/transam/xlog.c

Move \r out of translatable strings

commit   : 9dcaf9a0526ff988566a47d21b5a8149e17c9ba2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 10:52:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 10:52:35 +0300    

Click here for diff

The translation tools are very unhappy about seeing \r in translatable  
strings, so move it to a separate fprintf call.  

M src/bin/pg_basebackup/pg_basebackup.c

MacOS -> Mac OS

commit   : 1361a47359669dffb0bfbbbb6fec8be3c5087656    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 10:05:22 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 17 Aug 2011 10:05:22 +0300    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/dfunc.sgml
M doc/src/sgml/release-old.sgml
M doc/src/sgml/runtime.sgml

Forget about targeting catalog cache invalidations by tuple TID.

commit   : 1713bbca7d305c728785afb2c7603da97f4d6704    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 15:26:30 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 15:26:30 -0400    

Click here for diff

The TID isn't stable enough: we might queue an sinval event before a VACUUM  
FULL, and then process it afterwards, when the target tuple no longer has  
the same TID.  So we must invalidate entries on the basis of hash value  
only.  The old coding can be shown to result in various bizarre,  
hard-to-reproduce errors in the presence of concurrent VACUUM FULLs on  
system catalogs, and could easily result in permanent catalog corruption,  
up to and including complete loss of tables.  
  
This commit is just a minimal fix that removes the unsafe comparison.  
We should remove transmission of the tuple TID from sinval messages  
altogether, and then arrange to suppress the extra message in the common  
case of a heap_update that doesn't change the key hashvalue.  But that's  
going to be much more invasive, and will only produce a probably-marginal  
performance gain, so it doesn't seem like material for a back-patch.  
  
Back-patch to 9.0.  Before that, VACUUM FULL refused to do any tuple moving  
if it found any INSERT_IN_PROGRESS or DELETE_IN_PROGRESS tuples (and  
CLUSTER would give up altogether), so there was no risk of moving a tuple  
that might be the subject of an unsent sinval message.  

M src/backend/utils/cache/catcache.c

Fix incorrect order of operations during sinval reset processing.

commit   : 84333962eae9e513bb12feb41069e3a3945a7a1a    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 14:38:29 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 14:38:29 -0400    

Click here for diff

We have to be sure that we have revalidated each nailed-in-cache relcache  
entry before we try to use it to load data for some other relcache entry.  
The introduction of "mapped relations" in 9.0 broke this, because although  
we updated the state kept in relmapper.c early enough, we failed to  
propagate that information into relcache entries soon enough; in  
particular, we could try to fetch pg_class rows out of pg_class before  
we'd updated its relcache entry's rd_node.relNode value from the map.  
  
This bug accounts for Dave Gould's report of failures after "vacuum full  
pg_class", and I believe that there is risk for other system catalogs  
as well.  
  
The core part of the fix is to copy relmapper data into the relcache  
entries during "phase 1" in RelationCacheInvalidate(), before they'll be  
used in "phase 2".  To try to future-proof the code against other similar  
bugs, I also rearranged the order in which nailed relations are visited  
during phase 2: now it's pg_class first, then pg_class_oid_index, then  
other nailed relations.  This should ensure that RelationClearRelation can  
apply RelationReloadIndexInfo to all nailed indexes without risking use  
of not-yet-revalidated relcache entries.  
  
Back-patch to 9.0 where the relation mapper was introduced.  

M src/backend/utils/cache/relcache.c

Preserve toast value OIDs in toast-swap-by-content for CLUSTER/VACUUM FULL.

commit   : f48e62274f48df5788eef8465198184450ab6ad8    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 13:48:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 13:48:11 -0400    

Click here for diff

This works around the problem that a catalog cache entry might contain a  
toast pointer that we try to dereference just as a VACUUM FULL completes  
on that catalog.  We will see the sinval message on the cache entry when  
we acquire lock on the toast table, but by that point we've already told  
tuptoaster.c "here's the pointer to fetch", so it's difficult from a code  
structural standpoint to update the pointer before we use it.  Much less  
painful to ensure that toast pointers are not invalidated in the first  
place.  We have to add a bit of code to deal with the case that a value  
that previously wasn't toasted becomes so; but that should be a  
seldom-exercised corner case, so the inefficiency shouldn't be significant.  
  
Back-patch to 9.0.  In prior versions, we didn't allow CLUSTER on system  
catalogs, and VACUUM FULL didn't result in reassignment of toast OIDs, so  
there was no problem.  

M src/backend/access/heap/tuptoaster.c
M src/backend/commands/cluster.c

Fix race condition in relcache init file invalidation.

commit   : 45476031a54c12bebf2f209ea2b6fb3bfc905193    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 13:12:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 16 Aug 2011 13:12:03 -0400    

Click here for diff

The previous code tried to synchronize by unlinking the init file twice,  
but that doesn't actually work: it leaves a window wherein a third process  
could read the already-stale init file but miss the SI messages that would  
tell it the data is stale.  The result would be bizarre failures in catalog  
accesses, typically "could not read block 0 in file ..." later during  
startup.  
  
Instead, hold RelCacheInitLock across both the unlink and the sending of  
the SI messages.  This is more straightforward, and might even be a bit  
faster since only one unlink call is needed.  
  
This has been wrong since it was put in (in 2002!), so back-patch to all  
supported releases.  

M src/backend/access/transam/twophase.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/relcache.c
M src/include/utils/relcache.h

Adjust total size in pg_basebackup progress report when reality changes

commit   : 0615782b23d3e4a9d9acece919bd77f919928953    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 16 Aug 2011 16:56:47 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 16 Aug 2011 16:56:47 +0200    

Click here for diff

When streaming including WAL, the size estimate will always be incorrect,  
since we don't know how much WAL is included. To make sure the output doesn't  
look completely unreasonable, this patch increases the total size whenever we  
go past the estimate, to make sure we never go above 100%.  

M src/bin/pg_basebackup/pg_basebackup.c

Make pg_basebackup progress report translatable

commit   : be78374f160d4a3bb2357d38e3196f8dcd4ffcc1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 16 Aug 2011 11:24:08 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 16 Aug 2011 11:24:08 +0300    

Click here for diff

Also fix a potential portability bug, because INT64_FORMAT is only  
guaranteed to be available with snprintf, not fprintf.  

M src/bin/pg_basebackup/pg_basebackup.c

Use less cryptic variable names

commit   : adbb764e5040b388c55bf1344cafa3c5fee7c14f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 16 Aug 2011 11:19:50 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 16 Aug 2011 11:19:50 +0300    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

In pg_upgrade, avoid dumping orphaned temporary tables. This makes the pg_upgrade schema matching pattern match pg_dump/pg_dumpall.

commit   : 96a770d5da62c820efcb32e06887f112e9b40d80    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 15 Aug 2011 22:39:37 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 15 Aug 2011 22:39:37 -0400    

Click here for diff

Fix for 9.0, 9.1, and 9.2.  

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/version_old_8_3.c

Adjust regression tests for error message change

commit   : b0313ddd6e4924763904b052c7a9ba14166876f6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 15 Aug 2011 17:27:10 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 15 Aug 2011 17:27:10 +0300    

Click here for diff

M src/test/regress/expected/prepared_xacts.out

Add "Reason code" prefix to internal SSI error messages

commit   : 90ffdf83d28900f280a8a1e4ed904ebf7da8cb90    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 15 Aug 2011 15:20:16 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 15 Aug 2011 15:20:16 +0300    

Click here for diff

This makes it clearer that the error message is perhaps not supposed  
to be understood by users, and it also makes it somewhat clearer that  
it was not accidentally omitted from translation.  
  
Idea from Heikki Linnakangas, except that we don't mark "Reason code"  
for translation at this point, because that would make the  
implementation too cumbersome.  

M src/backend/storage/lmgr/predicate.c

Fix unsafe order of operations in foreign-table DDL commands.

commit   : 148f321eb4fe9030378ad21ba1be132084a9ab8f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 14 Aug 2011 15:40:29 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 14 Aug 2011 15:40:29 -0400    

Click here for diff

When updating or deleting a system catalog tuple, it's necessary to acquire  
RowExclusiveLock on the catalog before looking up the tuple; otherwise a  
concurrent VACUUM FULL on the catalog might move the tuple to a different  
TID before we can apply the update.  Coding patterns that find the tuple  
via a table scan aren't at risk here, but when obtaining the tuple from a  
catalog cache, correct ordering is important; and several routines in  
foreigncmds.c got it wrong.  Noted while running the regression tests in  
parallel with VACUUM FULL of assorted system catalogs.  
  
For consistency I moved all the heap_open calls to the starts of their  
functions, including a couple for which there was no actual bug.  
  
Back-patch to 8.4 where foreigncmds.c was added.  

M src/backend/commands/foreigncmds.c

Message style improvements

commit   : 00fc5d22634df1a59c8a265dba3f12814dc343c3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 14 Aug 2011 21:03:08 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 14 Aug 2011 21:03:08 +0300    

Click here for diff

M contrib/pg_archivecleanup/pg_archivecleanup.c
M contrib/pg_standby/pg_standby.c

Fix typo

commit   : 280daac70790cd5fc0129ac620935e4fc4ca7a90    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 14 Aug 2011 10:40:50 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 14 Aug 2011 10:40:50 +0300    

Click here for diff

M doc/src/sgml/ecpg.sgml

Fix incorrect timeout handling during initial authentication transaction.

commit   : 6a3f153d08259a2ea1d509668dea665528246ef0    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 13 Aug 2011 17:52:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 13 Aug 2011 17:52:24 -0400    

Click here for diff

The statement start timestamp was not set before initiating the transaction  
that is used to look up client authentication information in pg_authid.  
In consequence, enable_sig_alarm computed a wrong value (far in the past)  
for statement_fin_time.  That didn't have any immediate effect, because the  
timeout alarm was set without reference to statement_fin_time; but if we  
subsequently blocked on a lock for a short time, CheckStatementTimeout  
would consult the bogus value when we cancelled the lock timeout wait,  
and then conclude we'd timed out, leading to immediate failure of the  
connection attempt.  Thus an innocent "vacuum full pg_authid" would cause  
failures of concurrent connection attempts.  Noted while testing other,  
more serious consequences of vacuum full on system catalogs.  
  
We should set the statement timestamp before StartTransactionCommand(),  
so that the transaction start timestamp is also valid.  I'm not sure if  
there are any non-cosmetic effects of it not being valid, but the xact  
timestamp is at least sent to the statistics machinery.  
  
Back-patch to 9.0.  Before that, the client authentication timeout was done  
outside any transaction and did not depend on this state to be valid.  

M src/backend/utils/init/postinit.c

Add major features list and introductory text for 9.1 release notes.

commit   : fee4a066b1034e70e185e9dfb0eb6a2cd46dfa68    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 11 Aug 2011 16:36:58 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 11 Aug 2011 16:36:58 -0400    

Click here for diff

Backpatch to 9.1, obviously.  

M doc/src/sgml/release-9.1.sgml

Unbreak legacy syntax "COMMENT ON RULE x IS y", with no relation name.

commit   : a60c16db5f36562df571d36fcacbbed33fd40bd4    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 11 Aug 2011 11:23:51 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 11 Aug 2011 11:23:51 -0400    

Click here for diff

check_object_ownership() isn't happy about the null relation pointer.  
We could fix it there, but this seems more future-proof.  

M src/backend/catalog/objectaddress.c

commit   : 989f530d3f793ed1c990d705d0958bfd2a533b85    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 10 Aug 2011 12:20:45 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 10 Aug 2011 12:20:45 -0400    

Click here for diff

Fix a whole bunch of signal handlers that had been hacked to do things that  
might change errno, without adding the necessary save/restore logic for  
errno.  Also make some minor fixes in unix_latch.c, and clean up bizarre  
and unsafe scheme for disowning the process's latch.  While at it, rename  
the PGPROC latch field to procLatch for consistency with 9.2.  
  
Issues noted while reviewing a patch by Peter Geoghegan.  

M src/backend/access/transam/xlog.c
M src/backend/port/unix_latch.c
M src/backend/replication/syncrep.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/backend/storage/lmgr/proc.c
M src/backend/tcop/postgres.c
M src/include/replication/syncrep.h
M src/include/storage/proc.h

Measure WaitLatch's timeout parameter in milliseconds, not microseconds.

commit   : 74d099494c5853a44188316ba117a8909b299d40    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 18:52:35 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 18:52:35 -0400    

Click here for diff

The original definition had the problem that timeouts exceeding about 2100  
seconds couldn't be specified on 32-bit machines.  Milliseconds seem like  
sufficient resolution, and finer grain than that would be fantasy anyway  
on many platforms.  
  
Back-patch to 9.1 so that this aspect of the latch API won't change between  
9.1 and later releases.  
  
Peter Geoghegan  

M src/backend/access/transam/xlog.c
M src/backend/port/unix_latch.c
M src/backend/port/win32_latch.c
M src/backend/replication/syncrep.c
M src/backend/replication/walsender.c

Documentation improvement and minor code cleanups for the latch facility.

commit   : 6760a4d4029121981bf3ec24847ddfbacecc070d    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 15:30:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 15:30:51 -0400    

Click here for diff

Improve the documentation around weak-memory-ordering risks, and do a pass  
of general editorialization on the comments in the latch code.  Make the  
Windows latch code more like the Unix latch code where feasible; in  
particular provide the same Assert checks in both implementations.  
Fix poorly-placed WaitLatch call in syncrep.c.  
  
This patch resolves, for the moment, concerns around weak-memory-ordering  
bugs in latch-related code: we have documented the restrictions and checked  
that existing calls meet them.  In 9.2 I hope that we will install suitable  
memory barrier instructions in SetLatch/ResetLatch, so that their callers  
don't need to be quite so careful.  

M src/backend/port/unix_latch.c
M src/backend/port/win32_latch.c
M src/backend/replication/syncrep.c
M src/backend/storage/lmgr/proc.c
M src/include/storage/latch.h

Fix nested PlaceHolderVar expressions that appear only in targetlists.

commit   : 028a0c5a2913f18c954845cc014786912f39fa30    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 00:48:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 9 Aug 2011 00:48:58 -0400    

Click here for diff

A PlaceHolderVar's expression might contain another, lower-level  
PlaceHolderVar.  If the outer PlaceHolderVar is used, the inner one  
certainly will be also, and so we have to make sure that both of them get  
into the placeholder_list with correct ph_may_need values during the  
initial pre-scan of the query (before deconstruct_jointree starts).  
We did this correctly for PlaceHolderVars appearing in the query quals,  
but overlooked the issue for those appearing in the top-level targetlist;  
with the result that nested placeholders referenced only in the targetlist  
did not work correctly, as illustrated in bug #6154.  
  
While at it, add some error checking to find_placeholder_info to ensure  
that we don't try to create new placeholders after it's too late to do so;  
they have to all be created before deconstruct_jointree starts.  
  
Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.  

M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/util/placeholder.c
M src/include/optimizer/placeholder.h
M src/include/optimizer/planmain.h
M src/test/regress/expected/join.out
M src/test/regress/sql/join.sql

Add "Compatibility" section to ALTER EXTENSION reference page

commit   : 8956231576f082bd6e75f6c2f1c2a250b919176f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 22:15:38 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 22:15:38 +0300    

Click here for diff

Almost all other pages have one; this one must have been forgotten.  

M doc/src/sgml/ref/alter_extension.sgml

Remove whitespace from end of lines

commit   : 9089628d968e9d60c10acf010e7e4225c7f12c96    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 16:11:55 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 16:11:55 +0300    

Click here for diff

M doc/src/sgml/auth-delay.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/install-windows.sgml
M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/ref/drop_foreign_table.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/sepgsql.sgml

commit   : b689df4ca95c6f62a231d817e22649939a8150c4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 15:51:04 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 15:51:04 +0300    

Click here for diff

For consistency with other man pages.  

M doc/src/sgml/dblink.sgml

Fix a whitespace issue with the man pages

commit   : ad8641d535b46888c2f911a98a9b112771d82af6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 10:49:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 7 Aug 2011 10:49:45 +0300    

Click here for diff

There is what may actually be a mistake in our markup.  The problem is  
in a situation like  
  
<para>  
 <command>FOO</command> is ...  
  
there is strictly speaking a line break before "FOO".  In the HTML  
output, this does not appear to be a problem, but in the man page  
output, this shows up, so you get double blank lines at odd places.  
  
So far, we have attempted to work around this with an XSL hack, but  
that causes other problems, such as creating run-ins in places like  
  
<acronym>SQL</acronym> <command>COPY</command>  
  
So fix the problem properly by removing the extra whitespace.  I only  
fixed the problems that affect the man page output, not all the  
places.  

M doc/src/sgml/dblink.sgml
M doc/src/sgml/ref/abort.sgml
M doc/src/sgml/ref/alter_aggregate.sgml
M doc/src/sgml/ref/alter_collation.sgml
M doc/src/sgml/ref/alter_conversion.sgml
M doc/src/sgml/ref/alter_database.sgml
M doc/src/sgml/ref/alter_default_privileges.sgml
M doc/src/sgml/ref/alter_domain.sgml
M doc/src/sgml/ref/alter_extension.sgml
M doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
M doc/src/sgml/ref/alter_foreign_table.sgml
M doc/src/sgml/ref/alter_function.sgml
M doc/src/sgml/ref/alter_group.sgml
M doc/src/sgml/ref/alter_index.sgml
M doc/src/sgml/ref/alter_operator.sgml
M doc/src/sgml/ref/alter_role.sgml
M doc/src/sgml/ref/alter_sequence.sgml
M doc/src/sgml/ref/alter_server.sgml
M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/alter_tablespace.sgml
M doc/src/sgml/ref/alter_trigger.sgml
M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/alter_user_mapping.sgml
M doc/src/sgml/ref/alter_view.sgml
M doc/src/sgml/ref/begin.sgml
M doc/src/sgml/ref/close.sgml
M doc/src/sgml/ref/cluster.sgml
M doc/src/sgml/ref/clusterdb.sgml
M doc/src/sgml/ref/comment.sgml
M doc/src/sgml/ref/commit.sgml
M doc/src/sgml/ref/commit_prepared.sgml
M doc/src/sgml/ref/copy.sgml
M doc/src/sgml/ref/create_conversion.sgml
M doc/src/sgml/ref/create_domain.sgml
M doc/src/sgml/ref/create_extension.sgml
M doc/src/sgml/ref/create_foreign_data_wrapper.sgml
M doc/src/sgml/ref/create_foreign_table.sgml
M doc/src/sgml/ref/create_function.sgml
M doc/src/sgml/ref/create_index.sgml
M doc/src/sgml/ref/create_language.sgml
M doc/src/sgml/ref/create_operator.sgml
M doc/src/sgml/ref/create_role.sgml
M doc/src/sgml/ref/create_rule.sgml
M doc/src/sgml/ref/create_schema.sgml
M doc/src/sgml/ref/create_sequence.sgml
M doc/src/sgml/ref/create_server.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_table_as.sgml
M doc/src/sgml/ref/create_tablespace.sgml
M doc/src/sgml/ref/create_trigger.sgml
M doc/src/sgml/ref/create_user_mapping.sgml
M doc/src/sgml/ref/createdb.sgml
M doc/src/sgml/ref/declare.sgml
M doc/src/sgml/ref/delete.sgml
M doc/src/sgml/ref/discard.sgml
M doc/src/sgml/ref/do.sgml
M doc/src/sgml/ref/drop_aggregate.sgml
M doc/src/sgml/ref/drop_cast.sgml
M doc/src/sgml/ref/drop_collation.sgml
M doc/src/sgml/ref/drop_conversion.sgml
M doc/src/sgml/ref/drop_domain.sgml
M doc/src/sgml/ref/drop_foreign_data_wrapper.sgml
M doc/src/sgml/ref/drop_foreign_table.sgml
M doc/src/sgml/ref/drop_function.sgml
M doc/src/sgml/ref/drop_index.sgml
M doc/src/sgml/ref/drop_language.sgml
M doc/src/sgml/ref/drop_operator.sgml
M doc/src/sgml/ref/drop_role.sgml
M doc/src/sgml/ref/drop_rule.sgml
M doc/src/sgml/ref/drop_schema.sgml
M doc/src/sgml/ref/drop_sequence.sgml
M doc/src/sgml/ref/drop_server.sgml
M doc/src/sgml/ref/drop_table.sgml
M doc/src/sgml/ref/drop_tablespace.sgml
M doc/src/sgml/ref/drop_trigger.sgml
M doc/src/sgml/ref/drop_type.sgml
M doc/src/sgml/ref/drop_user_mapping.sgml
M doc/src/sgml/ref/drop_view.sgml
M doc/src/sgml/ref/dropdb.sgml
M doc/src/sgml/ref/droplang.sgml
M doc/src/sgml/ref/dropuser.sgml
M doc/src/sgml/ref/ecpg-ref.sgml
M doc/src/sgml/ref/end.sgml
M doc/src/sgml/ref/fetch.sgml
M doc/src/sgml/ref/grant.sgml
M doc/src/sgml/ref/insert.sgml
M doc/src/sgml/ref/listen.sgml
M doc/src/sgml/ref/lock.sgml
M doc/src/sgml/ref/notify.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_restore.sgml
M doc/src/sgml/ref/prepare_transaction.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/ref/reindex.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/reset.sgml
M doc/src/sgml/ref/revoke.sgml
M doc/src/sgml/ref/rollback.sgml
M doc/src/sgml/ref/rollback_prepared.sgml
M doc/src/sgml/ref/rollback_to.sgml
M doc/src/sgml/ref/security_label.sgml
M doc/src/sgml/ref/select.sgml
M doc/src/sgml/ref/select_into.sgml
M doc/src/sgml/ref/set.sgml
M doc/src/sgml/ref/show.sgml
M doc/src/sgml/ref/truncate.sgml
M doc/src/sgml/ref/unlisten.sgml
M doc/src/sgml/ref/update.sgml
M doc/src/sgml/ref/vacuum.sgml
M doc/src/sgml/ref/vacuumdb.sgml
M doc/src/sgml/ref/values.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/stylesheet-man.xsl

Clean up ill-advised attempt to invent a private set of Node tags.

commit   : af0eca1a80e3e3a6fa0ee00df4a7883e4f228d0b    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 6 Aug 2011 14:53:59 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 6 Aug 2011 14:53:59 -0400    

Click here for diff

Somebody thought it'd be cute to invent a set of Node tag numbers that were  
defined independently of, and indeed conflicting with, the main tag-number  
list.  While this accidentally failed to fail so far, it would certainly  
lead to trouble as soon as anyone wanted to, say, apply copyObject to these  
node types.  Clang was already complaining about the use of makeNode on  
these tags, and I think quite rightly so.  Fix by pushing these node  
definitions into the mainstream, including putting replnodes.h where it  
belongs.  

M src/backend/replication/repl_gram.y
M src/backend/replication/walsender.c
M src/include/nodes/nodes.h
R080 src/include/replication/replnodes.h src/include/nodes/replnodes.h
M src/include/replication/basebackup.h

Fix thinko in documentation of local_preload_libraries.

commit   : 34e2ef661b47140594feb4718893b42fc6fc1771    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 5 Aug 2011 21:18:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 5 Aug 2011 21:18:02 -0400    

Click here for diff

Somebody added a cross-reference to shared_preload_libraries, but wrote the  
wrong variable name when they did it (and didn't bother to make it a link  
either).  
  
Spotted by Christoph Anton Mitterer.  

M doc/src/sgml/config.sgml

Reduce PG_SYSLOG_LIMIT to 900 bytes.

commit   : 20b6578bdb4fe40eee7a01674eb077ffdb19d874    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 5 Aug 2011 21:02:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 5 Aug 2011 21:02:31 -0400    

Click here for diff

The previous limit of 1024 was set on the assumption that all modern syslog  
implementations have line length limits of 2KB or so.  However, this is  
false, as at least Solaris and sysklogd truncate at only 1KB.  900 seems  
to leave enough room for the max likely length of the tacked-on prefixes,  
so let's go with that.  
  
As with the previous change, it doesn't seem wise to back-patch this into  
already-released branches; but it should be OK to sneak it into 9.1.  
  
Noah Misch  

M src/backend/utils/error/elog.c

Fix markup for recent wal_level clarification.

commit   : 95245e887858e5b18772387d0ebeba32862e516c    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 4 Aug 2011 15:02:02 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 4 Aug 2011 15:02:02 -0400    

Click here for diff

Backpatch to 9.1 and 9.0.  

M doc/src/sgml/config.sgml

In documentaiton, clarify which commands have reduced WAL volume for wal_level = minimum.

commit   : 857433b80e99e53b2187fd6a58dacaf2181fb8ce    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 4 Aug 2011 12:06:53 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 4 Aug 2011 12:06:53 -0400    

Click here for diff

Backpatch to 9.1 and 9.0.  

M doc/src/sgml/config.sgml

Move CheckRecoveryConflictDeadlock() call to a safer place.

commit   : 1318f1ad775d310fc7ce045603432c0f810dcdbf    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 2 Aug 2011 15:16:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 2 Aug 2011 15:16:37 -0400    

Click here for diff

This kluge was inserted in a spot apparently chosen at random: the lock  
manager's state is not yet fully set up for the wait, and in particular  
LockWaitCancel hasn't been armed by setting lockAwaited, so the ProcLock  
will not get cleaned up if the ereport is thrown.  This seems to not cause  
any observable problem in trivial test cases, because LockReleaseAll will  
silently clean up the debris; but I was able to cause failures with tests  
involving subtransactions.  
  
Fixes breakage induced by commit c85c941470efc44494fd7a5f426ee85fc65c268c.  
Back-patch to all affected branches.  

M src/backend/storage/ipc/standby.c
M src/backend/storage/lmgr/lock.c
M src/backend/storage/lmgr/proc.c
M src/include/storage/standby.h

Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId.

commit   : 0dd6a09e3d127e728b9f43cfaf19e5351f60a096    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 2 Aug 2011 13:24:00 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 2 Aug 2011 13:24:00 -0400    

Click here for diff

It was initialized in the wrong place and to the wrong value.  With bad  
luck this could result in incorrect query-cancellation failures in hot  
standby sessions, should a HS backend be holding pin on buffer number 1  
while trying to acquire a lock.  

M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/lmgr/proc.c
M src/include/storage/proc.h

Avoid integer overflow when LIMIT + OFFSET >= 2^63.

commit   : bc6616aaedbe4bcd2441334a3bf8f43fe9635bf1    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 2 Aug 2011 10:47:17 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 2 Aug 2011 10:47:17 +0300    

Click here for diff

This fixes bug #6139 reported by Hitoshi Harada.  

M src/backend/executor/nodeLimit.c

Add host name resolution information to pg_hba.conf error messages

commit   : c1b910ed189a04c199fc1fb146262053827b524f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 31 Jul 2011 18:03:43 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 31 Jul 2011 18:03:43 +0300    

Click here for diff

This is to be able to analyze issues with host names in pg_hba.conf.  

M src/backend/libpq/auth.c

Fix pg_update to properly test for the data directory's existence on Win32.

commit   : 4d2d5b8196c774a1ac23cd7e7567e8bbd589b6aa    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 30 Jul 2011 01:50:19 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 30 Jul 2011 01:50:19 -0400    

Click here for diff

Backpatch to 9.1.  

M contrib/pg_upgrade/exec.c

Fix pg_restore's direct-to-database mode for standard_conforming_strings.

commit   : 4798aa5b09d8da9a221da4b91e92f1683174ad1e    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 28 Jul 2011 14:07:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 28 Jul 2011 14:07:04 -0400    

Click here for diff

pg_backup_db.c contained a mini SQL lexer with which it tried to identify  
boundaries between SQL commands, but that code was not designed to cope  
with standard_conforming_strings, and would get the wrong answer if a  
backslash immediately precedes a closing single quote in such a string,  
as per report from Julian Mehnle.  The bug only affects direct-to-database  
restores from archive files made with standard_conforming_strings = on.  
  
Rather than complicating the code some more to try to fix that, let's just  
rip it all out.  The only reason it was needed was to cope with COPY data  
embedded into ordinary archive entries, which was a layout that was used  
only for about the first three weeks of the archive format's existence,  
and never in any production release of pg_dump.  Instead, just rely on the  
archive file layout to tell us whether we're printing COPY data or not.  
  
This bug represents a data corruption hazard in all releases in which  
standard_conforming_strings can be turned on, ie 8.2 and later, so  
back-patch to all supported branches.  

M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h
M src/bin/pg_dump/pg_backup_db.c
M src/bin/pg_dump/pg_backup_db.h

Minor message style adjustment

commit   : 42221b597eac30f06f1f49375538072985d3b59b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 27 Jul 2011 23:54:46 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 27 Jul 2011 23:54:46 +0300    

Click here for diff

M src/backend/storage/lmgr/predicate.c

Fix typo.

commit   : 0b624d64a1fc7d8ecd031d4aaac368699fca3dc4    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 27 Jul 2011 11:20:07 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 27 Jul 2011 11:20:07 -0400    

Click here for diff

Noted by Josh Kupershmidt.  

M doc/src/sgml/ref/comment.sgml

Add missing newlines at end of error messages

commit   : 14e109e82e8a7a179ad828ec1ed06ac0a8cd011a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 26 Jul 2011 23:27:40 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 26 Jul 2011 23:27:40 +0300    

Click here for diff

M src/bin/psql/command.c
M src/bin/psql/common.c

Clarify which relkinds accept column comments.

commit   : d94eb49634fff6abc72bed577269aa21fd9f01e9    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 26 Jul 2011 09:34:55 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 26 Jul 2011 09:34:55 -0400    

Click here for diff

Per discussion with Josh Kupershmidt.  

M doc/src/sgml/ref/comment.sgml

Don't build replacement getpeereid function on mingw.

commit   : 5c70cc890dfadb4579c8e96c4b27cce285e75cfc    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Jul 2011 23:46:52 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Jul 2011 23:46:52 -0400    

Click here for diff

Windows doesn't have Unix sockets, so it's not needed, and moreover causes compile warnings.  

M configure
M configure.in

Improvements to SQL/MED documentation.

commit   : cd28f09577667b4bfe36c4c41c786b0f69949bd1    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Jul 2011 09:37:06 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Jul 2011 09:37:06 -0400    

Click here for diff

Laurenz Albe, somewhat modified by me.  

M doc/src/sgml/ddl.sgml
M doc/src/sgml/fdwhandler.sgml

Fix previous patch so it also works if not USE_SSL (mea culpa).

commit   : 2ae6075b59696f044d15c9f1b60a800407471b62    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 23:29:10 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 23:29:10 -0400    

Click here for diff

On balance, the need to cover this case changes my mind in favor of pushing  
all error-message generation duties into the two fe-secure.c routines.  
So do it that way.  

M src/interfaces/libpq/fe-misc.c
M src/interfaces/libpq/fe-secure.c

Improve libpq's error reporting for SSL failures.

commit   : f9d466e53036b9bb4e075ebde754b90008cf80b2    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 16:29:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 16:29:13 -0400    

Click here for diff

In many cases, pqsecure_read/pqsecure_write set up useful error messages,  
which were then overwritten with useless ones by their callers.  Fix this  
by defining the responsibility to set an error message to be entirely that  
of the lower-level function when using SSL.  
  
Back-patch to 8.3; the code is too different in 8.2 to be worth the  
trouble.  

M src/interfaces/libpq/fe-misc.c
M src/interfaces/libpq/fe-secure.c

Use OpenSSL's SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag.

commit   : f9c0547aa205148cc62b692a99fde8c3f62bd058    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 15:17:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 24 Jul 2011 15:17:56 -0400    

Click here for diff

This disables an entirely unnecessary "sanity check" that causes failures  
in nonblocking mode, because OpenSSL complains if we move or compact the  
write buffer.  The only actual requirement is that we not modify pending  
data once we've attempted to send it, which we don't.  Per testing and  
research by Martin Pihlak, though this fix is a lot simpler than his patch.  
  
I put the same change into the backend, although it's less clear whether  
it's necessary there.  We do use nonblock mode in some situations in  
streaming replication, so seems best to keep the same behavior in the  
backend as in libpq.  
  
Back-patch to all supported releases.  

M src/backend/libpq/be-secure.c
M src/interfaces/libpq/fe-secure.c

In pg_upgrade on Windows, check if the directory is writable by actually creating and removing a file because access() doesn't work on that platform.

commit   : 7f4c34739b183b5cf4e9141e3b2e09b99bf7cbad    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 24 Jul 2011 01:43:01 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 24 Jul 2011 01:43:01 -0400    

Click here for diff

Backpatch to 9.1 where this check was added.  

M contrib/pg_upgrade/exec.c

Unbreak Windows builds broken by EDITOR_LINENUMBER_ARG change.

commit   : 552a5c73e08b74968a5f1591c5f09dc8f519a173    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sat, 23 Jul 2011 19:33:04 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sat, 23 Jul 2011 19:33:04 -0400    

Click here for diff

M src/bin/psql/command.c

Change EDITOR_LINENUMBER_SWITCH to an environment variable

commit   : 70a488878f97eeec09356054fc161b9f8e914257    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 24 Jul 2011 00:25:29 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 24 Jul 2011 00:25:29 +0300    

Click here for diff

Also change "switch" to "arg" because "switch" is a bit of a sloppy  
term.  So the environment variable is called  
PSQL_EDITOR_LINENUMBER_ARG.  Set "+" as hardcoded default value on  
Unix (since "vi" is the hardcoded default editor), so many users won't  
have to configure this at all.  Move the documentation around a bit to  
centralize the editor configuration under environment variables,  
rather than repeating bits of it under every backslash command that  
invokes an editor.  

M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/release-9.1.sgml
M src/bin/psql/command.c
M src/bin/psql/settings.h

Rethink behavior of CREATE OR REPLACE during CREATE EXTENSION.

commit   : eb15f26d577a11319b9429fb84f752a0135918db    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Jul 2011 16:59:49 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Jul 2011 16:59:49 -0400    

Click here for diff

The original implementation simply did nothing when replacing an existing  
object during CREATE EXTENSION.  The folly of this was exposed by a report  
from Marc Munro: if the existing object belongs to another extension, we  
are left in an inconsistent state.  We should insist that the object does  
not belong to another extension, and then add it to the current extension  
if not already a member.  

M src/backend/catalog/heap.c
M src/backend/catalog/pg_collation.c
M src/backend/catalog/pg_conversion.c
M src/backend/catalog/pg_depend.c
M src/backend/catalog/pg_namespace.c
M src/backend/catalog/pg_operator.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_type.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/proclang.c
M src/backend/commands/tsearchcmds.c
M src/include/catalog/dependency.h

Unbreak unlogged tables.

commit   : 16a6a70ea37be76b7c3757503defbbd05d2acdf1    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 22 Jul 2011 16:15:43 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 22 Jul 2011 16:15:43 -0400    

Click here for diff

I broke this in commit 5da79169d3e9f0fab47da03318c44075b3f824c5, which  
was obviously insufficiently well tested.  Add some regression tests  
in the hope of making future slip-ups more likely to be noticed.  

M src/backend/catalog/namespace.c
M src/test/regress/expected/create_table.out
M src/test/regress/sql/create_table.sql

Fix PQsetvalue() to avoid possible crash when adding a new tuple.

commit   : 64207122a241282189451fdcbab3f5e2a6e1e1b1    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 21 Jul 2011 12:24:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 21 Jul 2011 12:24:14 -0400    

Click here for diff

PQsetvalue unnecessarily duplicated the logic in pqAddTuple, and didn't  
duplicate it exactly either --- pqAddTuple does not care what is in the  
tuple-pointer array positions beyond the last valid entry, whereas the  
code in PQsetvalue assumed such positions would contain NULL.  This led  
to possible crashes if PQsetvalue was applied to a PGresult that had  
previously been enlarged with pqAddTuple, for instance one built from a  
server query.  Fix by relying on pqAddTuple instead of duplicating logic,  
and not assuming anything about the contents of res->tuples[res->ntups].  
  
Back-patch to 8.4, where PQsetvalue was introduced.  
  
Andrew Chernow  

M src/interfaces/libpq/fe-exec.c

In pg_upgrade, fix the -l/log option to work on Windows.

commit   : c3810795e99ee20181884e62d925f5ac910f0b8b    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Jul 2011 18:31:07 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Jul 2011 18:31:07 -0400    

Click here for diff

Also, double-quote the log file name in all places, to allow (on all  
platforms) log file names with spaces.  
  
Back patch to 9.0 and 9.1.  

M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/server.c

Improve sepgsql and SECURITY LABEL documentation.

commit   : 1879cf3f173639de8235fb50be42abbbf672646b    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Jul 2011 09:22:57 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Jul 2011 09:22:57 -0400    

Click here for diff

KaiGai Kohei, based on feedback from Yeb Havinga, with some  
corrections by me.  

M doc/src/sgml/ref/security_label.sgml
M doc/src/sgml/sepgsql.sgml

Minor improvement to pg_seclabel documentation.

commit   : aa47101338aa05cfec1fc00f0df0eb2bd04f149a    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Jul 2011 09:12:42 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Jul 2011 09:12:42 -0400    

Click here for diff

This is a bit more consistent with the way pg_description is  
documented, and also include a useful cross-link.  

M doc/src/sgml/catalogs.sgml

Fix typo

commit   : 2011712a5aced8a359d46b6815fd8656577230cb    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Jul 2011 08:02:34 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Jul 2011 08:02:34 +0300    

Click here for diff

M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.linux.utf8.sql
M src/test/regress/sql/collate.sql

Change debug message from ereport to elog

commit   : e4ce3b777586ddc0f9e351509a1daddb482190b2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Jul 2011 07:50:10 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Jul 2011 07:50:10 +0300    

Click here for diff

M src/backend/storage/file/reinit.c

Adapted expected result for latest change to ecpglib.

commit   : 826fe721b2eb7d41c733df3fa654fc992b3d80d6    
  
author   : Michael Meskes <[email protected]>    
date     : Mon, 18 Jul 2011 18:56:15 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Mon, 18 Jul 2011 18:56:15 +0200    

Click here for diff

M src/interfaces/ecpg/test/expected/compat_informix-rnull.stderr

Made ecpglib write double with a precision of 15 digits.

commit   : 40922b69c404ac9e0c9802fe973f5297b8808f0c    
  
author   : Michael Meskes <[email protected]>    
date     : Mon, 18 Jul 2011 16:25:27 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Mon, 18 Jul 2011 16:25:27 +0200    

Click here for diff

Patch originally by Akira Kurosawa <[email protected]>.  

M src/interfaces/ecpg/ecpglib/execute.c

Remove claim that the project is not represented in the SQL working group

commit   : 548d197ca751895ec6acbaee611c287ce1d6fe47    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 18 Jul 2011 07:30:00 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 18 Jul 2011 07:30:00 +0300    

Click here for diff

We have a few people involved there now.  

M doc/src/sgml/features.sgml

Note that information_schema.sql_languages was removed in SQL:2008

commit   : b17648bc6e1dbb8c717c70129b4774310d6804ab    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 18 Jul 2011 07:26:30 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 18 Jul 2011 07:26:30 +0300    

Click here for diff

M doc/src/sgml/information_schema.sgml

Replace errdetail("%s", ...) with errdetail_internal("%s", ...).

commit   : fbd847a5877444f098cdbf270b967f8010a48838    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 14:21:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 14:21:24 -0400    

Click here for diff

There may be some other places where we should use errdetail_internal,  
but they'll have to be evaluated case-by-case.  This commit just hits  
a bunch of places where invoking gettext is obviously a waste of cycles.  

M contrib/dblink/dblink.c
M src/backend/commands/trigger.c
M src/backend/commands/user.c
M src/backend/libpq/auth.c
M src/backend/nodes/print.c
M src/backend/storage/lmgr/deadlock.c
M src/backend/tcop/postgres.c
M src/backend/utils/adt/xml.c
M src/backend/utils/fmgr/dfmgr.c
M src/backend/utils/misc/guc.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpython/plpython.c

Use errdetail_internal() for SSI transaction cancellation details.

commit   : 3b41d490bb4225ff0398900f566b1e4c728eff05    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 13:49:44 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 13:49:44 -0400    

Click here for diff

Per discussion, these seem too technical to be worth translating.  
  
Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Add an errdetail_internal() ereport auxiliary routine.

commit   : 657836741410563be35180ba34adcdae6c767ce5    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 13:41:48 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Jul 2011 13:41:48 -0400    

Click here for diff

This function supports untranslated detail messages, in the same way that  
errmsg_internal supports untranslated primary messages.  We've needed this  
for some time IMO, but discussion of some cases in the SSI code provided  
the impetus to actually add it.  
  
Kevin Grittner, with minor adjustments by me  

M doc/src/sgml/sources.sgml
M src/backend/utils/error/elog.c
M src/include/utils/elog.h

Fix SSPI login when multiple roundtrips are required

commit   : 885604d112d5b20d94e2d5d8b352d47a6e585ceb    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 16 Jul 2011 19:58:53 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 16 Jul 2011 19:58:53 +0200    

Click here for diff

This fixes SSPI login failures showing "The function  
requested is not supported", often showing up when connecting  
to localhost. The reason was not properly updating the SSPI  
handle when multiple roundtrips were required to complete the  
authentication sequence.  
  
Report and analysis by Ahmed Shinwari, patch by Magnus Hagander  

M src/backend/libpq/auth.c

Fix two ancient bugs in GiST code to re-find a parent after page split:

commit   : f844022a0953ab013055fc68bd3ec34f504a6115    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Jul 2011 10:54:56 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Jul 2011 10:54:56 +0300    

Click here for diff

First, when following a right-link, we incorrectly marked the current page  
as the parent of the right sibling. In reality, the parent of the right page  
is the same as the parent of the current page (or some page to the right of  
it, gistFindCorrectParent() will sort that out).  
  
Secondly, when we follow a right-link, we must prepend, not append, the right  
page to our list of pages to visit. That's because we assume that once we  
hit a leaf page in the list, all the rest are leaf pages too, and give up.  
  
To hit these bugs, you need concurrent actions and several unlucky accidents.  
Another backend must split the root page, while you're in process of  
splitting a lower-level page. Furthermore, while you scan the internal nodes  
to re-find the parent, another backend needs to again split some more internal  
pages. Even then, the bugs don't necessarily manifest as user-visible errors  
or index corruption.  
  
While we're at it, make the error reporting a bit better if gistFindPath()  
fails to re-find the parent. It used to be an assertion, but an elog() seems  
more appropriate.  
  
Backpatch to all supported branches.  

M src/backend/access/gist/gist.c

In planner, don't assume that empty parent tables aren't really empty.

commit   : cf82452855b76611b73ab8d4dde75f1758d8bf28    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 14 Jul 2011 17:30:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 14 Jul 2011 17:30:57 -0400    

Click here for diff

There's a heuristic in estimate_rel_size() to clamp the minimum size  
estimate for a table to 10 pages, unless we can see that vacuum or analyze  
has been run (and set relpages to something nonzero, so this will always  
happen for a table that's actually empty).  However, it would be better  
not to do this for inheritance parent tables, which very commonly are  
really empty and can be expected to stay that way.  Per discussion of a  
recent pgsql-performance report from Anish Kejariwal.  Also prevent it  
from happening for indexes (although this is more in the nature of  
documentation, since CREATE INDEX normally initializes relpages to  
something nonzero anyway).  
  
Back-patch to 9.0, because the ability to collect statistics across a  
whole inheritance tree has improved the planner's estimates to the point  
where this relatively small error makes a significant difference.  In the  
referenced report, merge or hash joins were incorrectly estimated as  
cheaper than a nestloop with inner indexscan on the inherited table.  
That was less likely before 9.0 because the lack of inherited stats would  
have resulted in a default (and rather pessimistic) estimate of the cost  
of a merge or hash join.  

M src/backend/optimizer/util/plancat.c

Small update on suggested startup file locations

commit   : a3678ab2147fad8e64ea5198a545fb902e6d65f4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Jul 2011 19:07:39 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Jul 2011 19:07:39 +0300    

Click here for diff

Debian/Ubuntu don't have a /etc/rc.d/ directory, so add some  
alternative names as suggestions.  

M doc/src/sgml/runtime.sgml

Remove README.mb.big5 and README.mb.jp

commit   : a5e3c182c8ff23c60a629631160e07f9f4710f63    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Jul 2011 18:28:07 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Jul 2011 18:28:07 +0300    

Click here for diff

They were wildly outdated.  

D doc/README.mb.big5
D doc/README.mb.jp

commit   : 699a1c65eda557ff847c8da83c615b03f6f74265    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Jul 2011 01:30:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Jul 2011 01:30:35 +0300    

Click here for diff

M doc/src/sgml/information_schema.sgml

Avoid listing ungrouped Vars in the targetlist of Agg-underneath-Window.

commit   : b61b28fbe8147b003550548b4976977252ee39b3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 12 Jul 2011 18:24:53 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 12 Jul 2011 18:24:53 -0400    

Click here for diff

Regular aggregate functions in combination with, or within the arguments  
of, window functions are OK per spec; they have the semantics that the  
aggregate output rows are computed and then we run the window functions  
over that row set.  (Thus, this combination is not really useful unless  
there's a GROUP BY so that more than one aggregate output row is possible.)  
The case without GROUP BY could fail, as recently reported by Jeff Davis,  
because sloppy construction of the Agg node's targetlist resulted in extra  
references to possibly-ungrouped Vars appearing outside the aggregate  
function calls themselves.  See the added regression test case for an  
example.  
  
Fixing this requires modifying the API of flatten_tlist and its underlying  
function pull_var_clause.  I chose to make pull_var_clause's API for  
aggregates identical to what it was already doing for placeholders, since  
the useful behaviors turn out to be the same (error, report node as-is, or  
recurse into it).  I also tightened the error checking in this area a bit:  
if it was ever valid to see an uplevel Var, Aggref, or PlaceHolderVar here,  
that was a long time ago, so complain instead of ignoring them.  
  
Backpatch into 9.1.  The failure exists in 8.4 and 9.0 as well, but seeing  
that it only occurs in a basically-useless corner case, it doesn't seem  
worth the risks of changing a function API in a minor release.  There might  
be third-party code using pull_var_clause.  

M src/backend/catalog/heap.c
M src/backend/commands/trigger.c
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/placeholder.c
M src/backend/optimizer/util/tlist.c
M src/backend/optimizer/util/var.c
M src/backend/utils/adt/selfuncs.c
M src/include/optimizer/clauses.h
M src/include/optimizer/tlist.h
M src/include/optimizer/var.h
M src/test/regress/expected/window.out
M src/test/regress/sql/window.sql

Fix another oversight in logging of changes in postgresql.conf settings.

commit   : 7c884433992cce9f53d87ca3a5d0d629e21af300    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Jul 2011 17:03:06 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Jul 2011 17:03:06 -0400    

Click here for diff

We were using GetConfigOption to collect the old value of each setting,  
overlooking the possibility that it didn't exist yet.  This does happen  
in the case of adding a new entry within a custom variable class, as  
exhibited in bug #6097 from Maxim Boguk.  
  
To fix, add a missing_ok parameter to GetConfigOption, but only in 9.1  
and HEAD --- it seems possible that some third-party code is using that  
function, so changing its API in a minor release would cause problems.  
In 9.0, create a near-duplicate function instead.  

M src/backend/commands/extension.c
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/include/utils/guc.h

Fix one overflow and one signedness error, caused by the patch to calculate OLDSERXID_MAX_PAGE based on BLCKSZ. MSVC compiler warned about these.

commit   : ec194651b8ba36e9ad5f7c98ac77c4d9639e2351    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 8 Jul 2011 17:28:27 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 8 Jul 2011 17:28:27 +0300    

Click here for diff

M src/backend/storage/lmgr/predicate.c

Add item about Clang support to 9.1 release notes

commit   : ebea4c531c9edac6fd35519b90d83044ae6e448e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 8 Jul 2011 17:04:49 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 8 Jul 2011 17:04:49 +0300    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Message style improvements

commit   : 0a5b01a716ef72d1711dbfc4dc9617b7f5e867dc    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 8 Jul 2011 07:37:04 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 8 Jul 2011 07:37:04 +0300    

Click here for diff

M doc/src/sgml/func.sgml
M src/backend/commands/alter.c
M src/backend/replication/basebackup.c
M src/backend/replication/walsender.c
M src/backend/utils/adt/varlena.c
M src/test/regress/expected/text.out

Tag 9.1beta3.

commit   : 6c76524620d6cca3d667dc16fe65713a107f18c1    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 20:12:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 20:12:33 -0400    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32

commit   : 3e80d0d2e5a0f6a7a971ddcb6e38cc8f0079aed7    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 19:34:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 19:34:24 -0400    

Click here for diff

In the example for decode(), show the bytea result in hex format,  
since that's now the default.  Use an E'' string in the example for  
quote_literal(), so that it works regardless of the  
standard_conforming_strings setting.  On the functions-for-binary-strings  
page, leave the examples as-is for readability, but add a note pointing out  
that they are shown in escape format.  Per comments from Thom Brown.  
  
Also, improve the description for encode() and decode() a tad.  
  
Backpatch to 9.0, where bytea_output was introduced.  

M doc/src/sgml/func.sgml

Update 9.1 release notes to reflect commits through today.

commit   : 4eb4b4013d27eaa8bcbd089ce7a20f4bcb2556f3    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 17:55:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 17:55:14 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

There's a small window wherein a transaction is committed but not yet on the finished list, and we shouldn't flag it as a potential conflict if so. We can also skip adding a doomed transaction to the list of possible conflicts because we know it won't commit.

commit   : 9b47c67ccde6ec91219ad4aba515a48c136f9568    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 8 Jul 2011 00:36:30 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 8 Jul 2011 00:36:30 +0300    

Click here for diff

Dan Ports and Kevin Grittner.  

M src/backend/storage/lmgr/predicate.c

SSI has a race condition, where the order of commit sequence numbers of transactions might not match the order the work done in those transactions become visible to others. The logic in SSI, however, assumed that it does. Fix that by having two sequence numbers for each serializable transaction, one taken before a transaction becomes visible to others, and one after it. This is easier than trying to make the the transition totally atomic, which would require holding ProcArrayLock and SerializableXactHashLock at the same time. By using prepareSeqNo instead of commitSeqNo in a few places where commit sequence numbers are compared, we can make those comparisons err on the safe side when we don't know for sure which committed first.

commit   : fdf8f751e7933c7992cdabc4b8f37d25268f192e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 7 Jul 2011 22:35:09 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 7 Jul 2011 22:35:09 +0300    

Click here for diff

Per analysis by Kevin Grittner and Dan Ports, but this approach to fix it  
is different from the original patch.  

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Fix use of unportable %m format

commit   : 469345e1e3ae32c8c3c694f9a47cc6edccc5a274    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 7 Jul 2011 21:21:57 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 7 Jul 2011 21:21:57 +0300    

Click here for diff

M contrib/pg_upgrade/file.c

commit   : db43ec43cc4ea68a45ee3364488285edbd790893    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 15:10:32 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 15:10:32 -0400    

Click here for diff

Per discussion, this structure seems more understandable than what was  
there before.  Make config.sgml and postgresql.conf.sample agree.  
  
In passing do a bit of editorial work on the variable descriptions.  

M doc/src/sgml/config.sgml
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/utils/guc_tables.h

Adjust OLDSERXID_MAX_PAGE based on BLCKSZ.

commit   : a392b5247870da806e511ae2aadb0464509f7afe    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 7 Jul 2011 15:05:21 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 7 Jul 2011 15:05:21 -0400    

Click here for diff

The value when BLCKSZ = 8192 is unchanged, but with larger-than-normal  
block sizes we might need to crank things back a bit, as we'll have  
more entries per page than normal in that case.  
  
Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Finish disabling reduced-lock-levels-for-DDL feature.

commit   : ec1339ea5cb591da53ad7584ffc29e120f6bf74f    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 13:14:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Jul 2011 13:14:46 -0400    

Click here for diff

Previous patch only covered the ALTER TABLE changes, not changes in other  
commands; and it neglected to revert the documentation changes.  

M doc/src/sgml/mvcc.sgml
M src/backend/commands/tablecmds.c
M src/backend/commands/trigger.c
M src/backend/rewrite/rewriteDefine.c

Fix a bug with SSI and prepared transactions:

commit   : 046d52f7d319419d338fa605f9d6e00b21c5c5ff    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 7 Jul 2011 18:04:37 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 7 Jul 2011 18:04:37 +0300    

Click here for diff

If there's a dangerous structure T0 ---> T1 ---> T2, and T2 commits first,  
we need to abort something. If T2 commits before both conflicts appear,  
then it should be caught by OnConflict_CheckForSerializationFailure. If  
both conflicts appear before T2 commits, it should be caught by  
PreCommit_CheckForSerializationFailure. But that is actually run when  
T2 *prepares*. Fix that in OnConflict_CheckForSerializationFailure, by  
treating a prepared T2 as if it committed already.  
  
This is mostly a problem for prepared transactions, which are in prepared  
state for some time, but also for regular transactions because they also go  
through the prepared state in the SSI code for a short moment when they're  
committed.  
  
Kevin Grittner and Dan Ports  

M src/backend/storage/lmgr/predicate.c
M src/test/regress/expected/prepared_xacts.out
M src/test/regress/expected/prepared_xacts_1.out
M src/test/regress/sql/prepared_xacts.sql

Remove assumptions that not-equals operators cannot be in any opclass.

commit   : cb1cc305bc349338f75a549c36041b4c91cf779f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 6 Jul 2011 14:53:16 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 6 Jul 2011 14:53:16 -0400    

Click here for diff

get_op_btree_interpretation assumed this in order to save some duplication  
of code, but it's not true in general anymore because we added <> support  
to btree_gist.  (We still assume it for btree opclasses, though.)  
  
Also, essentially the same logic was baked into predtest.c.  Get rid of  
that duplication by generalizing get_op_btree_interpretation so that it  
can be used by predtest.c.  
  
Per bug report from Denis de Bernardy and investigation by Jeff Davis,  
though I didn't use Jeff's patch exactly as-is.  
  
Back-patch to 9.1; we do not support this usage before that.  

M src/backend/optimizer/util/predtest.c
M src/backend/parser/parse_expr.c
M src/backend/utils/cache/lsyscache.c
M src/include/utils/lsyscache.h

Make the file_fdw validator check that a filename option has been provided.

commit   : f8bd267d35503109255c99eae96c86ba8ba1b56f    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 18:46:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 18:46:03 -0400    

Click here for diff

This was already a runtime failure condition, but it's better to check  
at validation time if possible.  Lightly modified version of a patch  
by Shigeru Hanada.  

M contrib/file_fdw/file_fdw.c
M contrib/file_fdw/input/file_fdw.source
M contrib/file_fdw/output/file_fdw.source

Call FDW validator functions even when the options list is empty.

commit   : c639d240c00f8d2b6684c03597b30d179d4ab31c    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 18:21:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 18:21:12 -0400    

Click here for diff

This is useful since a validator might want to require certain options  
to be provided.  The passed array is an empty text array in this case.  
  
Per suggestion by Laurenz Albe, though this is not quite his patch.  

M src/backend/commands/foreigncmds.c

Message style improvements of errmsg_internal() calls

commit   : 457333d5c2f95e9448a2366dab55aab74514295c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 22:56:55 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 22:56:55 +0300    

Click here for diff

M src/backend/libpq/auth.c
M src/backend/libpq/be-secure.c
M src/backend/port/pipe.c
M src/backend/port/win32/signal.c
M src/backend/port/win32/socket.c
M src/backend/port/win32/timer.c
M src/backend/postmaster/postmaster.c

Restructure foreign data wrapper chapter so it has more than one section.

commit   : 10323f3a592922bce75bc5c38589f0f3427ef232    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 15:54:00 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 15:54:00 -0400    

Click here for diff

As noted by Laurenz Albe, our SGML tools deal rather oddly with chapters  
having just one <sect1>.  Perhaps the tooling could be fixed, but really  
the design of this chapter's introduction is pretty bogus anyhow.  Split  
it into a true introduction and a <sect1> about the FDW functions, so  
that it reads better and dodges the lack-of-a-chapter-TOC problem.  

M doc/src/sgml/fdwhandler.sgml

Postgres -> PostgreSQL in error message

commit   : c2fe8e70b270ffc8641380e6a16f5824164ce23e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 22:32:12 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 22:32:12 +0300    

Click here for diff

M contrib/pg_upgrade/controldata.c

Improve documentation about foreign data wrapper validator functions.

commit   : 8b6c89ad13921c7f24e205425f91f6ffda06235a    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 15:38:18 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 15:38:18 -0400    

Click here for diff

Modified version of a patch by Shigeru Hanada.  

M doc/src/sgml/fdwhandler.sgml

Fix psql's counting of script file line numbers during COPY.

commit   : 2683a6340de9bda16b436b6d641ea63607ef1009    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 12:04:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Jul 2011 12:04:40 -0400    

Click here for diff

handleCopyIn incremented pset.lineno for each line of COPY data read from  
a file.  This is correct when reading from the current script file (i.e.,  
we are doing COPY FROM STDIN followed by in-line data), but it's wrong if  
the data is coming from some other file.  Per bug #6083 from Steve Haslam.  
Back-patch to all supported versions.  

M src/bin/psql/copy.c

Fix typo in sslmode documentation

commit   : eb9ca35fbd4fe3b5c6d3dbe006863bd1199c2db2    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 5 Jul 2011 09:45:19 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 5 Jul 2011 09:45:19 +0200    

Click here for diff

Per bug #6089, noted by Sidney Cadot  

M doc/src/sgml/libpq.sgml

Message style tweaks

commit   : 06f04b6dc41354d1eada7b68bab339c908fc97eb    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 00:01:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 00:01:35 +0300    

Click here for diff

M src/backend/commands/tablecmds.c
M src/backend/parser/parse_utilcmd.c
M src/backend/port/win32/crashdump.c
M src/backend/storage/lmgr/predicate.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/misc/guc.c
M src/test/regress/expected/foreign_data.out
M src/test/regress/expected/text.out
M src/test/regress/sql/foreign_data.sql

Small documentation tweaks

commit   : 413ed2556f7ea21aa7c9d6fe28225455f0e5eac3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 00:00:14 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 5 Jul 2011 00:00:14 +0300    

Click here for diff

M doc/src/sgml/config.sgml

Clarify that you need ActiveState perl 5.8 *or later* to build on Windows.

commit   : c33acb4f0ae0371a6ee8772d965d13a373cdd7cc    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 4 Jul 2011 22:30:27 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 4 Jul 2011 22:30:27 +0300    

Click here for diff

M doc/src/sgml/install-windows.sgml

Back-patch Fix bat file quoting of %ENV from commit 19b7fac8.

commit   : ffc50e134a7e67bc48bf512a4bb681d46cc1fe31    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 4 Jul 2011 10:44:07 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 4 Jul 2011 10:44:07 -0400    

Click here for diff

M src/tools/msvc/install.bat
M src/tools/msvc/pgbison.bat
M src/tools/msvc/pgflex.bat

Alter test results to comply with new ALTER TABLE behaviour.

commit   : 677f146307a95f862c0c7b51819c79a00af61f95    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 4 Jul 2011 11:11:03 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 4 Jul 2011 11:11:03 +0100    

Click here for diff

M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Reset ALTER TABLE lock levels to AccessExclusiveLock in all cases. Locks on inheritance parent remain at lower level, as they were before. Remove entry from 9.1 release notes.

commit   : 1f7056099728035b55efcd8f889c7b705a68b6de    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 4 Jul 2011 09:30:50 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 4 Jul 2011 09:30:50 +0100    

Click here for diff

M doc/src/sgml/release-9.1.sgml
M src/backend/commands/tablecmds.c

Fix omissions in documentation of the pg_roles view.

commit   : 3569e02c98d2802e6fc4912a3ba67dc25e76b6cc    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 22:12:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 22:12:20 -0400    

Click here for diff

Somehow, column rolconfig got removed from the documentation of the  
pg_roles view in the 9.0 cycle, although the column is actually still  
there.  In 9.1, we'd also forgotten to document the rolreplication column.  
Spotted by Sakamoto Masahiko.  

M doc/src/sgml/catalogs.sgml

Put comments on the installable procedural languages.

commit   : 80d772233760f48119e46d454eae08f58ff1a7f1    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 19:03:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 19:03:51 -0400    

Click here for diff

Per suggestion from Josh Kupershmidt.  

M src/pl/plperl/plperl–1.0.sql
M src/pl/plperl/plperlu–1.0.sql
M src/pl/plpgsql/src/plpgsql–1.0.sql
M src/pl/plpython/plpython2u–1.0.sql
M src/pl/plpython/plpython3u–1.0.sql
M src/pl/plpython/plpythonu–1.0.sql
M src/pl/tcl/pltcl–1.0.sql
M src/pl/tcl/pltclu–1.0.sql

Fix bugs in relpersistence handling during table creation.

commit   : 2b9bb6979df9a742243647b6a368125f5ddf496e    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 3 Jul 2011 17:34:47 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 3 Jul 2011 17:34:47 -0400    

Click here for diff

Unlike the relistemp field which it replaced, relpersistence must be  
set correctly quite early during the table creation process, as we  
rely on it quite early on for a number of purposes, including security  
checks.  Normally, this is set based on whether the user enters CREATE  
TABLE, CREATE UNLOGGED TABLE, or CREATE TEMPORARY TABLE, but a  
relation may also be made implicitly temporary by creating it in  
pg_temp.  This patch fixes the handling of that case, and also  
disables creation of unlogged tables in temporary tablespace (such  
table indeed skip WAL-logging, but we reject an explicit  
specification) and creation of relations in the temporary schemas of  
other sessions (which is not very sensible, and didn't work right  
anyway).  
  
Report by Amit Khandekar.  

M src/backend/catalog/namespace.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/executor/execMain.c
M src/backend/parser/parse_utilcmd.c
M src/include/catalog/namespace.h
M src/test/regress/expected/create_view.out

Make distprep and *clean build targets recurse into all subdirectories.

commit   : ffd3f13fab9579c1460d7100a16809a3159e6504    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 13:55:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 3 Jul 2011 13:55:02 -0400    

Click here for diff

Certain subdirectories do not get built if corresponding options are not  
selected at configure time.  However, "make distprep" should visit such  
directories anyway, so that constructing derived files to be included in  
the tarball happens without requiring all configure options to be given  
in the tarball build script.  Likewise, it's better if cleanup actions  
unconditionally visit all directories (for example, this ensures proper  
cleanup if someone has done a manual make in such a subdirectory).  
  
To handle this, set up a convention that subdirectories that are  
conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS  
instead when they are excluded.  
  
Back-patch to 9.1, so that plpython's spiexceptions.h will get provided  
in 9.1 tarballs.  There don't appear to be any instances where distprep  
actions got missed in previous releases, and anyway this fix requires  
gmake 3.80 so we don't want to apply it before 9.1.  

M contrib/Makefile
M src/Makefile.global.in
M src/bin/Makefile
M src/pl/Makefile
M src/pl/plpython/Makefile

Unify spelling of "canceled", "canceling", "cancellation"

commit   : 6b23ba1093d298a41463a24f091c6f86be406449    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 29 Jun 2011 09:26:14 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 29 Jun 2011 09:26:14 +0300    

Click here for diff

We had previously (af26857a2775e7ceb0916155e931008c2116632f)  
established the U.S. spellings as standard.  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/set_transaction.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.1.sgml
M src/backend/access/transam/xlog.c
M src/backend/commands/vacuum.c
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/bgwriter.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/lmgr/README-SSI
M src/backend/storage/lmgr/deadlock.c
M src/backend/storage/lmgr/predicate.c
M src/backend/storage/lmgr/proc.c
M src/backend/tcop/postgres.c
M src/backend/utils/cache/relcache.c
M src/bin/psql/common.c
M src/bin/scripts/common.c
M src/port/path.c
M src/test/regress/expected/prepared_xacts.out
M src/test/regress/expected/subselect.out
M src/test/regress/sql/subselect.sql

Add some strings that were not marked for translation

commit   : 678a6d03441fc5acb18fdd43afdd2dd4145c0593    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 27 Jun 2011 15:46:21 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 27 Jun 2011 15:46:21 +0300    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

In pg_upgrade 9.0 and 9.1, document suggestion of using a non-default port number to avoid unintended client connections.

commit   : 158d071b28529509b0a77317a24ef55fb84480d9    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 1 Jul 2011 23:09:13 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 1 Jul 2011 23:09:13 -0400    

Click here for diff

M doc/src/sgml/pgupgrade.sgml

Restore correct btree preprocessing of "indexedcol IS NULL" conditions.

commit   : 3b80219e96f2d2b696ed8dc395d468b38d8ef592    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 29 Jun 2011 19:46:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 29 Jun 2011 19:46:58 -0400    

Click here for diff

Such a condition is unsatisfiable in combination with any other type of  
btree-indexable condition (since we assume btree operators are always  
strict).  8.3 and 8.4 had an explicit test for this, which I removed in  
commit 29c4ad98293e3c5cb3fcdd413a3f4904efff8762, mistakenly thinking that  
the case would be subsumed by the more general handling of IS (NOT) NULL  
added in that patch.  Put it back, and improve the comments about it, and  
add a regression test case.  
  
Per bug #6079 from Renat Nasyrov, and analysis by Dean Rasheed.  

M src/backend/access/nbtree/nbtutils.c
M src/test/regress/expected/create_index.out
M src/test/regress/sql/create_index.sql

Move the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It's more consistent that way, since all the other PredicateLock* calls are made in various heapam.c and index AM functions. The call in nodeSeqscan.c was unnecessarily aggressive anyway, there's no need to try to lock the relation every time a tuple is fetched, it's enough to do it once.

commit   : f01e3d3a414f909762ab840719aeb8ae291aab5a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 29 Jun 2011 21:43:53 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 29 Jun 2011 21:43:53 +0300    

Click here for diff

This has the user-visible effect that if a seq scan is initialized in the  
executor, but never executed, we now acquire the predicate lock on the heap  
relation anyway. We could avoid that by taking the lock on the first  
heap_getnext() call instead, but it doesn't seem worth the trouble given  
that it feels more natural to do it in heap_beginscan().  
  
Also, remove the retail PredicateLockTuple() calls from heap_getnext(). In  
a seqscan, started with heap_begin(), we're holding a whole-relation  
predicate lock on the heap so there's no need to lock the tuples  
individually.  
  
Kevin Grittner and me  

M src/backend/access/heap/heapam.c
M src/backend/executor/nodeSeqscan.c
M src/include/access/relscan.h

Grab predicate locks on matching tuples in a lossy bitmap heap scan. Non-lossy case was already handled correctly.

commit   : 1aa447a1e1273e51f1bb34e085c021941db86212    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 29 Jun 2011 21:40:27 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 29 Jun 2011 21:40:27 +0300    

Click here for diff

Kevin Grittner  

M src/backend/executor/nodeBitmapHeapscan.c

Protect pg_stat_reset_shared() against NULL input

commit   : 3ec6e00ece5fc7483f8890306005f97a2c640861    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 29 Jun 2011 19:35:11 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 29 Jun 2011 19:35:11 +0200    

Click here for diff

Per bug #6082, reported by Steve Haslam  

M src/backend/utils/adt/pgstatfuncs.c

Reduce impact of btree page reuse on Hot Standby by fixing off-by-1 error. WAL records of type XLOG_BTREE_REUSE_PAGE were generated using a latestRemovedXid one higher than actually needed because xid used was page opaque->btpo.xact rather than an actually removed xid. Noticed on an otherwise quiet system by Noah Misch.

commit   : ca7e04b0b9943d5c33d2e993ff685d45b5bddbbd    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 27 Jun 2011 22:15:07 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 27 Jun 2011 22:15:07 +0100    

Click here for diff

Noah Misch and Simon Riggs  

M src/backend/access/nbtree/nbtpage.c

Mention that SSPI authentication can use GSSAPI on non-Windows systems.

commit   : 379352602ce1f247d1bed41b62baad4e1ee6d767    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 27 Jun 2011 10:38:45 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 27 Jun 2011 10:38:45 -0400    

Click here for diff

As noted by Christian Ullrich.  

M doc/src/sgml/client-auth.sgml

commit   : e4fb58f894b75829f9475aac6991002c785de4c0    
  
author   : Joe Conway <[email protected]>    
date     : Sat, 25 Jun 2011 15:40:49 -0700    
  
committer: Joe Conway <[email protected]>    
date     : Sat, 25 Jun 2011 15:40:49 -0700    

Click here for diff

M contrib/dblink/dblink.c

Documentation improvements for pg_locks with respect to SSI.

commit   : ea41b8c822df5a2e4862c76d72937df9b62f1a99    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 24 Jun 2011 16:06:57 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 24 Jun 2011 16:06:57 -0400    

Click here for diff

Explain that querying pg_locks does not simultaneously lock both the  
normal lock manager and the predicate lock manager.  
  
Per discussion with Kevin Grittner.  

M doc/src/sgml/catalogs.sgml

commit   : 50016867a30632cfeaa79cf03b5d183383ea220a    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 23 Jun 2011 19:57:45 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 23 Jun 2011 19:57:45 -0400    

Click here for diff

Backpatch to 9.1 and 9.0.  

M doc/src/sgml/pgupgrade.sgml

Undo overly enthusiastic de-const-ification.

commit   : 1c20ba4f41faccbd11c90c4220ef6ae11a574ba5    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 23:03:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 23:03:11 -0400    

Click here for diff

s/const//g wasn't exactly what I was suggesting here ... parameter  
declarations of the form "const structtype *param" are good and useful,  
so put those occurrences back.  Likewise, avoid casting away the const  
in a "const void *" parameter.  

M src/backend/storage/lmgr/predicate.c

In pg_upgrade, check that the binary and data directories are the same major version.

commit   : d9db32401c1477fb63fb47a376fc0d08605dcc9b    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 20:48:35 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 20:48:35 -0400    

Click here for diff

Backpatch to 9.1.  
  
Dan McGee  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h

Adjust pg_upgrade check for pg_upgrade_support to happen after the binary directory has been validated.

commit   : c6635bd7ba4618b7d8507c77d2226f889e3d37d9    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 17:47:24 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 17:47:24 -0400    

Click here for diff

Backpatch to 9.1.  
  
Dan McGee  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.h

Fix pg_upgrade status message capitalization mistake.

commit   : 3ccd16c5a92d9aea32a883f91e8993d61adcb14d    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 14:49:04 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 22 Jun 2011 14:49:04 -0400    

Click here for diff

Backpatch to 9.1 and 9.0.  
  
Dan McGee  

M contrib/pg_upgrade/check.c

Add missing -I switch for VPATH builds.

commit   : 979d6c9cad8c59580c1c96eb04ce0f4914006a46    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 13:20:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 13:20:03 -0400    

Click here for diff

Per bug #6073 from Hartmut Raschick.  

M src/backend/replication/Makefile

commit   : 25db27808814f474e2080eef8bac068317b7caf6    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 13:08:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Jun 2011 13:08:08 -0400    

Click here for diff

backend/Makefile was treating errcodes.h as a header always generated  
during build, but actually it's a header provided in tarballs.  Hence,  
must use the absolute-symlink recipe, not the relative-symlink one.  
Per bug #6072 from Hartmut Raschick.  

M src/backend/Makefile

Remove pointless const qualifiers from function arguments in the SSI code. As Tom Lane pointed out, "const Relation foo" doesn't guarantee that you can't modify the data the "foo" pointer points to. It just means that you can't change the pointer to point to something else within the function, which is not very useful.

commit   : fbaa7a23e4d225f3422f5ede9897d49cb7ca3ff5    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 22 Jun 2011 12:18:39 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 22 Jun 2011 12:18:39 +0300    

Click here for diff

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h

Performance tuning advice for SSI.

commit   : 66370f5158f2bca02202376204bfccdfdafd2bd4    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Jun 2011 21:54:36 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Jun 2011 21:54:36 -0400    

Click here for diff

Kevin Grittner, with additional wordsmithing by me.  

M doc/src/sgml/mvcc.sgml

Minor editing for README-SSI.

commit   : 0272fd1c008a616fd6f0c361645a335f86c5fe29    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Jun 2011 18:00:09 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Jun 2011 18:00:09 -0400    

Click here for diff

Fix some grammatical issues, try to clarify a couple of proofs, make the  
terminology more consistent.  

M src/backend/storage/lmgr/README-SSI

Message style and spelling improvements

commit   : a0b5146b25cd5924c5e5107c06b8777eec9f0a2f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 22 Jun 2011 00:33:20 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 22 Jun 2011 00:33:20 +0300    

Click here for diff

M src/backend/access/gist/gist.c
M src/backend/access/gist/gistvacuum.c
M src/backend/commands/extension.c
M src/backend/commands/tablecmds.c
M src/backend/parser/parse_utilcmd.c
M src/backend/replication/syncrep.c
M src/backend/utils/misc/guc.c
M src/test/regress/expected/alter_table.out
M src/test/regress/expected/domain.out
M src/test/regress/expected/foreign_data.out
M src/test/regress/expected/rowtypes.out

Apply upstream fix for blowfish signed-character bug (CVE-2011-2483).

commit   : 567049a76493c7c60eddd1c65c8aa946c6811ed3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Jun 2011 14:41:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Jun 2011 14:41:05 -0400    

Click here for diff

A password containing a character with the high bit set was misprocessed  
on machines where char is signed (which is most).  This could cause the  
preceding one to three characters to fail to affect the hashed result,  
thus weakening the password.  The result was also unportable, and failed  
to match some other blowfish implementations such as OpenBSD's.  
  
Since the fix changes the output for such passwords, upstream chose  
to provide a compatibility hack: password salts beginning with $2x$  
(instead of the usual $2a$ for blowfish) are intentionally processed  
"wrong" to give the same hash as before.  Stored password hashes can  
thus be modified if necessary to still match, though it'd be better  
to change any affected passwords.  
  
In passing, sync a couple other upstream changes that marginally improve  
performance and/or tighten error checking.  
  
Back-patch to all supported branches.  Since this issue is already  
public, no reason not to commit the fix ASAP.  

M contrib/pgcrypto/crypt-blowfish.c
M contrib/pgcrypto/px-crypt.c

Adjust the alternative expected output file for prepared_xacts test case, used when max_prepared_transactions=0, for the recent changes in the test case.

commit   : 35dd6d48eccbfcd2cb5b4e571e760e1c1f1534fc    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 17:07:10 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 17:07:10 +0300    

Click here for diff

M src/test/regress/expected/prepared_xacts_1.out

Fix bug in PreCommit_CheckForSerializationFailure. A transaction that has already been marked as PREPARED cannot be killed. Kill the current transaction instead.

commit   : 390c52131b7a42d7b5528d0435d7f6279bdf0ed0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 14:32:11 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 14:32:11 +0300    

Click here for diff

One of the prepared_xacts regression tests actually hits this bug. I  
removed the anomaly from the duplicate-gids test so that it fails in the  
intended way, and added a new test to check serialization failures with  
a prepared transaction.  
  
Dan Ports  

M src/backend/storage/lmgr/predicate.c
M src/test/regress/expected/prepared_xacts.out
M src/test/regress/sql/prepared_xacts.sql

Fix bug introduced by recent SSI patch to merge ROLLED_BACK and MARKED_FOR_DEATH flags into one. We still need the ROLLED_BACK flag to mark transactions that are in the process of being rolled back. To be precise, ROLLED_BACK now means that a transaction has already been discounted from the count of transactions with the oldest xmin, but not yet removed from the list of active transactions.

commit   : 0d905db20b3201bec3ea69951014b473f92223c7    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 14:12:40 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 21 Jun 2011 14:12:40 +0300    

Click here for diff

Dan Ports  

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Fix missed use of "cp -i" in an example, per Fujii Masao.

commit   : 9d6e6fededbedb018caf9871cc448dc173b20ea6    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 20 Jun 2011 16:27:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 20 Jun 2011 16:27:36 -0400    

Click here for diff

Also be more careful about markup: use &amp; not just &.  

M doc/src/sgml/backup.sgml

Fix thinko in previous patch for optimizing EXISTS-within-EXISTS.

commit   : 6c560bef763f562a38fc629e54d0e20673efb9c1    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 20 Jun 2011 14:33:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 20 Jun 2011 14:33:20 -0400    

Click here for diff

When recursing after an optimization in pull_up_sublinks_qual_recurse, the  
available_rels value passed down must include only the relations that are  
in the righthand side of the new SEMI or ANTI join; it's incorrect to pull  
up a sub-select that refers to other relations, as seen in the added test  
case.  Per report from BangarRaju Vadapalli.  
  
While at it, rethink the idea of recursing below a NOT EXISTS.  That is  
essentially the same situation as pulling up ANY/EXISTS sub-selects that  
are in the ON clause of an outer join, and it has the same disadvantage:  
we'd force the two joins to be evaluated according to the syntactic nesting  
order, because the lower join will most likely not be able to commute with  
the ANTI join.  That could result in having to form a rather large join  
product, whereas the handling of a correlated subselect is not quite that  
dumb.  So until we can handle those cases better, #ifdef NOT_USED that  
case.  (I think it's okay to pull up in the EXISTS/ANY cases, because SEMI  
joins aren't so inflexible about ordering.)  
  
Back-patch to 8.4, same as for previous patch in this area.  Fortunately  
that patch hadn't made it into any shipped releases yet.  

M src/backend/optimizer/prep/prepjointree.c
M src/test/regress/expected/subselect.out
M src/test/regress/sql/subselect.sql

Produce HISTORY file consistently as ASCII

commit   : 7ec70f46c676f2f40615cad818ecc2a975698321    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 19 Jun 2011 23:27:56 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 19 Jun 2011 23:27:56 +0300    

Click here for diff

The release notes may contain non-ASCII characters (for contributor  
names), which lynx converts to the encoding determined by the current  
locale.  The get output that is deterministic and easily readable by  
everyone, we make lynx produce LATIN1 and then convert that to ASCII  
with transliteration for the non-ASCII characters.  

M doc/src/sgml/Makefile

Fix thinko in previous patch to always update pg_class.reltuples/relpages.

commit   : 68306da4880401ed9fd3b341e67a5e4cd4b8706f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 19 Jun 2011 14:00:55 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 19 Jun 2011 14:00:55 -0400    

Click here for diff

I mis-simplified the test where ANALYZE decided if it could get away  
without doing anything: under the new regime, that's never allowed.  Per  
bug #6068 from Jeff Janes.  Back-patch to 8.4, just like previous patch.  

M src/backend/commands/analyze.c

Capitalization fixes

commit   : 365c72f205201eb6699325cb5e7a8c19430aad29    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 19 Jun 2011 00:37:30 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 19 Jun 2011 00:37:30 +0300    

Click here for diff

M doc/src/sgml/config.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/storage.sgml
M src/backend/bootstrap/bootparse.y
M src/backend/port/ipc_test.c
M src/backend/port/win32/signal.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/ipc/sinvaladt.c
M src/backend/storage/lmgr/proc.c
M src/backend/storage/smgr/smgrtype.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/syscache.c
M src/backend/utils/init/postinit.c
M src/interfaces/ecpg/ecpglib/execute.c
M src/test/examples/testlibpq2.c
M src/test/regress/pg_regress.c

Don't use "cp -i" in the example WAL archive_command.

commit   : c1c4f93056ceba4dcbb7779e5215e190587bea90    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 17 Jun 2011 19:13:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 17 Jun 2011 19:13:08 -0400    

Click here for diff

This is a dangerous example to provide because on machines with GNU cp,  
it will silently do the wrong thing and risk archive corruption.  Worse,  
during the 9.0 cycle somebody "improved" the discussion by removing the  
warning that used to be there about that, and instead leaving the  
impression that the command would work as desired on most Unixen.  
It doesn't.  Try to rectify the damage by providing an example that is safe  
most everywhere, and then noting that you can try cp -i if you want but  
you'd better test that.  
  
In back-patching this to all supported branches, I also added an example  
command for Windows, which wasn't provided before 9.0.  

M doc/src/sgml/backup.sgml

Obtain table locks as soon as practical during pg_dump.

commit   : a95cfd085df5f146d67390344b588629e0efa8f1    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 17 Jun 2011 18:19:09 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 17 Jun 2011 18:19:09 -0400    

Click here for diff

For some reason, when we (I) added table lock acquisition to pg_dump,  
we didn't think about making it happen as soon as possible after the  
start of the transaction.  What with subsequent additions, there was  
actually quite a lot going on before we got around to that; which sort  
of defeats the purpose.  Rearrange the order of calls in dumpSchema()  
to close the risk window as much as we easily can.  Back-patch to all  
supported branches.  

M src/bin/pg_dump/common.c

Add overflow checks to int4 and int8 versions of generate_series().

commit   : 925079063fc429b94c52c5f9174c20157bc39e66    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 14:28:45 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 14:28:45 -0400    

Click here for diff

The previous code went into an infinite loop after overflow.  In fact,  
an overflow is not really an error; it just means that the current  
value is the last one we need to return.  So, just arrange to stop  
immediately when overflow is detected.  
  
Back-patch all the way.  

M src/backend/utils/adt/int.c
M src/backend/utils/adt/int8.c

Fix crash in CREATE UNLOGGED TABLE.

commit   : ae31b59512746a2cc397b70b8a05106e7a7f8ed3    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 13:34:39 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 13:34:39 -0400    

Click here for diff

The code that created the init fork neglected to make sure that the  
relation was open at the smgr level before attempting to invoke smgr.  
This didn't happen every time; only when the relcache entry was rebuilt  
along the way.  
  
Per report from Garick Hamlin.  

M src/backend/catalog/heap.c

Fix typo.

commit   : a3903f1bf8e3ecd0589725ed1efbc9208d03f336    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 00:54:08 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Jun 2011 00:54:08 -0400    

Click here for diff

Per Josh Kupershmidt and Tom Lane.  

M doc/src/sgml/ref/psql-ref.sgml

Update README-SSI. Add a section to describe the "dangerous structure" that SSI is based on, as well as the optimizations about relative commit times and read-only transactions. Plus a bunch of other misc fixes and improvements.

commit   : 6b339a1ade6bca6dc5230e910e0819f98ce76ff0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 16 Jun 2011 21:12:56 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 16 Jun 2011 21:12:56 +0300    

Click here for diff

Dan Ports  

M src/backend/storage/lmgr/README-SSI

Fix typo

commit   : bd8137ee117601f93fcd9870e019b3069387a8a2    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 16 Jun 2011 12:10:57 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 16 Jun 2011 12:10:57 -0400    

Click here for diff

M src/backend/catalog/heap.c

Remove another no-longer-needed inclusion of predicate.h.

commit   : f90b185a8a125d3a7689dad1aa196a1171a07869    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Jun 2011 11:43:30 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Jun 2011 11:43:30 -0400    

Click here for diff

M src/backend/executor/nodeBitmapHeapscan.c

pgindent run of recent SSI changes. Also, remove an unnecessary #include.

commit   : 9131bc772b0232454d7b625f11c7a9310a717f90    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 16 Jun 2011 16:16:34 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 16 Jun 2011 16:16:34 +0300    

Click here for diff

Kevin Grittner  

M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/transam/twophase_rmgr.c
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h
M src/include/storage/predicate_internals.h

Respect Hot Standby controls while recycling btree index pages. Btree pages were recycled after VACUUM deletes all records on a page and then a subsequent VACUUM occurs after the RecentXmin horizon is reached. Using RecentXmin meant that we did not respond correctly to the user controls provide to avoid Hot Standby conflicts and so spurious conflicts could be generated in some workload combinations. We now reuse pages only when we reach RecentGlobalXmin, which can be much later in the presence of long running queries and is also controlled by vacuum_defer_cleanup_age and hot_standby_feedback.

commit   : 9340e643e4cbc11a7a5aaea0297236e9a8c07600    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 16 Jun 2011 10:17:59 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 16 Jun 2011 10:17:59 +0100    

Click here for diff

Noah Misch and Simon Riggs  

M src/backend/access/nbtree/nbtpage.c

Use single quotes in preference to double quotes for protecting pathnames.

commit   : a969a2f03041cd33bc9f9f75f0b6a1c0f5b921e2    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 21:45:23 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 21:45:23 -0400    

Click here for diff

Per recommendation from Peter.  Neither choice is bulletproof, but this  
is the existing style and it does help prevent unexpected environment  
variable substitution.  

M src/Makefile.global.in
M src/Makefile.shlib
M src/backend/Makefile
M src/interfaces/ecpg/test/Makefile
M src/makefiles/Makefile.aix
M src/test/isolation/Makefile

Rework parsing of ConstraintAttributeSpec to improve NOT VALID handling.

commit   : d988d92bf0603cdf07a57f57f53a28caf5e951f5    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 19:05:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 19:05:11 -0400    

Click here for diff

The initial commit of the ALTER TABLE ADD FOREIGN KEY NOT VALID feature  
failed to support labeling such constraints as deferrable.  The best fix  
for this seems to be to fold NOT VALID into ConstraintAttributeSpec.  
That's a bit more general than the documented syntax, but it allows  
better-targeted syntax error messages.  
  
In addition, do some mostly-but-not-entirely-cosmetic code review for  
the whole NOT VALID patch.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/ref/alter_table.sgml
M src/backend/commands/tablecmds.c
M src/backend/commands/trigger.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/utils/adt/ruleutils.c
M src/include/nodes/parsenodes.h
M src/interfaces/ecpg/preproc/ecpg.addons

Fix failure to account for memory used by tuplestore_putvalues().

commit   : 3cfecae3a34853c631eeb75671c6b82638e8e0aa    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 14:05:22 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 14:05:22 -0400    

Click here for diff

This oversight could result in a tuplestore using much more than the  
intended amount of memory.  It would only happen in a code path that loaded  
a tuplestore via tuplestore_putvalues(), and many of those won't emit huge  
amounts of data; but cases such as holdable cursors and plpgsql's RETURN  
NEXT command could have the problem.  The fix ensures that the tuplestore  
will switch to write-to-disk mode when it overruns work_mem.  
  
The potential overrun was finite, because we would still count the space  
used by the tuple pointer array, so the tuplestore code would eventually  
flip into write-to-disk mode anyway.  When storing wide tuples we would  
go far past the expected work_mem usage before that happened; but this  
may account for the lack of prior reports.  
  
Back-patch to 8.4, where tuplestore_putvalues was introduced.  
  
Per bug #6061 from Yann Delorme.  

M src/backend/utils/sort/tuplestore.c

Fix oversights in pg_basebackup's -z (compression) option.

commit   : dc014e0446f5bfb52129fc6781a98b236d8166c6    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 13:15:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Jun 2011 13:15:05 -0400    

Click here for diff

The short-form -z switch didn't work, for lack of telling getopt_long  
about it; and even if specified long-form, it failed to do anything,  
because the various tests elsewhere in the file would take  
Z_DEFAULT_COMPRESSION (which is -1) as meaning "don't compress".  
  
Per bug #6060 from Shigehiro Honda, though I editorialized on his patch  
a bit.  

M src/bin/pg_basebackup/pg_basebackup.c

The rolled-back flag on serializable xacts was pointless and redundant with the marked-for-death flag. It was only set for a fleeting moment while a transaction was being cleaned up at rollback. All the places that checked for the rolled-back flag should also check the marked-for-death flag, as both flags mean that the transaction will roll back. I also renamed the marked-for-death into "doomed", which is a lot shorter name.

commit   : 2b44a2d62d12406da59fa6b23a0854d1d5068b17    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Jun 2011 13:35:28 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Jun 2011 13:35:28 +0300    

Click here for diff

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Make non-MVCC snapshots exempt from predicate locking. Scans with non-MVCC snapshots, like in REINDEX, are basically non-transactional operations. The DDL operation itself might participate in SSI, but there's separate functions for that.

commit   : ff4e078773b48260a36587b54537ca54d929898f    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Jun 2011 11:43:05 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Jun 2011 11:43:05 +0300    

Click here for diff

Kevin Grittner and Dan Ports, with some changes by me.  

M src/backend/access/heap/heapam.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/executor/nodeSeqscan.c
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h

Allow psql \d tab completion to complete all relation kinds

commit   : 80721b518292501058bb57a05fb6e2131997d0ec    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:45:00 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:45:00 +0300    

Click here for diff

This matches what \d actually accepts.  

M src/bin/psql/tab-complete.c

Document that psql's \d also works with composite types

commit   : b48f888b644fb667dd87dc9c45d18890397d14a8    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:44:01 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:44:01 +0300    

Click here for diff

This has always been true, it was just never documented.  

M doc/src/sgml/ref/psql-ref.sgml

commit   : 6e66d2e424d82978e452ace850ad80af78475043    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 14 Jun 2011 16:47:16 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 14 Jun 2011 16:47:16 -0400    

Click here for diff

Per suggestsion from #postgresql irc channel.  
  
Backpatch to 9.1.  

M doc/src/sgml/pgupgrade.sgml

Fix assorted issues with build and install paths containing spaces.

commit   : f28c54c32d2f3527c94ca25a32feb236f125f2c2    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 14 Jun 2011 12:00:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 14 Jun 2011 12:00:37 -0400    

Click here for diff

Apparently there is no buildfarm critter exercising this case after all,  
because it fails in several places.  With this patch, build, install,  
check-world, and installcheck-world pass for me on OS X.  

M src/Makefile.global.in
M src/Makefile.shlib
M src/interfaces/ecpg/test/Makefile
M src/test/isolation/Makefile

Remove unused variable

commit   : 64bbf3641c65bfff8e83c4147c0e4caac09dae58    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:00:43 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 23:00:43 +0300    

Click here for diff

The variable became obsolete in commit  
68739ba856c52e6721d6cffec21f1bf0327a9a7b, but only gcc 4.6 shows the  
warning.  

M src/backend/parser/parse_utilcmd.c

In pg_upgrade, check there are no prepared transactions.

commit   : 5561fe21846a3d9d0e97879fd95c79d3575886b0    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 14 Jun 2011 14:41:33 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 14 Jun 2011 14:41:33 -0400    

Click here for diff

Backpatch to 9.1.  

M contrib/pg_upgrade/check.c

Fix grammatical mistake introduced by previous commit

commit   : 808aa18b3cc87d81fb5640db0635a8d3db2bad52    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 14 Jun 2011 13:48:23 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 14 Jun 2011 13:48:23 -0400    

Click here for diff

Per note from Tom  

M doc/src/sgml/ddl.sgml

Mention DROP TABLE as well as ALTER TABLE NO INHERIT

commit   : d60ce59963cab7fa142464c90a3e9d2ab5496640    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 14 Jun 2011 11:20:52 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 14 Jun 2011 11:20:52 -0400    

Click here for diff

... when talking about how good they are in replacement of bulk DELETE  
in partitioned setups.  
  
The original wording was a bit confusing.  
  
Per an observation from David Wheeler.  

M doc/src/sgml/ddl.sgml

Improve accuracy of ON_ERROR_STOP documentation.

commit   : 6fdd8975034249f7c1a97bfb4991e6bde250c6ea    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 14 Jun 2011 11:05:54 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 14 Jun 2011 11:05:54 -0400    

Click here for diff

Per a gripe from Tom Lane.  

M doc/src/sgml/ref/psql-ref.sgml

Oops, forgot to change the order of entries in 2PC callback arrays when I renumbered the resource managers. This should fix the buildfarm..

commit   : 6099dfa71c883599440ec8c9930ee7e2f4403825    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Jun 2011 15:16:36 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Jun 2011 15:16:36 +0300    

Click here for diff

M src/backend/access/transam/twophase_rmgr.c

Renumber 2PC resource managers so that compared to 9.0, predicate lock rmgr is added to the end, and existing resource managers keep their old ids. We're not going to guarantee on-disk compatibility for 2PC state files over major releases, but it seems better to avoid changing the ids them anyway. It will help anyone who might want to write external tools to inspect the state files to work with files from different versions, if nothing else. Per complaint from Tom Lane.

commit   : 8c8006d7761d94c3830b3eb39c343fc9103e885f    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Jun 2011 12:32:45 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Jun 2011 12:32:45 +0300    

Click here for diff

M src/include/access/twophase_rmgr.h

Move parse2.pl to parse.pl

commit   : 95f62dc8b888cc2fe6da5e8acbcb7e5d4d65d932    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 07:34:00 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 14 Jun 2011 07:34:00 +0300    

Click here for diff

We have a SCM, so we don't need to keep old versions of files around.  

M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/ecpg/preproc/README.parser
M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/preproc/parse.pl
D src/interfaces/ecpg/preproc/parse2.pl

Document that bits to the right of the CIDR mask "should" be zero, not "must".

commit   : 8d49524a6abbbfc1c5958d8222638b8b070600f9    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 13 Jun 2011 20:57:21 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 13 Jun 2011 20:57:21 -0400    

Click here for diff

M doc/src/sgml/client-auth.sgml

Fix aboriginal copy-paste mistake in error message

commit   : 26b10ca6b85cd130ebd5aa86fe24626e00d6ce87    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 13 Jun 2011 17:50:30 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 13 Jun 2011 17:50:30 -0400    

Click here for diff

Spotted by Jaime Casanova  

M src/backend/catalog/pg_shdepend.c

Expand warnings on locks acquired by CREATE INDEX CONCURRENTLY

commit   : 9adda3e125642f41f256d1ed6adfe810b508e046    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 13 Jun 2011 17:12:26 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 13 Jun 2011 17:12:26 -0400    

Click here for diff

The previous wording wasn't explicit enough, which could misled readers  
into thinking that the locks acquired are more restricted in nature than  
they really are.  The resulting optimism can be damaging to morale when  
confronted with reality, as has been observed in the field.  
  
Greg Smith  

M doc/src/sgml/ref/create_index.sgml

Remove parentheses from mention of current_schemas function.

commit   : 20c73f3a327d2289871e7701e8325e5e3ebe518c    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 13:02:54 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 13:02:54 -0400    

Click here for diff

This is more consistent with what we do elsewhere, and hopefully avoids  
creating the perception that current_schemas takes no arguments.  
  
As suggested by Brendan Jurd  

M doc/src/sgml/config.sgml

Clarify that NATURAL without matching columns is like CROSS JOIN.

commit   : 26e7eec5f07c5dfb4b57f374bf01185edd88cf73    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:59:04 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:59:04 -0400    

Click here for diff

As suggested by Grzegorz Szpetkowski.  

M doc/src/sgml/queries.sgml

Add doc cross-reference to search_path discussion of current_schemas().

commit   : f2328b0713b175b0d49651fb7ec807e7174e92aa    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:37:49 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:37:49 -0400    

Click here for diff

Brendan Jurd  

M doc/src/sgml/config.sgml

Document GUC context for synchronous_standby_names/hot_standby_feedback.

commit   : 3390fceb69bd818101bcd0f20769ac28ccec725b    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:23:42 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 12:23:42 -0400    

Click here for diff

Fujii Masao  

M doc/src/sgml/config.sgml

In ALTER EXTENSION docs, document left_type/right_type.

commit   : a886c94e5e780839f86468fd7883f0cfd3fabca5    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 10:23:14 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 10:23:14 -0400    

Click here for diff

Noted by Daniele Varrazzo.  

M doc/src/sgml/ref/alter_extension.sgml

Markup fix.

commit   : 5267e5ea5e4a4df36b7208df18b098f845c75fd8    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 10:14:02 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 10:14:02 -0400    

Click here for diff

Fujii Masao  

M doc/src/sgml/ddl.sgml

More foreign table documentation improvements.

commit   : 16d64a8773c6c381c55d678855f29953184693f7    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 08:28:41 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Jun 2011 08:28:41 -0400    

Click here for diff

Shigeru Hanada, with some additional wordsmithing by me  

M doc/src/sgml/ddl.sgml
M doc/src/sgml/fdwhandler.sgml

Remove now-unnecessary casts.

commit   : 5de9c165f01b14caec447d5ca4c10a8967080ee8    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sun, 12 Jun 2011 22:49:33 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sun, 12 Jun 2011 22:49:33 +0300    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Corrections to ALTER FOREIGN TABLE documentation.

commit   : 25271323d434e3bdba2ad302d207f1d8f3fb234b    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 12 Jun 2011 00:18:43 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 12 Jun 2011 00:18:43 -0400    

Click here for diff

Shigeru Hanada, with a minor grammar correction.  

M doc/src/sgml/ref/alter_foreign_table.sgml

Tab completion improvements for COMMENT.

commit   : e461cffbe699d9e9313518644f9d9dd33c0fe7d3    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 11 Jun 2011 23:52:44 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 11 Jun 2011 23:52:44 -0400    

Click here for diff

These pertain to object types introduced in PostgreSQL 9.1, so back-patch.  
  
Josh Kupershmidt, with some kibitzing by me.  

M src/bin/psql/tab-complete.c

Add C comment mentioning pg_stat_activity.procpid should have been called 'pid'.

commit   : a4bebdd92624e018108c2610fc3f2c1584b6c687    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 11 Jun 2011 10:00:28 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 11 Jun 2011 10:00:28 -0400    

Click here for diff

M src/backend/utils/adt/pgstatfuncs.c

Work around gcc 4.6.0 bug that breaks WAL replay.

commit   : c2ba0121c73b7461331104a46d140156e847572a    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 10 Jun 2011 17:03:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 10 Jun 2011 17:03:03 -0400    

Click here for diff

ReadRecord's habit of using both direct references to tmpRecPtr and  
references to *RecPtr (which is pointing at tmpRecPtr) triggers an  
optimization bug in gcc 4.6.0, which apparently has forgotten about  
aliasing rules.  Avoid the compiler bug, and make the code more readable  
to boot, by getting rid of the direct references.  Improve the comments  
while at it.  
  
Back-patch to all supported versions, in case they get built with 4.6.0.  
  
Tom Lane, with some cosmetic suggestions from Alex Hunsaker  

M src/backend/access/transam/xlog.c
M src/include/access/xlog_internal.h

Fix locking while setting flags in MySerializableXact.

commit   : cb2d158c5808c72cbd12cbffe0b7f5dbe830760b    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 10 Jun 2011 23:15:05 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 10 Jun 2011 23:15:05 +0300    

Click here for diff

Even if a flag is modified only by the backend owning the transaction, it's  
not safe to modify it without a lock. Another backend might be setting or  
clearing a different flag in the flags field concurrently, and that  
operation might be lost because setting or clearing a bit in a word is not  
atomic.  
  
Make did-write flag a simple backend-private boolean variable, because it  
was only set or tested in the owning backend (except when committing a  
prepared transaction, but it's not worthwhile to optimize for the case of a  
read-only prepared transaction). This also eliminates the need to add  
locking where that flag is set.  
  
Also, set the did-write flag when doing DDL operations like DROP TABLE or  
TRUNCATE -- that was missed earlier.  

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Add comment about pg_ctl stop

commit   : d69149ed71cc4f073f222f11f702a20a6d279e0c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 15:27:38 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 15:27:38 -0400    

Click here for diff

M src/tools/pgindent/README

Use "transient" files for blind writes, take 2

commit   : fba105b1099f4f5fa7283bb17cba6fed2baa8d0c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 13:43:02 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 13:43:02 -0400    

Click here for diff

"Blind writes" are a mechanism to push buffers down to disk when  
evicting them; since they may belong to different databases than the one  
a backend is connected to, the backend does not necessarily have a  
relation to link them to, and thus no way to blow them away.  We were  
keeping those files open indefinitely, which would cause a problem if  
the underlying table was deleted, because the operating system would not  
be able to reclaim the disk space used by those files.  
  
To fix, have bufmgr mark such files as transient to smgr; the lower  
layer is allowed to close the file descriptor when the current  
transaction ends.  We must be careful to have any other access of the  
file to remove the transient markings, to prevent unnecessary expensive  
system calls when evicting buffers belonging to our own database (which  
files we're likely to require again soon.)  
  
This commit fixes a bug in the previous one, which neglected to cleanly  
handle the LRU ring that fd.c uses to manage open files, and caused an  
unacceptable failure just before beta2 and was thus reverted.  

M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/file/fd.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/include/storage/fd.h
M src/include/storage/smgr.h

Use a constant sprintf format to silence compiler warning

commit   : 3d114b63b253605eb60055c910aa2e55c98d5ed2    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 13:37:06 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 10 Jun 2011 13:37:06 -0400    

Click here for diff

M src/backend/storage/file/fd.c

Small comment fixes and enhancements.

commit   : c79c570bd8fbd6f074b8c186dfb08a9f4e3907e0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 10 Jun 2011 17:22:00 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 10 Jun 2011 17:22:00 +0300    

Click here for diff

M src/backend/storage/lmgr/README-SSI
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Mention "pg_ctl stop" in pgindent README instructions.

commit   : bb8f0c4b4863d697264cc6f295f50627b15a6608    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 20:51:10 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 20:51:10 -0400    

Click here for diff

M src/tools/pgindent/README

Tag 9.1beta2.

commit   : 829ae4bf830e14bda649a153f7d179681e2ad094    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 9 Jun 2011 19:40:42 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 9 Jun 2011 19:40:42 -0400    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32

Ecpg doc cleanups, as reported by Marc Cousin.

commit   : 43958a028037edca1ed786147dc7bacf62d4f85b    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 18:47:37 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 18:47:37 -0400    

Click here for diff

M doc/src/sgml/ecpg.sgml

Update 9.1 release notes to reflect commits through today.

commit   : e9c9a920680595b7726148852e19deeb1f7b98a5    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 9 Jun 2011 18:44:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 9 Jun 2011 18:44:05 -0400    

Click here for diff

Also do some desultory copy-editing on the notes.  

M doc/src/sgml/extend.sgml
M doc/src/sgml/release-9.1.sgml

Revert "Use "transient" files for blind writes"

commit   : 9261557eb1e19cf691f6f2cd9bd4d55fd8603a48    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 9 Jun 2011 16:41:44 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 9 Jun 2011 16:41:44 -0400    

Click here for diff

This reverts commit 54d9e8c6c19cbefa8fb42ed3442a0a5327590ed3, which  
caused a failure on the buildfarm.  Not a good thing to have just before  
a beta release.  

M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/file/fd.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/include/storage/fd.h
M src/include/storage/smgr.h

Use "transient" files for blind writes

commit   : 54d9e8c6c19cbefa8fb42ed3442a0a5327590ed3    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 9 Jun 2011 13:41:12 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 9 Jun 2011 13:41:12 -0400    

Click here for diff

"Blind writes" are a mechanism to push buffers down to disk when  
evicting them; since they may belong to different databases than the one  
a backend is connected to, the backend does not necessarily have a  
relation to link them to, and thus no way to blow them away.  We were  
keeping those files open indefinitely, which would cause a problem if  
the underlying table was deleted, because the operating system would not  
be able to reclaim the disk space used by those files.  
  
To fix, have bufmgr mark such files as transient to smgr; the lower  
layer is allowed to close the file descriptor when the current  
transaction ends.  We must be careful to have any other access of the  
file to remove the transient markings, to prevent unnecessary expensive  
system calls when evicting buffers belonging to our own database (which  
files we're likely to require again soon.)  

M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/file/fd.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/include/storage/fd.h
M src/include/storage/smgr.h

Translation updates for 9.1beta2

commit   : 74b1d29dd186c4ea51ba1eff06aebd1faeb5dfcd    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 9 Jun 2011 23:01:31 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 9 Jun 2011 23:01:31 +0300    

Click here for diff

M src/backend/nls.mk
M src/backend/po/de.po
M src/backend/po/es.po
M src/backend/po/fr.po
M src/backend/po/ja.po
M src/backend/po/pt_BR.po
A src/backend/po/zh_CN.po
A src/backend/po/zh_TW.po
M src/bin/initdb/nls.mk
M src/bin/initdb/po/cs.po
M src/bin/initdb/po/de.po
M src/bin/initdb/po/es.po
M src/bin/initdb/po/fr.po
M src/bin/initdb/po/it.po
M src/bin/initdb/po/ja.po
A src/bin/initdb/po/ko.po
M src/bin/initdb/po/pt_BR.po
A src/bin/initdb/po/ro.po
M src/bin/initdb/po/ru.po
M src/bin/initdb/po/sv.po
M src/bin/initdb/po/tr.po
M src/bin/initdb/po/zh_CN.po
A src/bin/initdb/po/zh_TW.po
M src/bin/pg_basebackup/nls.mk
A src/bin/pg_basebackup/po/de.po
A src/bin/pg_basebackup/po/es.po
M src/bin/pg_config/nls.mk
M src/bin/pg_config/po/es.po
M src/bin/pg_config/po/fr.po
M src/bin/pg_config/po/ja.po
M src/bin/pg_config/po/ko.po
M src/bin/pg_config/po/pt_BR.po
M src/bin/pg_config/po/ro.po
M src/bin/pg_config/po/ru.po
M src/bin/pg_config/po/sv.po
M src/bin/pg_config/po/ta.po
M src/bin/pg_config/po/tr.po
M src/bin/pg_config/po/zh_CN.po
A src/bin/pg_config/po/zh_TW.po
M src/bin/pg_controldata/nls.mk
M src/bin/pg_controldata/po/es.po
M src/bin/pg_controldata/po/fr.po
M src/bin/pg_controldata/po/ja.po
M src/bin/pg_controldata/po/ko.po
M src/bin/pg_controldata/po/pt_BR.po
A src/bin/pg_controldata/po/ro.po
A src/bin/pg_controldata/po/ru.po
M src/bin/pg_controldata/po/tr.po
M src/bin/pg_controldata/po/zh_CN.po
A src/bin/pg_controldata/po/zh_TW.po
M src/bin/pg_ctl/nls.mk
M src/bin/pg_ctl/po/de.po
M src/bin/pg_ctl/po/fr.po
M src/bin/pg_ctl/po/ja.po
M src/bin/pg_ctl/po/ru.po
M src/bin/pg_ctl/po/tr.po
M src/bin/pg_ctl/po/zh_CN.po
A src/bin/pg_ctl/po/zh_TW.po
M src/bin/pg_dump/nls.mk
M src/bin/pg_dump/po/de.po
M src/bin/pg_dump/po/es.po
M src/bin/pg_dump/po/fr.po
M src/bin/pg_dump/po/it.po
M src/bin/pg_dump/po/ja.po
A src/bin/pg_dump/po/ko.po
M src/bin/pg_dump/po/pt_BR.po
M src/bin/pg_dump/po/tr.po
M src/bin/pg_dump/po/zh_CN.po
A src/bin/pg_dump/po/zh_TW.po
M src/bin/pg_resetxlog/nls.mk
M src/bin/pg_resetxlog/po/es.po
M src/bin/pg_resetxlog/po/fr.po
M src/bin/pg_resetxlog/po/ja.po
M src/bin/pg_resetxlog/po/ko.po
M src/bin/pg_resetxlog/po/pt_BR.po
M src/bin/pg_resetxlog/po/ro.po
M src/bin/pg_resetxlog/po/ru.po
M src/bin/pg_resetxlog/po/tr.po
M src/bin/pg_resetxlog/po/zh_CN.po
A src/bin/pg_resetxlog/po/zh_TW.po
M src/bin/psql/nls.mk
M src/bin/psql/po/de.po
M src/bin/psql/po/es.po
M src/bin/psql/po/fr.po
M src/bin/psql/po/ja.po
M src/bin/psql/po/pt_BR.po
A src/bin/psql/po/zh_CN.po
A src/bin/psql/po/zh_TW.po
M src/bin/scripts/nls.mk
M src/bin/scripts/po/cs.po
M src/bin/scripts/po/fr.po
M src/bin/scripts/po/ja.po
M src/bin/scripts/po/ko.po
M src/bin/scripts/po/ro.po
M src/bin/scripts/po/tr.po
M src/bin/scripts/po/zh_CN.po
A src/bin/scripts/po/zh_TW.po
M src/interfaces/ecpg/ecpglib/po/fr.po
M src/interfaces/ecpg/ecpglib/po/ja.po
M src/interfaces/ecpg/ecpglib/po/tr.po
M src/interfaces/ecpg/ecpglib/po/zh_CN.po
M src/interfaces/ecpg/preproc/nls.mk
M src/interfaces/ecpg/preproc/po/es.po
M src/interfaces/ecpg/preproc/po/ja.po
A src/interfaces/ecpg/preproc/po/ko.po
M src/interfaces/ecpg/preproc/po/pt_BR.po
M src/interfaces/ecpg/preproc/po/tr.po
M src/interfaces/ecpg/preproc/po/zh_CN.po
A src/interfaces/ecpg/preproc/po/zh_TW.po
M src/interfaces/libpq/nls.mk
M src/interfaces/libpq/po/cs.po
M src/interfaces/libpq/po/de.po
M src/interfaces/libpq/po/es.po
M src/interfaces/libpq/po/fr.po
M src/interfaces/libpq/po/ja.po
M src/interfaces/libpq/po/ko.po
M src/interfaces/libpq/po/pt_BR.po
M src/interfaces/libpq/po/ru.po
M src/interfaces/libpq/po/sv.po
M src/interfaces/libpq/po/tr.po
M src/interfaces/libpq/po/zh_CN.po
A src/interfaces/libpq/po/zh_TW.po
M src/pl/plperl/nls.mk
M src/pl/plperl/po/de.po
M src/pl/plperl/po/es.po
M src/pl/plperl/po/fr.po
M src/pl/plperl/po/ja.po
M src/pl/plperl/po/pt_BR.po
A src/pl/plperl/po/ro.po
M src/pl/plperl/po/tr.po
A src/pl/plperl/po/zh_CN.po
A src/pl/plperl/po/zh_TW.po
M src/pl/plpgsql/src/nls.mk
M src/pl/plpgsql/src/po/de.po
M src/pl/plpgsql/src/po/es.po
M src/pl/plpgsql/src/po/fr.po
M src/pl/plpgsql/src/po/ja.po
A src/pl/plpgsql/src/po/ko.po
A src/pl/plpgsql/src/po/pt_BR.po
M src/pl/plpgsql/src/po/ro.po
A src/pl/plpgsql/src/po/zh_CN.po
A src/pl/plpgsql/src/po/zh_TW.po
M src/pl/plpython/nls.mk
M src/pl/plpython/po/de.po
M src/pl/plpython/po/es.po
M src/pl/plpython/po/fr.po
M src/pl/plpython/po/ja.po
M src/pl/plpython/po/pt_BR.po
A src/pl/plpython/po/ro.po
M src/pl/plpython/po/tr.po
A src/pl/plpython/po/zh_CN.po
A src/pl/plpython/po/zh_TW.po
M src/pl/tcl/nls.mk
M src/pl/tcl/po/fr.po
M src/pl/tcl/po/ja.po
A src/pl/tcl/po/ro.po
A src/pl/tcl/po/zh_CN.po
A src/pl/tcl/po/zh_TW.po

Fix the truncation logic of the OldSerXid SLRU mechanism. We can't pass SimpleLruTruncate() a page number that's "in the future", because it will issue a warning and refuse to truncate anything. Instead, we leave behind the latest segment. If the slru is not needed before XID wrap-around, the segment will appear as new again, and not be cleaned up until it gets old enough again. That's a bit unpleasant, but better than not cleaning up anything.

commit   : e1c26ab853dc4b816d2eb4c99b948fb099c0e243    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 9 Jun 2011 20:30:59 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 9 Jun 2011 20:30:59 +0300    

Click here for diff

Also, fix broken calculation to check and warn if the span of the OldSerXid  
SLRU is getting too large to fit in the 64k SLRU pages that we have  
available. It was not XID wraparound aware.  
  
Kevin Grittner and me.  

M src/backend/storage/lmgr/predicate.c

Pgindent run before 9.1 beta2.

commit   : 6560407c7db2c7e32926a46f5fb52175ac10d9e5    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 14:32:50 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 14:32:50 -0400    

Click here for diff

M contrib/btree_gist/btree_utils_var.h
M contrib/pg_standby/pg_standby.c
M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/util.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistutil.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/access/transam/xlog.c
M src/backend/catalog/index.c
M src/backend/catalog/namespace.c
M src/backend/catalog/toasting.c
M src/backend/commands/analyze.c
M src/backend/commands/cluster.c
M src/backend/commands/indexcmds.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/commands/variable.c
M src/backend/executor/nodeHashjoin.c
M src/backend/libpq/auth.c
M src/backend/libpq/hba.c
M src/backend/main/main.c
M src/backend/optimizer/geqo/geqo_main.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_utilcmd.c
M src/backend/port/sysv_sema.c
M src/backend/port/win32/crashdump.c
M src/backend/port/win32/socket.c
M src/backend/port/win32_latch.c
M src/backend/postmaster/postmaster.c
M src/backend/regex/regc_pg_locale.c
M src/backend/replication/syncrep.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/cache/typcache.c
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/init/postinit.c
M src/bin/initdb/initdb.c
M src/bin/pg_basebackup/pg_basebackup.c
M src/bin/pg_ctl/pg_ctl.c
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/describe.c
M src/bin/scripts/createdb.c
M src/bin/scripts/dropdb.c
M src/include/fmgr.h
M src/include/nodes/parsenodes.h
M src/include/optimizer/clauses.h
M src/include/utils/hsearch.h
M src/include/utils/selfuncs.h
M src/interfaces/ecpg/ecpglib/sqlda.c
M src/interfaces/ecpg/pgtypeslib/timestamp.c
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-connect.c
M src/pl/plperl/plperl.c
M src/pl/plperl/plperl.h
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpython/plpython.c
M src/port/getopt.c
M src/port/getpeereid.c
M src/port/inet_net_ntop.c
M src/port/noblock.c
M src/test/regress/pg_regress.c
M src/timezone/pgtz.c

Update typedef list for upcoming pgindent run.

commit   : adf43b2b36ca3d7f988933990051c74a4bd0d6f8    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 14:01:49 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 9 Jun 2011 14:01:49 -0400    

Click here for diff

M src/tools/pgindent/typedefs.list

Use the correct eventlog severity for error

commit   : 3db963d760f93ac4b695b0c4a1e22231d30cb370    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:21:38 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:21:38 +0200    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

Support silent mode for service registrations on win32

commit   : 7e6ec04d964b03e836c3c19b5601e889b6634f05    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:18:45 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:18:45 +0200    

Click here for diff

Using -s when registering a service will now suppress  
the application eventlog entries stating that the service  
is starting and started.  
  
MauMau  

M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/bin/pg_ctl/pg_ctl.c

Add gitignore for mingw/cygwin build outputs

commit   : 1710752a50a37c965c964e362635d9ba3a333dcf    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:11:47 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 9 Jun 2011 18:11:47 +0200    

Click here for diff

Noted by Radosław Smogura  

M .gitignore
M src/backend/.gitignore

Mark the SLRU page as dirty when setting an entry in pg_serial. In the passing, fix an incorrect comment.

commit   : 5234161ac10350e009874e4872935a6133d8f0fc    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 9 Jun 2011 12:10:14 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 9 Jun 2011 12:10:14 +0300    

Click here for diff

M src/backend/storage/lmgr/predicate.c

Fix documentation of information_schema.element_types

commit   : 7d43ae6713223164be017be6e866868d1d7a8430    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 9 Jun 2011 07:24:14 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 9 Jun 2011 07:24:14 +0300    

Click here for diff

The documentation of the columns collection_type_identifier and  
dtd_identifier was wrong.  This effectively reverts commits  
8e1ccad51901e83916dae297cd9afa450957a36c and  
57352df66d3a0885899d39c04c067e63c7c0ba30 and updates the name  
array_type_identifier (the name in SQL:1999) to  
collection_type_identifier.  
  
closes bug #5926  

M doc/src/sgml/information_schema.sgml

Make citext's equality and hashing functions collation-insensitive.

commit   : 3ebc061c18fcf9447977d232280793e27baf71ff    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 8 Jun 2011 15:24:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 8 Jun 2011 15:24:27 -0400    

Click here for diff

This is an ugly hack to get around the fact that significant parts of the  
core backend assume they don't need to worry about passing collation to  
equality and hashing functions.  That's true for the core string datatypes,  
but citext should ideally have equality behavior that depends on the  
specified collation's LC_CTYPE.  However, there's no chance of fixing the  
core before 9.2, so we'll have to live with this compromise arrangement for  
now.  Per bug #6053 from Regina Obe.  
  
The code changes in this commit should be reverted in full once the core  
code is up to speed, but be careful about reverting the docs changes:  
I fixed a number of obsolete statements while at it.  

M contrib/citext/citext.c
M doc/src/sgml/citext.sgml

Reorder pg_ctl promote after pg_ctl status

commit   : 1bcdd66315fa1239793134e8284afc272f5975c3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 8 Jun 2011 20:51:25 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 8 Jun 2011 20:51:25 +0300    

Click here for diff

Since start/stop/restart/reload/status is a kind of standard command  
set, it seems odd to insert the special-purpose "promote" in between  
the closely related "restart" and "reload".  So put it after "status"  
in code and documentation.  
  
Put the documentation of the -U option in some sensible place.  
  
Rewrite the synopsis sentence in help and documentation to make it  
less of a growing mouthful.  

M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/bin/pg_ctl/pg_ctl.c

Allow domains over arrays to match ANYARRAY parameters again.

commit   : b7e8feb33e5d948c66720643fe32cfb06980c3d1    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 8 Jun 2011 12:52:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 8 Jun 2011 12:52:12 -0400    

Click here for diff

This use-case was broken in commit 529cb267a6843a6a8190c86b75d091771d99d6a9  
of 2010-10-21, in which I commented "For the moment, we just forbid such  
matching.  We might later wish to insert an automatic downcast to the  
underlying array type, but such a change should also change matching of  
domains to ANYELEMENT for consistency".  We still lack consensus about what  
to do with ANYELEMENT; but not matching ANYARRAY is a clear loss of  
functionality compared to prior releases, so let's go ahead and make that  
happen.  Per complaint from Regina Obe and extensive subsequent discussion.  

M src/backend/parser/parse_coerce.c
M src/test/regress/expected/domain.out
M src/test/regress/sql/domain.sql

Make DDL operations play nicely with Serializable Snapshot Isolation.

commit   : 8f9622bbb3c02b06176760c3ca2d33c5b5f629a7    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 8 Jun 2011 13:47:21 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 8 Jun 2011 13:47:21 +0300    

Click here for diff

Truncating or dropping a table is treated like deletion of all tuples, and  
check for conflicts accordingly. If a table is clustered or rewritten by  
ALTER TABLE, all predicate locks on the heap are promoted to relation-level  
locks, because the tuple or page ids of any existing tuples will change and  
won't be valid after rewriting the table. Arguably ALTER TABLE should be  
treated like a mass-UPDATE of every row, but if you e.g change the datatype  
of a column, you could also argue that it's just a change to the physical  
layout, not a logical change. Reindexing promotes all locks on the index to  
relation-level lock on the heap.  
  
Kevin Grittner, with a lot of cosmetic changes by me.  

M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/commands/cluster.c
M src/backend/commands/tablecmds.c
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h
M src/include/storage/predicate_internals.h

Complain politely about access temp/unlogged tables during recovery.

commit   : 16925c1e1fa236e4d7d6c8b571890e7c777f75d7    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 7 Jun 2011 22:12:44 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 7 Jun 2011 22:12:44 -0400    

Click here for diff

This has never been supported, but we previously let md.c issue the  
complaint for us at whatever point we tried to examine the backing file.  
Now we print a nicer error message.  
  
Per bug #6041, reported by Emanuel, and extensive discussion with Tom  
Lane over where to put the check.  

M src/backend/optimizer/util/plancat.c

Revert psql bits to display NOT VALID for FKs

commit   : 135a507991c8ea9eca201cc084294a689ca24ba9    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 7 Jun 2011 21:39:43 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 7 Jun 2011 21:39:43 -0400    

Click here for diff

These are superseded by pg_get_constraintdef's ability to display the  
same when appropriate, which is a better place to do it anyway.  

M src/bin/psql/describe.c

Make ascii-art in comments pgindent-safe, and some other formatting changes.

commit   : a31ff707a27b3ed4a1c082c131194995efbbce4b    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 7 Jun 2011 09:54:24 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 7 Jun 2011 09:54:24 +0300    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Fix rewriter to cope (more or less) with CTEs in the query being rewritten.

commit   : fc1286d3cb92adad2eae69924bead12cfeea5cc6    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 7 Jun 2011 00:08:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 7 Jun 2011 00:08:31 -0400    

Click here for diff

Since the original implementation of CTEs only allowed them in SELECT  
queries, the rule rewriter did not expect to find any CTEs in statements  
being rewritten by ON INSERT/UPDATE/DELETE rules.  We had dealt with this  
to some extent but the code was still several bricks shy of a load, as  
illustrated in bug #6051 from Jehan-Guillaume de Rorthais.  
  
In particular, we have to be able to copy CTEs from the original query's  
cteList into that of a rule action, in case the rule action references the  
CTE (which it pretty much always will).  This also implies we were doing  
things in the wrong order in RewriteQuery: we have to recursively rewrite  
the CTE queries before expanding the main query, so that we have the  
rewritten queries available to copy.  
  
There are unpleasant limitations yet to resolve here, but at least we now  
throw understandable FEATURE_NOT_SUPPORTED errors for them instead of just  
failing with bizarre implementation-dependent errors.  In particular, we  
can't handle propagating the same CTE into multiple post-rewrite queries  
(because then the CTE would be evaluated multiple times), and we can't cope  
with conflicts between CTE names in the original query and in the rule  
actions.  

M src/backend/rewrite/rewriteHandler.c
M src/test/regress/expected/with.out
M src/test/regress/sql/with.sql

Reset reindex-in-progress state before reverifying an exclusion constraint.

commit   : dccfb72892acabd25568539ec882cc44c57c25bd    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 5 Jun 2011 22:30:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 5 Jun 2011 22:30:04 -0400    

Click here for diff

This avoids an Assert failure when we try to use ordinary index fetches  
while checking for exclusion conflicts.  Per report from Noah Misch.  
  
No need for back-patch because the Assert wasn't there before 9.1.  

M src/backend/catalog/index.c
M src/test/regress/input/constraints.source
M src/test/regress/output/constraints.source

Allow building with perl 5.14.

commit   : ccd69b888641441b2332dc928ada1390dd0c318a    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sat, 4 Jun 2011 19:32:10 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sat, 4 Jun 2011 19:32:10 -0400    

Click here for diff

Patch from Alex Hunsaker.  

M src/pl/plperl/plperl.c
M src/pl/plperl/plperl.h

Fix documentation reference to "above" example

commit   : 36a1ba9d5e25d74fb50dfaccefe86f406f337a74    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 23:12:27 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 23:12:27 +0300    

Click here for diff

found by Thom Brown  

M doc/src/sgml/plpython.sgml

More ECPG documentation fixes

commit   : 4dd4bd4d8e1314b0c242e468d084400bf0734202    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 22:29:26 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 22:29:26 +0300    

Click here for diff

Marc Cousin  

M doc/src/sgml/ecpg.sgml

ECPG documentation fix

commit   : b51d05b511f7c88b8d7ae3c0d3539db9405bac80    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 22:11:20 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 4 Jun 2011 22:11:20 +0300    

Click here for diff

Marc Cousin, Satoshi Nagayasu  

M doc/src/sgml/ecpg.sgml

Expose the "*VALUES*" alias that we generate for a stand-alone VALUES list.

commit   : a9143774958e861dc1e2c198ad4c0a4a6d0b9800    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 4 Jun 2011 15:48:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 4 Jun 2011 15:48:17 -0400    

Click here for diff

We were trying to make that strictly an internal implementation detail,  
but it turns out that it's exposed anyway when dumping a view defined  
like  
	CREATE VIEW test_view AS VALUES (1), (2), (3) ORDER BY 1;  
This comes out as  
	CREATE VIEW ... ORDER BY "*VALUES*".column1;  
which fails to parse when reloading the dump.  
  
Hacking ruleutils.c to suppress the column qualification looks like it'd  
be a risky business, so instead promote the RTE alias to full-fledged  
usability.  
  
Per bug #6049 from Dylan Adams.  Back-patch to all supported branches.  

M src/backend/parser/analyze.c

Fix pg_get_constraintdef to cope with NOT VALID constraints

commit   : 048417511aef8d5fb2d541b17b73afc730935cd5    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 2 Jun 2011 12:39:53 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 2 Jun 2011 12:39:53 -0400    

Click here for diff

This case was missed when NOT VALID constraints were first introduced in  
commit 722bf7017bbe796decc79c1fde03e7a83dae9ada by Simon Riggs on  
2011-02-08.  Among other things, it causes pg_dump to omit the NOT VALID  
flag when dumping such constraints, which may cause them to fail to  
load afterwards, if they contained values failing the constraint.  
  
Per report from Thom Brown.  

M src/backend/utils/adt/ruleutils.c

Fix failure to check whether a rowtype's component types are sortable.

commit   : ea8e42f3a0848f506d8a1b9c74967248005291cd    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Jun 2011 15:38:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Jun 2011 15:38:12 -0400    

Click here for diff

The existence of a btree opclass accepting composite types caused us to  
assume that every composite type is sortable.  This isn't true of course;  
we need to check if the column types are all sortable.  There was logic  
for this for the case of array comparison (ie, check that the element  
type is sortable), but we missed the point for rowtypes.  Per Teodor's  
report of an ANALYZE failure for an unsortable composite type.  
  
Rather than just add some more ad-hoc logic for this, I moved knowledge of  
the issue into typcache.c.  The typcache will now only report out array_eq,  
record_cmp, and friends as usable operators if the array or composite type  
will work with those functions.  
  
Unfortunately we don't have enough info to do this for anonymous RECORD  
types; in that case, just assume it will work, and take the runtime failure  
as before if it doesn't.  
  
This patch might be a candidate for back-patching at some point, but  
given the lack of complaints from the field, I'd rather just test it in  
HEAD for now.  
  
Note: most of the places touched in this patch will need further work  
when we get around to supporting hashing of record types.  

M src/backend/optimizer/plan/subselect.c
M src/backend/parser/parse_oper.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/typcache.c
M src/include/catalog/pg_operator.h
M src/include/utils/typcache.h
M src/test/regress/expected/rowtypes.out
M src/test/regress/sql/rowtypes.sql

Truncate id to <=44 characters

commit   : 3ece3913d056245d78450793fc5ad18e229a3948    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 3 Jun 2011 22:23:50 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 3 Jun 2011 22:23:50 +0300    

Click here for diff

This is the original DocBook SGML limit, but apparently most  
installations have changed it or ignore it, which is why few people  
have run into this problem.  
  
pointed out by Brendan Jurd  

M doc/src/sgml/information_schema.sgml

SSI comment fixes and enhancements. Notably, document that the conflict-out flag actually means that the transaction has a conflict out to a transaction that committed before the flagged transaction.

commit   : c8630919e08c2e91435807caecb4b44c7722bf9e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 3 Jun 2011 12:45:42 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 3 Jun 2011 12:45:42 +0300    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate_internals.h

Need to list getpeereid.c in .gitignore, too ...

commit   : 52caa355ee6fd34670b6387e14c821d9128e5c88    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 22:24:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 22:24:08 -0400    

Click here for diff

M src/interfaces/libpq/.gitignore

Use proper SGML doc entities rather than angle-brackets.

commit   : a20bc9c8666ad81ff3fe26cfab2efd42d6df7f34    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 2 Jun 2011 19:32:41 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 2 Jun 2011 19:32:41 -0400    

Click here for diff

Marco Nenciarini  

M doc/src/sgml/array.sgml
M doc/src/sgml/ecpg.sgml

Handle domains when checking for recursive inclusion of composite types.

commit   : aff97b1f4e3630069a370be663b847c777b58319    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 18:37:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 18:37:57 -0400    

Click here for diff

We need this now because we allow domains over arrays, and we'll probably  
allow domains over composites pretty soon, which makes the problem even  
more obvious.  
  
Although domains over arrays also exist in previous versions, this does not  
need to be back-patched, because the coding used in older versions  
successfully "looked through" domains over arrays.  The problem is exposed  
by not treating a domain as having a typelem.  
  
Problem identified by Noah Misch, though I did not use his patch, since  
it would require additional work to handle domains over composites that  
way.  This approach is more future-proof.  

M src/backend/catalog/heap.c
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Looks like we can't declare getpeereid on Windows anyway.

commit   : 680ea6a6df345218f655eaad2c25f98900487438    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 17:27:30 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 17:27:30 -0400    

Click here for diff

... for lack of the uid_t and gid_t typedefs.  Per buildfarm.  

M src/include/port.h

libpq needs its own copy of src/port/getpeereid.

commit   : 2021c5a53a9dd7bb181b67475c960ae730f3a4fc    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 17:21:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 17:21:56 -0400    

Click here for diff

... on some platforms, anyway.  Per buildfarm.  

M src/interfaces/libpq/Makefile

Sort COMMENT synopsis and add more examples

commit   : c82d415acc39bc30962e692229c04ee23dae27b7    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 3 Jun 2011 00:17:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 3 Jun 2011 00:17:45 +0300    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/ref/comment.sgml

Clean up after erroneous SELECT FOR UPDATE/SHARE on a sequence.

commit   : ea6eda64a6425923463d358e2915980e81280483    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 15:30:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 15:30:56 -0400    

Click here for diff

My previous commit disallowed this operation, but did nothing about  
cleaning up the damage if one had already been done.  With the operation  
disallowed, it's okay to just forcibly clear xmax in a sequence's tuple,  
since any value seen there could not represent a live transaction's lock.  
So, any sequence-specific operation will repair the problem automatically,  
whether or not the user has already seen "could not access status of  
transaction" failures.  

M src/backend/commands/sequence.c

Fix vim-induced typo.

commit   : 5295fa8c0bb396bf2866205e093bc04d7a3394fe    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 2 Jun 2011 15:08:47 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 2 Jun 2011 15:08:47 -0400    

Click here for diff

M src/backend/commands/tablecmds.c

Disallow SELECT FOR UPDATE/SHARE on sequences.

commit   : 21538377ee6a0ee91f756726bd8b3de6d19fd20a    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 14:46:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 14:46:15 -0400    

Click here for diff

We can't allow this because such an operation stores its transaction XID  
into the sequence tuple's xmax.  Because VACUUM doesn't process sequences  
(and we don't want it to start doing so), such an xmax value won't get  
frozen, meaning it will eventually refer to nonexistent pg_clog storage,  
and even wrap around completely.  Since the row lock is ignored by nextval  
and setval, the usefulness of the operation is highly debatable anyway.  
Per reports of trouble with pgpool 3.0, which had ill-advisedly started  
using such commands as a form of locking.  
  
In HEAD, also disallow SELECT FOR UPDATE/SHARE on toast tables.  Although  
this does work safely given the current implementation, there seems no  
good reason to allow it.  I refrained from changing that behavior in  
back branches, however.  

M src/backend/executor/execMain.c

Typo fix.

commit   : dd2ddfb1cd40393731637101c713a3446cf92144    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 13:36:48 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 13:36:48 -0400    

Click here for diff

M src/port/getpeereid.c

Avoid creating init fork for unlogged indexes when it already exists.

commit   : b8be5431a2baa2ea4a5140f1a49c3360deb4d64e    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 2 Jun 2011 13:28:52 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 2 Jun 2011 13:28:52 -0400    

Click here for diff

Report by Greg Sabino Mullane, diagnosis and preliminary patch by  
Andres Freund, corrections by me.  

M src/backend/catalog/index.c

Implement getpeereid() as a src/port compatibility function.

commit   : 3980f7fc6ecb75952ebe76c3d30ec6731728098d    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 13:05:01 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Jun 2011 13:05:01 -0400    

Click here for diff

This unifies a bunch of ugly #ifdef's in one place.  Per discussion,  
we only need this where HAVE_UNIX_SOCKETS, so no need to cover Windows.  
  
Marko Kreen, some adjustment by Tom Lane  

M configure
M configure.in
M src/backend/libpq/auth.c
M src/include/port.h
M src/interfaces/libpq/fe-connect.c
A src/port/getpeereid.c

Allow hash joins to be interrupted while searching hash table for match.

commit   : 0c99d41ec887051fb0cc6e35e358ecc936a13584    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 1 Jun 2011 17:01:59 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 1 Jun 2011 17:01:59 -0400    

Click here for diff

Per experimentation with a recent example, in which unreasonable amounts  
of time could elapse before the backend would respond to a query-cancel.  
  
This might be something to back-patch, but the patch doesn't apply cleanly  
because this code was rewritten for 9.1.  Given the lack of field  
complaints I won't bother for now.  
  
Cédric Villemain  

M src/backend/executor/nodeHashjoin.c

Some copy editing of the release notes

commit   : 596b0c213f2f7ffa72d0d5b68e1da91c366dc72b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 1 Jun 2011 22:22:18 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 1 Jun 2011 22:22:18 +0300    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Further improvements in pg_ctl's new wait-for-postmaster-start logic.

commit   : 3c485ca8e6580409284ac50623286b0fb8cd4a57    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 1 Jun 2011 13:09:07 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 1 Jun 2011 13:09:07 -0400    

Click here for diff

Add a postmaster_is_alive() test to the wait loop, so that we stop waiting  
if the postmaster dies without removing its pidfile.  Unfortunately this  
only helps after the postmaster has created its pidfile, since until then  
we don't know which PID to check.  But if it never does create the pidfile,  
we can give up in a relatively short time, so this is a useful addition  
in practice.  Per suggestion from Fujii Masao, though this doesn't look  
very much like his patch.  
  
In addition, improve pg_ctl's ability to cope with pre-existing pidfiles.  
Such a file might or might not represent a live postmaster that is going to  
block our postmaster from starting, but the previous code pre-judged the  
situation and gave up waiting immediately.  Now, we will wait for up to 5  
seconds to see if our postmaster overwrites such a file.  This issue  
interacts with Fujii's patch because we would make the wrong conclusion  
if we did the postmaster_is_alive() test with a pre-existing PID.  
  
All of this could be improved if we rewrote start_postmaster() so that it  
could report the child postmaster's PID, so that we'd know a-priori the  
correct PID to test with postmaster_is_alive().  That looks like a bit too  
much change for so late in the 9.1 development cycle, unfortunately.  

M src/bin/pg_ctl/pg_ctl.c

Protect GIST logic that assumes penalty values can't be negative.

commit   : 6923d699bc3c46ca2c5d8c12fe1c5c39ecfee11d    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 31 May 2011 17:53:45 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 31 May 2011 17:53:45 -0400    

Click here for diff

Apparently sane-looking penalty code might return small negative values,  
for example because of roundoff error.  This will confuse places like  
gistchoose().  Prevent problems by clamping negative penalty values to  
zero.  (Just to be really sure, I also made it force NaNs to zero.)  
Back-patch to all supported branches.  
  
Alexander Korotkov  

M doc/src/sgml/gist.sgml
M src/backend/access/gist/gistutil.c

Recode non-ASCII characters in source to UTF-8

commit   : ba4cacf0756f71e175d25bac78834715a353e64e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 31 May 2011 23:10:05 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 31 May 2011 23:10:05 +0300    

Click here for diff

For consistency, have all non-ASCII characters from contributors'  
names in the source be in UTF-8.  But remove some other more  
gratuitous uses of non-ASCII characters.  

M contrib/README
M contrib/spi/timetravel.c
M src/backend/port/dynloader/darwin.c
M src/backend/storage/lmgr/README-SSI
M src/backend/storage/lmgr/predicate.c

Use entities to encode non-ASCII characters in SGML documentation

commit   : 85ffed431ae6fff0d5fbafd9a48b330542f2f4d9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 31 May 2011 22:32:31 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 31 May 2011 22:32:31 +0300    

Click here for diff

This has already been the case for the most part; just some cases had  
slipped through.  

M doc/src/sgml/isn.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.4.sgml

Replace use of credential control messages with getsockopt(LOCAL_PEERCRED).

commit   : be4585b1c27ac5dbdd0d61740d18f7ad9a00e268    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 31 May 2011 16:10:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 31 May 2011 16:10:46 -0400    

Click here for diff

It turns out the reason we hadn't found out about the portability issues  
with our credential-control-message code is that almost no modern platforms  
use that code at all; the ones that used to need it now offer getpeereid(),  
which we choose first.  The last holdout was NetBSD, and they added  
getpeereid() as of 5.0.  So far as I can tell, the only live platform on  
which that code was being exercised was Debian/kFreeBSD, ie, FreeBSD kernel  
with Linux userland --- since glibc doesn't provide getpeereid(), we fell  
back to the control message code.  However, the FreeBSD kernel provides a  
LOCAL_PEERCRED socket parameter that's functionally equivalent to Linux's  
SO_PEERCRED.  That is both much simpler to use than control messages, and  
superior because it doesn't require receiving a message from the other end  
at just the right time.  
  
Therefore, add code to use LOCAL_PEERCRED when necessary, and rip out all  
the credential-control-message code in the backend.  (libpq still has such  
code so that it can still talk to pre-9.1 servers ... but eventually we can  
get rid of it there too.)  Clean up related autoconf probes, too.  
  
This means that libpq's requirepeer parameter now works on exactly the same  
platforms where the backend supports peer authentication, so adjust the  
documentation accordingly.  

M configure
M configure.in
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/protocol.sgml
M src/backend/libpq/auth.c
M src/include/pg_config.h.in
M src/include/pg_config.h.win32
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-connect.c

Fix portability bugs in use of credentials control messages for peer auth.

commit   : 13c00ae8c73ee9635c11059925814b351dc3593c    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 30 May 2011 19:16:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 30 May 2011 19:16:05 -0400    

Click here for diff

Even though our existing code for handling credentials control messages has  
been basically unchanged since 2001, it was fundamentally wrong: it did not  
ensure proper alignment of the supplied buffer, and it was calculating  
buffer sizes and message sizes incorrectly.  This led to failures on  
platforms where alignment padding is relevant, for instance FreeBSD on  
64-bit platforms, as seen in a recent Debian bug report passed on by  
Martin Pitt (http://bugs.debian.org//cgi-bin/bugreport.cgi?bug=612888).  
  
Rewrite to do the message-whacking using the macros specified in RFC 2292,  
following a suggestion from Theo de Raadt in that thread.  Tested by me  
on Debian/kFreeBSD-amd64; since OpenBSD and NetBSD document the identical  
CMSG API, it should work there too.  
  
Back-patch to all supported branches.  

M src/backend/libpq/auth.c
M src/interfaces/libpq/fe-auth.c

Fix VACUUM so that it always updates pg_class.reltuples/relpages.

commit   : b4b6923e03f4d29636a94f6f4cc2f5cf6298b8c8    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 30 May 2011 17:05:26 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 30 May 2011 17:05:26 -0400    

Click here for diff

When we added the ability for vacuum to skip heap pages by consulting the  
visibility map, we made it just not update the reltuples/relpages  
statistics if it skipped any pages.  But this could leave us with extremely  
out-of-date stats for a table that contains any unchanging areas,  
especially for TOAST tables which never get processed by ANALYZE.  In  
particular this could result in autovacuum making poor decisions about when  
to process the table, as in recent report from Florian Helmberger.  And in  
general it's a bad idea to not update the stats at all.  Instead, use the  
previous values of reltuples/relpages as an estimate of the tuple density  
in unvisited pages.  This approach results in a "moving average" estimate  
of reltuples, which should converge to the correct value over multiple  
VACUUM and ANALYZE cycles even when individual measurements aren't very  
good.  
  
This new method for updating reltuples is used by both VACUUM and ANALYZE,  
with the result that we no longer need the grotty interconnections that  
caused ANALYZE to not update the stats depending on what had happened  
in the parent VACUUM command.  
  
Also, fix the logic for skipping all-visible pages during VACUUM so that it  
looks ahead rather than behind to decide what to do, as per a suggestion  
from Greg Stark.  This eliminates useless scanning of all-visible pages at  
the start of the relation or just after a not-all-visible page.  In  
particular, the first few pages of the relation will not be invariably  
included in the scanned pages, which seems to help in not overweighting  
them in the reltuples estimate.  
  
Back-patch to 8.4, where the visibility map was introduced.  

M src/backend/commands/analyze.c
M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/postmaster/pgstat.c
M src/include/commands/vacuum.h
M src/include/pgstat.h

Suppress foreign data wrappers and foreign servers in partial dumps

commit   : 3001b76308e9189ff471c54b1823621e03dc1359    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 30 May 2011 23:34:34 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 30 May 2011 23:34:34 +0300    

Click here for diff

This is consistent with the behavior of other global objects such as  
languages and extensions.  
  
Omitting foreign servers also omits the respective user mappings.  

M src/bin/pg_dump/pg_dump.c

Don't recommend upgrading to latest available Windows SDK

commit   : 2367da886d4ab903c7bf5037b363ca10489cdf85    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:46:14 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:46:14 +0200    

Click here for diff

We only support up to version 7.0, so don't recommend  
upgrading past it. The rest of the documentation around this  
was already updated, but one spot was missed.  

M doc/src/sgml/install-windows.sgml

Refuse "local" lines in pg_hba.conf on platforms that don't support it

commit   : 5830f69665053f78cfd31e39f40bb23ad91748a8    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:11:13 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:11:13 +0200    

Click here for diff

This makes the behavior compatible with that of hostssl, which  
also throws an error when there is no SSL support included.  

M src/backend/libpq/hba.c

Don't include local line on platforms without support

commit   : 764bde0f1641cc3aafa2c221c56bd3a8129d9e3b    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:09:51 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 30 May 2011 20:09:51 +0200    

Click here for diff

Since we now include a sample line for replication on local  
connections in pg_hba.conf, don't include it where local  
connections aren't available (such as on win32).  
  
Also make sure we use authmethodlocal and not authmethod on  
the sample line.  

M src/backend/libpq/pg_hba.conf.sample

commit   : 3103f9a77d005f9d8b8ef492298bbbbf6c4b843f    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 30 May 2011 20:42:16 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 30 May 2011 20:42:16 +0300    

Click here for diff

Kevin Grittner & Dan Ports, with some comment editorialization by me.  

M src/backend/access/heap/heapam.c
M src/backend/access/index/indexam.c
M src/backend/storage/lmgr/README-SSI
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h
M src/test/isolation/expected/multiple-row-versions.out
M src/test/isolation/specs/multiple-row-versions.spec

Make message more consistent

commit   : 5177dfefc532ea481bf70d1bb8a493f835a9c57c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 30 May 2011 12:40:28 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 30 May 2011 12:40:28 -0400    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

Remove usage of &PL_sv_undef in hashes and arrays

commit   : 7de38741c0438cdece0e22699de8ffd5797735fb    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 30 May 2011 12:15:13 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 30 May 2011 12:15:13 -0400    

Click here for diff

According to perlguts, &PL_sv_undef is not the right thing to use in  
those cases because it doesn't behave the same way as an undef value via  
Perl code.  Seems the intuitive way to deal with undef values is subtly  
enough broken that it's hard to notice when misused.  
  
The broken uses got inadvertently introduced in commit  
87bb2ade2ce646083f39d5ab3e3307490211ad04 by Alexey Klyukin, Alex  
Hunsaker and myself on 2011-02-17; no backpatch is necessary.  
  
Per testing report from Greg Mullane.  
  
Author: Alex Hunsaker  

M src/pl/plperl/plperl.c

Add pg_basebackup -z option for compression with default level

commit   : 6fa79755bd393cdfadb6197164cbe01498474be3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 30 May 2011 01:02:02 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 30 May 2011 01:02:02 +0300    

Click here for diff

M doc/src/sgml/ref/pg_basebackup.sgml
M src/bin/pg_basebackup/pg_basebackup.c

Correct description of log_connections and log_disconnections

commit   : cb0defe5230f3773feb334a01b990c9eaaca301b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 21:59:10 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 21:59:10 +0300    

Click here for diff

The previous claim when these parameters could be changed was  
incorrect.  
  
Fujii Masao  

M doc/src/sgml/config.sgml

Allow pg_basebackup compressed tar output to stdout

commit   : d68714b29c42d10437b56372d6b0a1dda1e7d7f5    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 01:17:37 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 01:17:37 +0300    

Click here for diff

M doc/src/sgml/ref/pg_basebackup.sgml
M src/bin/pg_basebackup/pg_basebackup.c

Avoid compiler warning when building without zlib

commit   : 1b6dabc452b9357e39b63a94c109e2293f13a555    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 01:03:38 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 29 May 2011 01:03:38 +0300    

Click here for diff

M src/bin/pg_dump/compress_io.c

Fix null-dereference crash in parse_xml_decl().

commit   : 5e1365a9650678a531106120e40676a9417971f1    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 28 May 2011 12:36:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 28 May 2011 12:36:04 -0400    

Click here for diff

parse_xml_decl's header comment says you can pass NULL for any unwanted  
output parameter, but it failed to honor this contract for the "standalone"  
flag.  The only currently-affected caller is xml_recv, so the net effect is  
that sending a binary XML value containing a standalone parameter in its  
xml declaration would crash the backend.  Per bug #6044 from Christopher  
Dillard.  
  
In passing, remove useless initializations of parse_xml_decl's output  
parameters in xml_parse.  
  
Back-patch to 8.3, where this code was introduced.  

M src/backend/utils/adt/xml.c

Remove unused variable

commit   : 4c60a77508ee4f4d895629905265d79feaab108c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 27 May 2011 21:49:22 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 27 May 2011 21:49:22 -0400    

Click here for diff

Cédric Villemain  

M src/backend/commands/tablecmds.c

Remove literal tabs from message strings

commit   : 4d7d6386d701ebf36a4de4c2a8c32826a999e437    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 28 May 2011 01:01:42 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 28 May 2011 01:01:42 +0300    

Click here for diff

M contrib/pg_standby/pg_standby.c

Drop "meaning" column from error code table

commit   : 420dcaaeb1a3be51b6417da59ce69d7954369211    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 28 May 2011 00:25:33 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 28 May 2011 00:25:33 +0300    

Click here for diff

This is currently the same as the condition name, so it doesn't add  
any value, only clutter.  

M doc/src/sgml/errcodes.sgml
M doc/src/sgml/generate-errcodes-table.pl

Improve corner cases in pg_ctl's new wait-for-postmaster-startup code.

commit   : 0bae3bc9be4a025df089f0a0c2f547fa538a97bc    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 27 May 2011 14:13:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 27 May 2011 14:13:38 -0400    

Click here for diff

With "-w -t 0", we should report "still starting up", not "ok".  If we  
fall out of the loop without ever being able to call PQping (because we  
were never able to construct a connection string), report "no response",  
not "ok".  This gets rid of corner cases in which we'd claim the server  
had started even though it had not.  
  
Also, if the postmaster.pid file is not there at any point after we've  
waited 5 seconds, assume the postmaster has failed and report that, rather  
than almost-certainly-fruitlessly continuing to wait.  The pidfile should  
appear almost instantly even when there is extensive startup work to do,  
so 5 seconds is already a very conservative figure.  This part is per a  
gripe from MauMau --- there might be better ways to do it, but nothing  
simple enough to get done for 9.1.  

M src/bin/pg_ctl/pg_ctl.c

Preserve caller's memory context in ProcessCompletedNotifies().

commit   : 90857b48e1f69dbca52f498bd444190d36dbd73f    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 27 May 2011 12:10:32 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 27 May 2011 12:10:32 -0400    

Click here for diff

This is necessary to avoid long-term memory leakage, because the main loop  
in PostgresMain expects to be executing in MessageContext, and hence is a  
bit sloppy about freeing stuff that is only needed for the duration of  
processing the current client message.  The known case of an actual leak  
is when encoding conversion has to be done on the incoming command string,  
but there might be others.  Per report from Per-Olov Esgard.  
  
Back-patch to 9.0, where the bug was introduced by the LISTEN/NOTIFY  
rewrite.  

M src/backend/commands/async.c

Check the return code of pthread_create(). Otherwise we go into an infinite loop if it fails, which is what what happened on my HP-UX box. (I think the reason it failed on that box is a misconfiguration on my behalf, but that's no reason to hang.)

commit   : 336db7e3474508b46a0e6bdb013a8bee5aac9adf    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 27 May 2011 11:51:23 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 27 May 2011 11:51:23 +0300    

Click here for diff

M src/test/thread/thread_test.c

Make decompilation of optimized CASE constructs more robust.

commit   : 3987e9e62046bd800d8d08566ed49fee1ae6cb86    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 May 2011 19:25:19 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 May 2011 19:25:19 -0400    

Click here for diff

We had some hacks in ruleutils.c to cope with various odd transformations  
that the optimizer could do on a CASE foo WHEN "CaseTestExpr = RHS" clause.  
However, the fundamental impossibility of covering all cases was exposed  
by Heikki, who pointed out that the "=" operator could get replaced by an  
inlined SQL function, which could contain nearly anything at all.  So give  
up on the hacks and just print the expression as-is if we fail to recognize  
it as "CaseTestExpr = RHS".  (We must cover that case so that decompiled  
rules print correctly; but we are not under any obligation to make EXPLAIN  
output be 100% valid SQL in all cases, and already could not do so in some  
other cases.)  This approach requires that we have some printable  
representation of the CaseTestExpr node type; I used "CASE_TEST_EXPR".  
  
Back-patch to all supported branches, since the problem case fails in all.  

M src/backend/utils/adt/ruleutils.c

Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible.

commit   : 44404f394517f89a0bebb1aaace6e64ad79d2817    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 May 2011 17:29:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 May 2011 17:29:33 -0400    

Click here for diff

This is reported to be necessary on some versions of that OS.  In service  
of this, cause PGAC_PROG_CC_CFLAGS_OPT to reject switches that result in  
compiler warnings, since on yet other versions of that OS, the switch does  
nothing except provoke a warning.  
  
Report and patch by Ibrar Ahmed, further tweaking by me.  

M config/c-compiler.m4
M configure
M configure.in

Suppress extensions in partial dumps.

commit   : 7b158d1baed859971c1aa792bff6a7e1f721cf91    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 May 2011 16:26:45 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 May 2011 16:26:45 -0400    

Click here for diff

We initially had pg_dump emit CREATE EXTENSION commands unconditionally.  
However, pg_dump has long been in the habit of not dumping procedural  
language definitions when a --schema or --table switch is given.  It seems  
appropriate to handle extensions the same way, since like PLs they are SQL  
objects that are not in any particular schema.  Per complaint from Adrian  
Schreyer.  

M src/bin/pg_dump/pg_dump.c

Put options in some sensible order

commit   : 3439e40f9afa5e8702c8e3e7d0b09a0cb4b07e73    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 25 May 2011 21:53:26 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 25 May 2011 21:53:26 +0300    

Click here for diff

For the --help output and reference pages of pg_dump, pg_dumpall,  
pg_restore, put the options in some consistent, mostly alphabetical,  
and consistent order, rather than newest option last or something like  
that.  

M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_restore.sgml
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c

Convert builddoc.bat into a perl script that actually works.

commit   : 8c3604ae7fa1602e00b639447e894f9d59f9d297    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 25 May 2011 00:21:07 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 25 May 2011 00:21:07 -0400    

Click here for diff

The old .bat file wasn't working for reasons that are unclear, and  
which it did not seem worth the trouble to ascertain.  
The new perl script has been tested and is known to work.  
Soon it will be tested regularly on the buildfarm.  
The .bat file is kept as a simple wrapper for the perl script.  

M src/tools/msvc/builddoc.bat
A src/tools/msvc/builddoc.pl

Add C comment about why we don't spell out "month" in interval values.

commit   : 0711a8b2b340ee0b0a7fd7ea2ac0fa6aee4708ae    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 24 May 2011 23:24:44 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 24 May 2011 23:24:44 -0400    

Click here for diff

M src/backend/utils/adt/datetime.c

Grammar cleanup for src/test/isolation/README

commit   : 446d5d32aedcca378578c8fe1c2eed34df92a238    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 18:52:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 18:52:15 -0400    

Click here for diff

Josh Kupershmidt  

M src/test/isolation/README

Cleanup for pull-up-isReset patch.

commit   : b23aeb6519651146cf35b2b91d24596f37b40794    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 17:56:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 17:56:52 -0400    

Click here for diff

Clear isReset before, not after, calling the context-specific alloc method,  
so as to preserve the option to do a tail call in MemoryContextAlloc  
(and also so this code isn't assuming that a failed alloc call won't have  
changed the context's state before failing).  Fix missed direct invocation  
of reset method.  Reformat a comment.  

M src/backend/utils/mmgr/aset.c
M src/backend/utils/mmgr/mcxt.c

In pg_upgrade, do case-insensitive checks of locale, encoding, and ctype because these are often inconsistently capitalized.

commit   : 11c08c3fd79f1fd5a83f9156fc1c43c7be3453ce    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 24 May 2011 15:59:00 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 24 May 2011 15:59:00 -0400    

Click here for diff

M contrib/pg_upgrade/check.c

Adjust configure's probe for libselinux so it rejects too-old versions.

commit   : 8ff1f6a78c4fb48337f671f1586839cef5d4b940    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 15:49:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 15:49:56 -0400    

Click here for diff

We need at least version 2.0.93, so probe for a function that was added  
in that version.  
  
Kaigai Kohei  

M configure
M configure.in

Add a "local" replication sample entry

commit   : f50655900a865d65d17bb79f57f1d8c48b1cb266    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 24 May 2011 21:28:30 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 24 May 2011 21:28:30 +0300    

Click here for diff

Also adjust alignment a bit to distinguish commented out from comment.  

M src/backend/libpq/pg_hba.conf.sample

Message improvements

commit   : c8d45152fa04c77370fc16faf0727c0f52739f0a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 24 May 2011 21:25:28 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 24 May 2011 21:25:28 +0300    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

Avoid uninitialized bits in the result of QTN2QT().

commit   : cc24fb418d8da7ed93f9cd936f7da8fc7e0381bf    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 14:20:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 May 2011 14:20:08 -0400    

Click here for diff

Found with additional valgrind testing.  
  
Noah Misch  

M src/backend/utils/adt/tsquery_util.c

Make plpgsql complain about conflicting IN and OUT parameter names.

commit   : 59a4a571d396ec00a7e363dca8b2f5eb2d8307ad    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 23 May 2011 16:34:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 23 May 2011 16:34:27 -0400    

Click here for diff

The core CREATE FUNCTION code only enforces that IN parameter names are  
non-duplicate, and that OUT parameter names are separately non-duplicate.  
This is because some function languages might not have any confusion  
between the two.  But in plpgsql, such names are all in the same namespace,  
so we'd better disallow it.  
  
Per a recent complaint from Dan S.  Not back-patching since this is a small  
issue and the change could cause unexpected failures if we started to  
enforce it in a minor release.  

M src/pl/plpgsql/src/pl_comp.c

Fix integer overflow in text_format function, reported by Dean Rasheed.

commit   : 34be83b7e142a718c7a831c9df9763aa83fe4cd5    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 23 May 2011 22:18:19 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 23 May 2011 22:18:19 +0300    

Click here for diff

In the passing, clarify the comment on why text_format_nv wrapper is needed.  

M src/backend/utils/adt/varlena.c

Improve hash_array() logic for combining hash values.

commit   : 7149b128dc12ece64c182962dc4f882ea7559d0c    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 23 May 2011 15:17:18 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 23 May 2011 15:17:18 -0400    

Click here for diff

The new logic is less vulnerable to transpositions.  
  
This invalidates the contents of hash indexes built with the old  
functions; hence, bump catversion.  
  
Dean Rasheed  

M src/backend/utils/adt/arrayfuncs.c
M src/include/catalog/catversion.h

Message style improvements

commit   : c58b945e23e63a0baca67b216a5225b34de84cce    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 23 May 2011 20:38:20 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 23 May 2011 20:38:20 +0300    

Click here for diff

M src/bin/pg_dump/pg_dumpall.c

Install defenses against overflow in BuildTupleHashTable().

commit   : 299d1716525c659f0e02840e31fbe4dea3cc796c    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 23 May 2011 12:52:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 23 May 2011 12:52:46 -0400    

Click here for diff

The planner can sometimes compute very large values for numGroups, and in  
cases where we have no alternative to building a hashtable, such a value  
will get fed directly to BuildTupleHashTable as its nbuckets parameter.  
There were two ways in which that could go bad.  First, BuildTupleHashTable  
declared the parameter as "int" but most callers were passing "long"s,  
so on 64-bit machines undetected overflow could occur leading to a bogus  
negative value.  The obvious fix for that is to change the parameter to  
"long", which is what I've done in HEAD.  In the back branches that seems a  
bit risky, though, since third-party code might be calling this function.  
So for them, just put in a kluge to treat negative inputs as INT_MAX.  
Second, hash_create can go nuts with extremely large requested table sizes  
(notably, my_log2 becomes an infinite loop for inputs larger than  
LONG_MAX/2).  What seems most appropriate to avoid that is to bound the  
initial table size request to work_mem.  
  
This fixes bug #6035 reported by Daniel Schreiber.  Although the reported  
case only occurs back to 8.4 since it involves WITH RECURSIVE, I think  
it's a good idea to install the defenses in all supported branches.  

M src/backend/executor/execGrouping.c
M src/backend/executor/nodeSubplan.c
M src/include/executor/executor.h

Remove spurious underscore in name of isolation tester on MSVC.

commit   : a9b6519606a4a95ae8052f8414841d02bcfe4582    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 22 May 2011 21:51:18 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 22 May 2011 21:51:18 -0400    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/vcregress.pl

Use the right pgsql for isolation tests.

commit   : b08ddf8c761cd596c4664dde1125f38a8757756f    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 22 May 2011 17:58:26 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 22 May 2011 17:58:26 -0400    

Click here for diff

M src/test/isolation/Makefile

Put lists in sensible order

commit   : 60497722ac6d69d8ff82fe328b0a128e73433bec    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 22:21:37 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 22:21:37 +0300    

Click here for diff

M doc/src/sgml/information_schema.sgml

Make plpgsql provide the typmods for its variables to the main parser.

commit   : 219dfae4e1b0ca7cbc0b2f0f7740e01657964c07    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 22 May 2011 15:13:35 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 22 May 2011 15:13:35 -0400    

Click here for diff

Historically we didn't do this, even though we had the information, because  
plpgsql passed its Params via SPI APIs that only include type OIDs not  
typmods.  Now that plpgsql uses parser callbacks to create Params, it's  
easy to insert the right typmod.  This should generally result in lower  
surprise factors, because a plpgsql variable that is declared with a typmod  
will now work more like a table column with the same typmod.  In particular  
it's the "right" way to fix bug #6020, in which plpgsql's attempt to return  
an anonymous record type is defeated by stricter record-type matching  
checks that were added in 9.0.  However, it's not impossible that this  
could result in subtle behavioral changes that could break somebody's  
existing plpgsql code, so I'm afraid to back-patch this change into  
released branches.  In those branches we'll have to lobotomize the  
record-type checks instead.  

M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/plpgsql.h

Message style improvements

commit   : fae625e7b9824ec64f770904108089ff4fbcf093    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 20:04:07 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 20:04:07 +0300    

Click here for diff

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_restore.c

Put documentation of backslash commands back in alphabetical order

commit   : 7920d033d8b580f00ede0628ee0b1c3a3f3c6b43    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 15:13:17 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 15:13:17 +0300    

Click here for diff

M doc/src/sgml/ref/psql-ref.sgml

Clarify the documentation of the --with-ossp-uuid option

commit   : 51ad1784ccf9c2a72238a50a314771e34721f1d3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 14:29:36 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 14:29:36 +0300    

Click here for diff

M configure
M configure.in
M doc/src/sgml/installation.sgml

Message improvement

commit   : 8932e2810034c43daa07c6da914a4c5ba46f6bd6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 00:36:14 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 22 May 2011 00:36:14 +0300    

Click here for diff

M src/bin/psql/command.c

Pull up isReset flag from AllocSetContext to MemoryContext struct. This avoids the overhead of one function call when calling MemoryContextReset(), and it seems like the isReset optimization would be applicable to any new memory context we might invent in the future anyway.

commit   : 30e98a7e6e4869a7d6b3748ac9770bb8d69a8b26    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 14:47:19 -0400    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 14:47:19 -0400    

Click here for diff

This buys back the overhead I just added in previous patch to always call  
MemoryContextReset() in ExecScan, even when there's no quals or projections.  

M src/backend/utils/mmgr/aset.c
M src/backend/utils/mmgr/mcxt.c
M src/include/nodes/memnodes.h

Reset per-tuple memory context between every row in a scan node, even when there's no quals or projections. Currently this only matters for foreign scans, as none of the other scan nodes litter the per-tuple memory context when there's no quals or projections.

commit   : 0319da638f337cae66a4649581dc1f33d5079e1a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 14:30:11 -0400    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 14:30:11 -0400    

Click here for diff

M src/backend/executor/execScan.c

In binary-upgrade mode, dump dropped attributes of composite types.

commit   : 27c7875d95cf629e3f344ba91d1f8a1a936ed043    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 08:18:00 -0400    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 21 May 2011 08:18:00 -0400    

Click here for diff

Noah Misch  

M src/bin/pg_dump/pg_dump.c
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Message style improvements

commit   : bcf63a51e3dbf7cdb70af03ed13e6984dee41ec0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 21 May 2011 00:50:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 21 May 2011 00:50:35 +0300    

Click here for diff

M src/backend/utils/adt/arrayfuncs.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpython/plpython.c
M src/test/regress/expected/arrays.out

Rename pg_dump --no-security-label to --no-security-labels

commit   : c8e0c321194c985a13e7c7e4d3110ac032517350    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 23:20:11 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 23:20:11 +0300    

Click here for diff

Other similar options also use the plural form.  

M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_restore.sgml
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c

Fix untranslatable assembly of libpq connection failure message

commit   : fcd4575905608a6dd0868bd6ab99f3e06a743152    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 22:56:53 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 22:56:53 +0300    

Click here for diff

Even though this only affects the insertion of a parenthesized word,  
it's unwise to assume that parentheses can pass through untranslated.  
And in any case, the new version is clearer in the code and for  
translators.  

M src/interfaces/libpq/fe-connect.c

Update config.guess and config.sub

commit   : 8d8954938094744ef4cab9d6f45f8e9e8abeb58f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 22:14:56 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 22:14:56 +0300    

Click here for diff

M config/config.guess
M config/config.sub

Consistent spacing for lengthy error messages

commit   : bb46d42859f62d5fbe8a8b55690643cba65e106c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 21:36:57 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 21:36:57 +0300    

Click here for diff

Also, we removed the display of the current value of  
max_connections/MaxBackends from some messages earlier, because it was  
confusing, so do that in the remaining one as well.  

M src/backend/port/sysv_sema.c
M src/backend/port/sysv_shmem.c

Add example for replication in pg_hba.conf

commit   : a937b07121d8ab51ba6fb44618254ec13cdcdfa0    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 19 May 2011 14:03:15 -0400    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 19 May 2011 14:03:15 -0400    

Click here for diff

Selena Deckelmann  

M src/backend/libpq/pg_hba.conf.sample
M src/bin/initdb/initdb.c

Fix race condition in CheckTargetForConflictsIn.

commit   : 74aaa2136d13d613ffcea3171781d2e0c65a2e10    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 19 May 2011 12:11:05 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 19 May 2011 12:11:05 -0400    

Click here for diff

Dan Ports  

M src/backend/storage/lmgr/predicate.c

Fix declaration of $_TD in "strict" trigger functions

commit   : 6b449d9051651d3accfdce73e21cfd5e3d0e09a3    
  
author   : Alvaro Herrera <[email protected]>    
date     : Wed, 18 May 2011 23:56:18 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Wed, 18 May 2011 23:56:18 -0400    

Click here for diff

This was broken in commit ef19dc6d39dd2490ff61489da55d95d6941140bf by  
the Bunce/Hunsaker/Dunstan team, which moved the declaration from  
plperl_create_sub to plperl_call_perl_trigger_func.  This doesn't  
actually work because the validator code would not find the variable  
declared; and even if you manage to get past the validator, it still  
doesn't work because get_sv("_TD", GV_ADD) doesn't have the expected  
effect.  The only reason this got beyond testing is that it only fails  
in strict mode.  
  
We need to declare it as a global just like %_SHARED; it is simpler than  
trying to actually do what the patch initially intended, and is said to  
have the same performance benefit.  
  
As a more serious issue, fix $_TD not being properly local()ized,  
meaning nested trigger functions would clobber $_TD.  
  
Alex Hunsaker, per test report from Greg Mullane  

M src/pl/plperl/expected/plperl_trigger.out
M src/pl/plperl/plc_perlboot.pl
M src/pl/plperl/plperl.c
M src/pl/plperl/sql/plperl_trigger.sql

Replace strdup() with pstrdup(), to avoid leaking memory.

commit   : ea896da394cbb0fb32a4b41065ea04b81c4b03f6    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 18 May 2011 22:30:24 -0400    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 18 May 2011 22:30:24 -0400    

Click here for diff

It's been like this since the seg module was introduced, so backpatch to  
8.2 which is the oldest supported version.  

M contrib/seg/seg.c

In pg_upgrade, clean up handling of invalid directory specification by checking the stat() errno value more strictly.

commit   : 1f35944607f1ede7dbb1dc3283d955b96f04ea5e    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 22:22:40 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 22:22:40 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c

Improve pg_upgrade error reporting if the bin or data directories do not exist or are not directories.

commit   : 772a5f1e5b343d07e907ef7f36fa36d190d55912    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 18:36:52 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 18:36:52 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c

Remove obsolete comment

commit   : 4a6a5c86db7362993a13b32bb0c02c956d94ff13    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 01:19:57 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 01:19:57 +0300    

Click here for diff

M doc/src/sgml/errcodes.sgml

Spell checking and markup refinement

commit   : c13dc6402b6e99af9a8b7794e44d62deecafc745    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 01:14:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 01:14:45 +0300    

Click here for diff

M doc/src/sgml/backup.sgml
M doc/src/sgml/btree-gist.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/file-fdw.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/perform.sgml
M doc/src/sgml/pgtestfsync.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/cluster.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/ref/create_type.sgml
M doc/src/sgml/ref/ecpg-ref.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/release-9.1.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/sepgsql.sgml
M doc/src/sgml/xml2.sgml
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistxlog.c
M src/backend/catalog/sql_features.txt
M src/backend/commands/indexcmds.c
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/opr_sanity.sql

/contrib/foo -> contrib/foo

commit   : 0ee391b77a8aef3835a39ecc4856a9ab79936f56    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 00:30:31 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 May 2011 00:30:31 +0300    

Click here for diff

Since contrib is a relative directory specification, a leading slash  
is inappropriate.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M doc/src/sgml/release-9.1.sgml

Improve pg_upgrade X_OK comment.

commit   : 92ff91501846bd0343eea726d9ca83464cda07af    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 12:25:34 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 12:25:34 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c

Fix pg_upgrade build problem on Windows when using X_OK access permission check on the current directory.

commit   : 6fbf4e0e7c0839c33ed2d63f3c64abdc049f6d1b    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 12:13:37 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 18 May 2011 12:13:37 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c

Fix pg_dump's handling of extension-member casts and languages.

commit   : b3bc63efbc258874b06586aa7548fce37f3581e1    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 16 May 2011 16:41:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 16 May 2011 16:41:52 -0400    

Click here for diff

pg_dump has some heuristic rules for whether to dump casts and procedural  
languages, since it's not all that easy to distinguish built-in ones from  
user-defined ones.  However, we should not apply those rules to objects  
that belong to an extension, but just use the perfectly well-defined rules  
for what to do with extension member objects.  Otherwise we might  
mistakenly lose extension member objects during a binary upgrade (which is  
the only time that we'd want to dump extension members).  

M src/bin/pg_dump/pg_dump.c

Update pg_upgrade directory check error message.

commit   : e728701fb496ace7fa21fcce5c0ef7fc4c0ec78c    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 12:32:36 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 12:32:36 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c

Remove redundant privilege doc sentences.

commit   : 8a849cdee4dff3406a405e83e9504ebc52bbcfaa    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 11:22:25 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 11:22:25 -0400    

Click here for diff

M doc/src/sgml/ddl.sgml

Add pg_upgrade check to make sure the user has full access permission in the current directory; if not, throw an error.

commit   : bda27e502fe9a3e9c54f065e4bc1315c3f2a57d7    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 11:01:29 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 11:01:29 -0400    

Click here for diff

M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/pg_upgrade.c

Allow pg_upgrade to honor libpq environment variables. Add 'local' checks for PGHOST and PGHOSTADDR.

commit   : 6c19bd96bc5139fabace94c5a0a5624fd9d8e986    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 10:46:52 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 16 May 2011 10:46:52 -0400    

Click here for diff

M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/util.c
M doc/src/sgml/pgupgrade.sgml

Quote isolationtester command name so Windows will not think dot is the command.

commit   : 78b66cff72d6f337a685355f7ccede1c518681b5    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 23:42:12 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 23:42:12 -0400    

Click here for diff

M src/test/isolation/isolation_main.c

Add required psqldir setting for isolation checks.

commit   : df15d11cb596fa69d7ffb27cf0b7b070c03ab381    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 23:12:36 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 23:12:36 -0400    

Click here for diff

M src/tools/msvc/vcregress.pl

Fix bad macro call noticed by MSVC compiler.

commit   : ec645ef346d2de2fb889f6b8a8d2fc70a4ea4971    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 18:45:26 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 18:45:26 -0400    

Click here for diff

M src/test/regress/pg_regress.c

Add missing check function lookup.

commit   : 20bacc9560b29b33b6cad4e53c6a77e6c8a71c5d    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 18:03:19 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 18:03:19 -0400    

Click here for diff

M src/tools/msvc/vcregress.pl

Build and run isolation test programs under MSVC.

commit   : 840826e36cd40e63a3af05d9b41dc65250bc7a7a    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 17:55:05 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 15 May 2011 17:55:05 -0400    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/pgbison.bat
M src/tools/msvc/pgflex.bat
M src/tools/msvc/vcregress.pl

More cleanup of FOREIGN TABLE permissions handling.

commit   : 9bb6d9795253bb521f81c626fea49a704a369ca9    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 13 May 2011 15:47:31 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 13 May 2011 15:47:31 -0400    

Click here for diff

This commit fixes psql, pg_dump, and the information schema to be  
consistent with the backend changes which I made as part of commit  
be90032e0d1cf473bdd99aee94218218f59f29f1, and also includes a  
related documentation tweak.  
  
Shigeru Hanada, with slight adjustment.  

M doc/src/sgml/ref/grant.sgml
M src/backend/catalog/information_schema.sql
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h

Kill stray "not".

commit   : c5ab8425be07f6a866ce84dc03f87d6924421e72    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 12 May 2011 17:10:30 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 12 May 2011 17:10:30 -0400    

Click here for diff

M src/backend/commands/cluster.c

Fix write-past-buffer-end in ldapServiceLookup().

commit   : 8d0df2048f8c0663b41440eeaf73e8859c922e28    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 12 May 2011 11:56:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 12 May 2011 11:56:38 -0400    

Click here for diff

The code to assemble ldap_get_values_len's output into a single string  
wrote the terminating null one byte past where it should.  Fix that,  
and make some other cosmetic adjustments to make the code a trifle more  
readable and more in line with usual Postgres coding style.  
  
Also, free the "result" string when done with it, to avoid a permanent  
memory leak.  
  
Bug report and patch by Albe Laurenz, cosmetic adjustments by me.  

M src/interfaces/libpq/fe-connect.c

Fix assorted typos

commit   : c6eb5740b3c352fb10bf61bb4465332ae6b28ab1    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 1 Feb 2011 19:07:42 -0500    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 1 Feb 2011 19:07:42 -0500    

Click here for diff

M contrib/pg_standby/pg_standby.c
M src/backend/access/transam/clog.c

Split PGC_S_DEFAULT into two values, for true boot_val vs computed default.

commit   : e05b866447899211a0c2df31bf0671faac4fc3e5    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 11 May 2011 19:57:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 11 May 2011 19:57:38 -0400    

Click here for diff

Failure to distinguish these cases is the real cause behind the recent  
reports of Windows builds crashing on 'infinity'::timestamp, which was  
directly due to failure to establish a value of timezone_abbreviations  
in postmaster child processes.  The postmaster had the desired value,  
but write_one_nondefault_variable() didn't transmit it to backends.  
  
To fix that, invent a new value PGC_S_DYNAMIC_DEFAULT, and be sure to use  
that or PGC_S_ENV_VAR (as appropriate) for "default" settings that are  
computed during initialization.  (We need both because there's at least  
one variable that could receive a value from either source.)  
  
This commit also fixes ProcessConfigFile's failure to restore the correct  
default value for certain GUC variables if they are set in postgresql.conf  
and then removed/commented out of the file.  We have to recompute and  
reinstall the value for any GUC variable that could have received a value  
from PGC_S_DYNAMIC_DEFAULT or PGC_S_ENV_VAR sources, and there were a  
number of oversights.  (That whole thing is a crock that needs to be  
redesigned, but not today.)  
  
However, I intentionally didn't make it work "exactly right" for the cases  
of timezone and log_timezone.  The exactly right behavior would involve  
running select_default_timezone, which we'd have to do independently in  
each postgres process, causing the whole database to become entirely  
unresponsive for as much as several seconds.  That didn't seem like a good  
idea, especially since the variable's removal from postgresql.conf might be  
just an accidental edit.  Instead the behavior is to adopt the previously  
active setting as if it were default.  
  
Note that this patch creates an ABI break for extensions that use any of  
the PGC_S_XXX constants; they'll need to be recompiled.  

M src/backend/utils/init/postinit.c
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/include/utils/guc.h
M src/timezone/pgtz.c

Clean up parsing of CREATE TRIGGER's argument list.

commit   : 6fc6686b48bc569b05ce711d18cf964498b217f2    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 11 May 2011 14:43:01 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 11 May 2011 14:43:01 -0400    

Click here for diff

Use ColLabel in place of ColId, so that reserved words are accepted as if  
they were not reserved.  Also, remove BCONST and XCONST, which were never  
documented as allowed.  Allowing those exposes to users an implementation  
detail, namely the format in which the lexer outputs such constants, that  
seems unwise to expose.  
  
No documentation change needed, since this just makes the code act more  
like you'd expect from reading the CREATE TRIGGER man page.  
  
Per complaint from Szymon Guz and subsequent discussion.  

M src/backend/parser/gram.y

Shut down WAL receiver if it's still running at end of recovery. We used to just check that it's not running and PANIC if it was, but that can rightfully happen if recovery stops at recovery target.

commit   : a0c8514149de92d48a8cf0f1a1458486851980a4    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 11 May 2011 12:46:08 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 11 May 2011 12:46:08 +0300    

Click here for diff

M src/backend/access/transam/xlog.c

Be more explicit about the meaning of the change in standard_conforming_strings.

commit   : ea964a451e51a32b71d004d261874adb1e135066    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 23:44:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 23:44:33 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Mention "backslash" escape processing change in 9.1 release notes.

commit   : 64cc297dc9875a6feb3a310038707b6119b775ca    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 20:56:44 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 20:56:44 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Prevent datebsearch() from crashing on base == NULL && nel == 0.

commit   : 2e82d0b396473b595a30f68b37b8dfd41c37dff8    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 20:36:22 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 20:36:22 -0400    

Click here for diff

Normally nel == 0 works okay because the initial value of "last" will be  
less than "base"; but if "base" is zero then the calculation wraps around  
and we have a very large (unsigned) value for "last", so that the loop can  
be entered and we get a SIGSEGV on a bogus pointer.  
  
This is certainly the proximate cause of the recent reports of Windows  
builds crashing on 'infinity'::timestamp --- evidently, they're either not  
setting an active timezonetktbl, or setting an empty one.  It's not yet  
clear to me why it's only happening on Windows and not happening on any  
buildfarm member.  But even if that's due to some bug elsewhere, it seems  
wise for this function to not choke on the powerup values of  
timezonetktbl/sztimezonetktbl.  
  
I also changed the copy of this code in ecpglib, although I am not sure  
whether it's exposed to a similar hazard.  
  
Per report and stack trace from Richard Broersma.  

M src/backend/utils/adt/datetime.c
M src/interfaces/ecpg/pgtypeslib/dt_common.c

For create/dropdb, only connect once to the server since we now have a shared description table for pg_database comments.

commit   : 7ff7711919287a93f348023d77f9611633c9627c    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 19:44:15 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 19:44:15 -0400    

Click here for diff

Also update comments about database name selection.  

M src/bin/scripts/createdb.c
M src/bin/scripts/dropdb.c

Add some punctuation

commit   : 87631ac98df2e32cac22ddee7b9c37813ff3b161    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 22:37:50 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 22:37:50 +0300    

Click here for diff

M doc/src/sgml/ref/pg_basebackup.sgml

Put options in more alphabetical order

commit   : df6d033197614190e112dd2c1d0cfece6c43d9e3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 22:37:22 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 22:37:22 +0300    

Click here for diff

M doc/src/sgml/ref/createdb.sgml

Put options help in alphabetical order

commit   : 94a8fde403d229ccd9c667722ab3af72278f994d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:48:07 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:48:07 +0300    

Click here for diff

M contrib/pgbench/pgbench.c

Format pg_upgrade --version in line with conventions

commit   : 00fad9f6fef8ed166b183ad45a9bd863d965d81c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:40:29 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:40:29 +0300    

Click here for diff

M contrib/pg_upgrade/option.c

Add bug report line to pg_upgrade --help output

commit   : 4c78846cb3a0f7017ad96d4513f79b1401fba12b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:37:55 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:37:55 +0300    

Click here for diff

M contrib/pg_upgrade/option.c

Put pg_test_fsync --help and --version output in line with conventions

commit   : 3a8dcd9a1f9bbe36478995b22de40967c0610149    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:34:26 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 May 2011 21:34:26 +0300    

Click here for diff

Foremost, it should go to stdout.  

M contrib/pg_test_fsync/pg_test_fsync.c

Adjust documentation with respect to "unknown" timezone setting.

commit   : 1453cd8f82139a3e751c617dc6635f7b1c7abe14    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 13:48:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 13:48:40 -0400    

Click here for diff

The recent cleanup of GUC assign hooks got rid of the kludge of using  
"unknown" as a magic value for timezone and log_timezone.  But I forgot  
to update the documentation to match, as noted by Martin Pitt.  

M doc/src/sgml/config.sgml
M src/backend/utils/misc/postgresql.conf.sample

Be more wary in initdb's creation of platform-dependent collations.

commit   : 853c1750f91feaa6a72b29ae683c955ab6f4df70    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 12:08:47 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 May 2011 12:08:47 -0400    

Click here for diff

Discard any collation aliases that match the built-in pg_collation entries  
(ie, "default", "C", "POSIX").  Such aliases would be refused by a CREATE  
COLLATION command, but since initdb is injecting them via a simple INSERT,  
it has to make the corresponding check for itself.  Per Martin Pitt's  
report of funny behavior in a machine that had a bogus "C.UTF-8" locale.  
  
Also, use E'' syntax for the output of escape_quotes, as per its header  
comment.  

M src/bin/initdb/initdb.c

In pg_upgrade, remove suggestion of setting pg_hba.conf to 'trust', now that we report the libpq connection failure string. Per suggestion from Robert Haas.

commit   : 5059cf6ebf36bc9731b8394a1d2c9dba6cb50a3c    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 10:42:43 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 10 May 2011 10:42:43 -0400    

Click here for diff

M contrib/pg_upgrade/server.c

Documentation cleanup for the possible values of the datatype 'boolean'.

commit   : a9cc9df021f43a8ecda0924236d22a004baa7d13    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 23:25:16 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 23:25:16 -0400    

Click here for diff

M doc/src/sgml/datatype.sgml

Update documentation to state there is three-value logic, not three-value boolean logic.

commit   : 832c095d686e89f6390e0ff3e91b4c8015c2c3f7    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 21:04:18 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 21:04:18 -0400    

Click here for diff

Backpatch to 9.0.X since we just got another bug report about this  
today.  

M doc/src/sgml/func.sgml

Remove "make check" target in src/test/isolation/Makefile.

commit   : 7886cc73ad12fb9b5a729b6c8152f11a309f5d65    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 9 May 2011 11:00:30 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 9 May 2011 11:00:30 -0400    

Click here for diff

This doesn't work as expected because the isolationtester program requires  
libpq to already be installed.  While it works when you've already installed  
libpq, having to already have done "make install" defeats most of the point  
of a check with a temp installation.  And there are weird corner cases if  
the dynamic linker picks up an old libpq.so from system library directories.  
Remove the target (or more precisely, make it print a helpful message) so  
people don't expect the case to work.  

M src/test/isolation/Makefile

In pg_upgrade, add status message about superuser check.

commit   : 78318d63d7613ca9fe2206c717c7ccb400038db6    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 08:55:36 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 9 May 2011 08:55:36 -0400    

Click here for diff

M contrib/pg_upgrade/check.c

Add C comment about the fact that the autovacuum limit can go backwards by 3, but that is it OK.

commit   : 76e5b4c85d5d4830888044fc885b1da0d781aed0    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 8 May 2011 23:59:31 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 8 May 2011 23:59:31 -0400    

Click here for diff

M src/backend/postmaster/autovacuum.c

Fix some portability issues in isolation regression test driver.

commit   : eff223ffd74eed268f35d693462969f7f75632d2    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 8 May 2011 19:44:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 8 May 2011 19:44:12 -0400    

Click here for diff

Remove random system #includes in favor of using postgres_fe.h.  (The  
alternative to that is letting this module grow its own configuration  
testing ability...)  
  
Also fix the "make clean" target to actually clean things up.  
  
Per local testing.  

M src/test/isolation/Makefile
M src/test/isolation/isolation_main.c
M src/test/isolation/isolationtester.c
M src/test/isolation/specparse.y

Add C comment why client encoding can be set in pg_upgrade.

commit   : e6a740284291d1ebaca42b2954eb20e09daac9b9    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 22:30:35 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 22:30:35 -0400    

Click here for diff

M contrib/pg_upgrade/server.c

commit   : e567c9ff3409203a3ab50a2ff87cdab73bef6313    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 22:29:20 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 22:29:20 -0400    

Click here for diff

M doc/src/sgml/README.links
M doc/src/sgml/adminpack.sgml
M doc/src/sgml/auth-delay.sgml
M doc/src/sgml/auto-explain.sgml
M doc/src/sgml/btree-gin.sgml
M doc/src/sgml/btree-gist.sgml
M doc/src/sgml/chkpass.sgml
M doc/src/sgml/citext.sgml
M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/dblink.sgml
M doc/src/sgml/dict-int.sgml
M doc/src/sgml/dict-xsyn.sgml
M doc/src/sgml/dummy-seclabel.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/file-fdw.sgml
M doc/src/sgml/fuzzystrmatch.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/intagg.sgml
M doc/src/sgml/intarray.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/lo.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/oid2name.sgml
M doc/src/sgml/pageinspect.sgml
M doc/src/sgml/passwordcheck.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgbench.sgml
M doc/src/sgml/pgbuffercache.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgfreespacemap.sgml
M doc/src/sgml/pgrowlocks.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/pgstatstatements.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/pgtestfsync.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/sepgsql.sgml
M doc/src/sgml/sslinfo.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/test-parser.sgml
M doc/src/sgml/tsearch2.sgml
M doc/src/sgml/unaccent.sgml
M doc/src/sgml/uuid-ossp.sgml
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/xml2.sgml

Add missing documention connecting word.

commit   : 5293de580734bb16c57de51142354d76347a3336    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 14:31:00 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 14:31:00 -0400    

Click here for diff

M doc/src/sgml/backup.sgml

In pg_upgrade, report non-super-user username in error message.

commit   : 1609ca5adb5c8b55076435094532dfbb2a2aea43    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 12:17:21 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 12:17:21 -0400    

Click here for diff

M contrib/pg_upgrade/check.c

Check that the pg_upgrade user specified is a super-user.

commit   : 81301b85781245676f874ae3908015f05d3aaaa2    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 08:55:13 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 May 2011 08:55:13 -0400    

Click here for diff

Also report the error message when the post-pg_ctl connection fails.  
  
Per private bug report from EnterpriseDB.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/server.c

Add comment about memory reordering to PredicateLockTupleRowVersionLink.

commit   : 71932ecc2b6ca0d748176a7e8b11d3575bf4caf3    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 6 May 2011 21:53:55 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 6 May 2011 21:53:55 -0400    

Click here for diff

Dan Ports, per head-scratching from Simon Riggs and myself.  

M src/backend/storage/lmgr/predicate.c

Adjust pg_upgrade FATAL error messages to have consistent newlines.

commit   : 5c5f83507cb697e436f8f9d20d62787c1a66d19c    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 6 May 2011 21:47:12 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 6 May 2011 21:47:12 -0400    

Click here for diff

Also adjust some error message capitalization for consistency.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/util.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c

Fix typos in SECURITY LABEL documentation.

commit   : 3ef5b2df9738fd0795c1ffcaada93c3c5df7cd49    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 6 May 2011 21:18:18 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 6 May 2011 21:18:18 -0400    

Click here for diff

KaiGai Kohei  

M doc/src/sgml/ref/security_label.sgml

Improve compiler string shown in version()

commit   : 8dd2ede3f82505c3fd041c1953524305df0732d1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 6 May 2011 22:14:53 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 6 May 2011 22:14:53 +0300    

Click here for diff

With some compilers such as Clang and ICC emulating GCC, using a  
version string of the form "GCC $version" can be quite misleading.  
Also, a great while ago, the version output from gcc --version started  
including the string "gcc", so it is redundant to repeat that.  In  
order to support ancient GCC versions, we now prefix the result with  
"GCC " only if the version output does not start with a letter.  

M configure
M configure.in

Move RegisterPredicateLockingXid() call to a safer place.

commit   : d2088ae949993ad8e3aabc3b6a9cd77aa5cac957    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 6 May 2011 12:57:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 6 May 2011 12:57:28 -0400    

Click here for diff

The SSI patch inserted a call of RegisterPredicateLockingXid into  
GetNewTransactionId, which was a bad idea on a couple of grounds.  First,  
it's not necessary to hold XidGenLock while manipulating that shared  
memory, and doing so is bad because XidGenLock is a high-contention lock  
that should be held for as short a time as possible.  (Not to mention that  
it adds an entirely unnecessary deadlock hazard, since we must take  
SerializableXactHashLock as well.)  Second, the specific place where it was  
put was between extending CLOG and advancing nextXid, which could result in  
unpleasant behavior in case of a failure there.  Pull the call out to  
AssignTransactionId, which is much safer and arguably better from a  
modularity standpoint too.  
  
There is more work to do to clean up the failure-before-advancing-nextXid  
issue, but that is a separate change that will need to be back-patched.  
So for the moment I just want to make GetNewTransactionId look the same as  
it did in prior versions.  

M src/backend/access/transam/varsup.c
M src/backend/access/transam/xact.c

Remove precedence labeling of keywords TRUE, FALSE, UNKNOWN, and ZONE.

commit   : 12b7164578e73abb065a835c588c1e0c44670ed3    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 5 May 2011 20:38:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 5 May 2011 20:38:52 -0400    

Click here for diff

These were labeled with precedences just to avoid attaching explicit  
precedences to the productions in which they were the last terminal symbol.  
Since a terminal symbol precedence marking can affect many other things  
too, it seems like better practice to attach precedence labels to the  
productions, and not mark the terminal symbols.  
  
Ideally we'd also remove the precedence attached to NULL_P, but it turns  
out that we are actually depending on that having a precedence higher than  
POSTFIXOP, else we get a shift/reduce conflict for postfix operators in  
b_expr.  (Which more or less proves my point about these markings having a  
high risk of unexpected consequences.)  For the moment, move NULL_P into  
the set of keywords grouped with IDENT, so that at least it will act  
similarly to non-keywords; and document the interaction.  

M src/backend/parser/gram.y

Unbreak the regression tests from my previous commit

commit   : 27525b183189487c674f24620e608298ac0c8e29    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 5 May 2011 23:00:31 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 5 May 2011 23:00:31 +0200    

Click here for diff

M src/test/regress/expected/foreign_data.out

Improve pg_archivecleanup and pg_standby --help output

commit   : b24181b26fc90758370e475088be4ef2497d3cc3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 5 May 2011 23:11:51 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 5 May 2011 23:11:51 +0300    

Click here for diff

For consistency with other tools, put the options before further usage  
information.  
  
In pg_standby, remove the supposedly deprecated -l option from the  
given example invocation.  

M contrib/pg_archivecleanup/pg_archivecleanup.c
M contrib/pg_standby/pg_standby.c

Improve formatting of pg_upgrade --help output

commit   : d6d823c8b0e6878cf532120c0c019c7704b27be3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 5 May 2011 22:56:06 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 5 May 2011 22:56:06 +0300    

Click here for diff

M contrib/pg_upgrade/option.c

Clarify error message when attempting to create index on foreign table

commit   : d76a149c955a6525c8d42425c57e32d74d2c2eed    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 5 May 2011 21:47:42 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 5 May 2011 21:47:42 +0200    

Click here for diff

Instead of just saying "is not a table", specifically state that  
indexes aren't supported on *foreign* tables.  

M src/backend/commands/indexcmds.c

Improve style of generate_history.pl Perl script.

commit   : fb3ad7895ece674fc5298df754253f70cda6a02e    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 5 May 2011 12:48:48 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 5 May 2011 12:48:48 -0400    

Click here for diff

M doc/src/sgml/generate_history.pl

Include unary plus in the Operator Precedence table.

commit   : 671322751add80f3368cd9ef17134fb9f73cf747    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 4 May 2011 15:02:34 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 4 May 2011 15:02:34 -0400    

Click here for diff

Per gripe from Grzegorz Szpetkowski.  
  
Also, change the subsection heading from "Lexical Precedence" (which is  
a contradiction in terms) to "Operator Precedence".  

M doc/src/sgml/syntax.sgml

Remove redundant port number check

commit   : 7f1f1bfdbb199a003b9bef5dc946eb2c1c38e4c2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 21:02:02 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 21:02:02 +0300    

Click here for diff

pg_basebackup doesn't need to police the format of port numbers.  
libpq already does that.  

M src/bin/pg_basebackup/pg_basebackup.c

Message style cleanup

commit   : bff074b1ab0dfed7a7822dcc8942f877efa3b914    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:56:52 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:56:52 +0300    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

Fix alignment of --help output

commit   : ce2fc20071a6ae68e63bd675b147818669cd83b4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:29:40 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:29:40 +0300    

Click here for diff

Tabs replaced by spaces.  

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c

commit   : a3b681f0bc46de6ae89c7e17c1704329ffc3ba76    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:24:07 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 4 May 2011 20:24:07 +0300    

Click here for diff

M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/intarray.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/textsearch.sgml

Update obsolete mention of Sequoia, now known as Tungsten

commit   : 04be7ac271c4b6db6ba518225f58f936b3b4435c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 3 May 2011 11:35:17 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 3 May 2011 11:35:17 -0300    

Click here for diff

Per http://joomla.aws.continuent.com/community/lab-projects/sequoia  
  
Greg Smith  

M doc/src/sgml/high-availability.sgml

Improve description of read/write traffic scalability

commit   : 561485709673f4bc05240e891dd9056bdedbbcbc    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 3 May 2011 11:34:27 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 3 May 2011 11:34:27 -0300    

Click here for diff

Greg Smith, after a suggestion of James Bruce  

M doc/src/sgml/high-availability.sgml

Add ID attribute to some sect2's missing it

commit   : 155743ad3108cd586d56e864d1209b82f9a716f0    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 2 May 2011 19:13:49 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 2 May 2011 19:13:49 -0300    

Click here for diff

David Fetter  

M doc/src/sgml/func.sgml

commit   : dcc685debb02c507b88aa8052f9e6334a7c3f830    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 2 May 2011 15:56:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 2 May 2011 15:56:36 -0400    

Click here for diff

After finding an EXISTS or ANY sub-select that can be converted to a  
semi-join or anti-join, we should recurse into the body of the sub-select.  
This allows cases such as EXISTS-within-EXISTS to be optimized properly.  
The original coding would leave the lower sub-select as a SubLink, which  
is no better and often worse than what we can do with a join.  Per example  
from Wayne Conrad.  
  
Back-patch to 8.4.  There is a related issue in older versions' handling  
of pull_up_IN_clauses, but they're lame enough anyway about the whole area  
that it seems not worth the extra work to try to fix.  

M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/prepjointree.c

Update some ALTER USER cross-references to ALTER ROLE

commit   : 52897e54db1000f2fa45b31e02eb252dd0573516    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 2 May 2011 13:40:24 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 2 May 2011 13:40:24 -0300    

Click here for diff

Greg Smith  

M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/libpq.sgml

Small cleanup of spacing in verbatim DocBook elements

commit   : 4b08bf8ce7a7515f669ce0a1ce1946c6492b65ed    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 19:19:48 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 19:19:48 +0300    

Click here for diff

M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/tablefunc.sgml

Improve aset.c's space management in contexts with small maxBlockSize.

commit   : 6755558b92748287e961fed518c14be375630464    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 2 May 2011 12:08:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 2 May 2011 12:08:08 -0400    

Click here for diff

The previous coding would allow requests up to half of maxBlockSize to be  
treated as "chunks", but when that actually did happen, we'd waste nearly  
half of the space in the malloc block containing the chunk, if no smaller  
requests came along to fill it.  Avoid this scenario by limiting the  
maximum size of a chunk to 1/8th maxBlockSize, so that we can waste no more  
than 1/8th of the allocated space.  This will not change the behavior at  
all for the default context size parameters (with large maxBlockSize),  
but it will change the behavior when using ALLOCSET_SMALL_MAXSIZE.  
  
In particular, there's no longer a need for spell.c to be overly concerned  
about the request size parameters it uses, so remove a rather unhelpful  
comment about that.  
  
Merlin Moncure, per an idea of Tom Lane's  

M src/backend/tsearch/spell.c
M src/backend/utils/mmgr/aset.c

Catch errors in for loop in makefile

commit   : 5c436a79e0f4e11f80c5878a0309ce60f79e17b1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 00:43:06 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 00:43:06 +0300    

Click here for diff

Add "|| exit" so that the rule aborts when a command fails.  

M src/pl/plpython/Makefile

Rewrite installation makefile rules without for loops

commit   : b106195b1731ce5d68e8bb5c421f09a4aae9e96a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 00:37:07 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 2 May 2011 00:37:07 +0300    

Click here for diff

install-sh can install multiple files at once, so for loops are not  
necessary.  This was already changed for the rest of the code some  
time ago, but pgxs.mk was apparently forgotten, and the obsolete  
coding style has now been copied to the PLs as well.  
  
This also fixes the problem that the for loops in question did not  
catch errors.  

M src/makefiles/pgxs.mk
M src/pl/plperl/GNUmakefile
M src/pl/plpgsql/src/Makefile
M src/pl/plpython/Makefile
M src/pl/tcl/Makefile

Make CLUSTER lock the old table's toast table before copying data.

commit   : 83b7584944b3a9df064cccac06822093f1a83793    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 1 May 2011 17:57:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 1 May 2011 17:57:33 -0400    

Click here for diff

We must lock out autovacuuming of the old toast table before computing the  
OldestXmin horizon we will use.  Otherwise, autovacuum could start on the  
toast table later, compute a later OldestXmin horizon, and remove as DEAD  
toast tuples that we still need (because we think their parent tuples are  
only RECENTLY_DEAD).  Per further thought about bug #5998.  

M src/backend/commands/cluster.c

Lowercase status labels in pg_stat_replication view.

commit   : 5a71b641309ea982593edf1f28d408c21885897b    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 29 Apr 2011 22:20:14 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 29 Apr 2011 22:20:14 -0400    

Click here for diff

M src/backend/replication/walsender.c

Remove special case for xmin == xmax in HeapTupleSatisfiesVacuum().

commit   : 44e4bbf75d56e643b6afefd5cdcffccb68cce414    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 29 Apr 2011 16:29:42 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 29 Apr 2011 16:29:42 -0400    

Click here for diff

VACUUM was willing to remove a committed-dead tuple immediately if it was  
deleted by the same transaction that inserted it.  The idea is that such a  
tuple could never have been visible to any other transaction, so we don't  
need to keep it around to satisfy MVCC snapshots.  However, there was  
already an exception for tuples that are part of an update chain, and this  
exception created a problem: we might remove TOAST tuples (which are never  
part of an update chain) while their parent tuple stayed around (if it was  
part of an update chain).  This didn't pose a problem for most things,  
since the parent tuple is indeed dead: no snapshot will ever consider it  
visible.  But MVCC-safe CLUSTER had a problem, since it will try to copy  
RECENTLY_DEAD tuples to the new table.  It then has to copy their TOAST  
data too, and would fail if VACUUM had already removed the toast tuples.  
  
Easiest fix is to get rid of the special case for xmin == xmax.  This may  
delay reclaiming dead space for a little bit in some cases, but it's by far  
the most reliable way to fix the issue.  
  
Per bug #5998 from Mark Reid.  Back-patch to 8.3, which is the oldest  
version with MVCC-safe CLUSTER.  

M src/backend/utils/time/tqual.c

Rewrite pg_size_pretty() to avoid compiler bug.

commit   : fd2e2d09aa1d5ba198e09e6d936ff1bba7f62895    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 29 Apr 2011 01:44:50 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 29 Apr 2011 01:44:50 -0400    

Click here for diff

Convert it to use successive shifts right instead of increasing a divisor.  
This is probably a tad more efficient than the original coding, and it's  
nicer-looking than the previous patch because we don't need a special case  
to avoid overflow in the last branch.  But the real reason to do it is to  
avoid a Solaris compiler bug, as per results from buildfarm member moa.  

M src/backend/utils/adt/dbsize.c

Use non-literal format for possibly non-standard strftime formats.

commit   : c49e4ae1f886e74efb4bc94c09b993098232d5f9    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 19:58:49 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 19:58:49 -0400    

Click here for diff

Per recent -hackers discussion. The formats in question are %G and %V,  
and cause warnings on MinGW at least. We assume the ecpg application  
knows what it's doing if it passes these formats to the library.  

M src/interfaces/ecpg/pgtypeslib/timestamp.c

Add some casts to try to silence most of the remaining format warnings on MinGW-W64.

commit   : ab0ba6e73ae9b3c9956126bdcd3c410238a27244    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 15:05:58 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 15:05:58 -0400    

Click here for diff

M src/backend/postmaster/postmaster.c
M src/backend/postmaster/syslogger.c

Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking printf type functions.

commit   : c02d5b7c27d740830379244db4b9ef111bbf0fc8    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 10:56:14 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 28 Apr 2011 10:56:14 -0400    

Click here for diff

The style is set to "printf" for backwards compatibility everywhere except  
on Windows, where it is set to "gnu_printf", which eliminates hundreds of  
false error messages from modern versions of gcc arising from  %m and %ll{d,u}  
formats.  

M src/backend/utils/adt/format_type.c
M src/bin/pg_ctl/pg_ctl.c
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_backup_archiver.h
M src/bin/psql/common.h
M src/bin/psql/large_obj.c
M src/include/c.h
M src/include/lib/stringinfo.h
M src/include/pg_config_manual.h
M src/include/port.h
M src/include/utils/elog.h
M src/interfaces/ecpg/preproc/extern.h
M src/interfaces/libpq/libpq-int.h
M src/interfaces/libpq/pqexpbuffer.h
M src/pl/plpython/plpython.c
M src/test/regress/pg_regress.c

The arguments to pg_ctl kill are not optional - remove brackets in the docs.

commit   : 39850c7fdb82bd7c64dbb759c5754e29fc0af5f2    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 28 Apr 2011 12:51:02 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 28 Apr 2011 12:51:02 +0300    

Click here for diff

Fujii Masao  

M doc/src/sgml/ref/pg_ctl-ref.sgml

Tag 9.1beta1.

commit   : 993c5e59047dd568d4831f7ec5c6199acd21f17f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 17:17:22 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 17:17:22 -0400    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32

Make a quick copy-editing pass over the 9.1 release notes.

commit   : bb1051eb2d5eef060b64788cbec8459c46427fca    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 16:51:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 16:51:46 -0400    

Click here for diff

Also remove the material about this being an alpha release.  
  
The notes still need a lot of work, but they're more or less presentable  
as a beta version now.  

M doc/src/sgml/config.sgml
M doc/src/sgml/release-9.1.sgml

Fix binary upgrade of altered typed tables

commit   : b2ef8929ae1c1b65f4b9582409463a9a2f009706    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 27 Apr 2011 22:08:22 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 27 Apr 2011 22:08:22 +0300    

Click here for diff

Instead of dumping them as CREATE TABLE ... OF, dump them as normal  
tables with the usual special processing for dropped columns, and then  
attach them to the type afterward, using ALTER TABLE ... OF.  This is  
analogous to the existing handling of inherited tables.  

M src/bin/pg_dump/pg_dump.c

Revert "Force use of "%I64d" format for 64 bit ints on MinGW."

commit   : 6693fec0e8dec81a9b149494cbdb90e454b6119e    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 14:55:18 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 14:55:18 -0400    

Click here for diff

This reverts commit 52d01c2f52c462d29ae0fdfa44c3cae129148a6d.  
  
the UINT64_FORMAT bit broke the b uildfarm, so I'm reverting the whole thing pending further investigation.  

M src/include/port/win32.h

timeline is not needed in BaseBackup()

commit   : 6693eb72c014e5e8bc2f7f3221ebd5507fdbe8ec    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 27 Apr 2011 20:39:20 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 27 Apr 2011 20:39:20 +0200    

Click here for diff

This code was accidentally part of the patch, it's only  
needed for the code that's for 9.2. Not needing the timeline  
also removes the need to call IDENTIFY_SYSTEM.  
  
Noted by Peter E.  

M src/bin/pg_basebackup/pg_basebackup.c

Add comments about the need to avoid uninitialized bits in datatype values.

commit   : 4f6c75b541385eb2d48f7ef62c1c323ec2642134    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 14:05:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 14:05:58 -0400    

Click here for diff

There was already one recommendation in the documentation about writing  
C functions to ensure padding bytes are zeroes, but make it stronger.  
  
Also fix an example that was still using direct assignment to a varlena  
length word, which no longer works since the varvarlena changes.  

M doc/src/sgml/xfunc.sgml

Fix array- and path-creating functions to ensure padding bytes are zeroes.

commit   : 18c0b4eccdc86ffb7eccc2c6facfe382537ab877    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 13:58:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 27 Apr 2011 13:58:36 -0400    

Click here for diff

Per recent discussion, it's important for all computed datums (not only the  
results of input functions) to not contain any ill-defined (uninitialized)  
bits.  Failing to ensure that can result in equal() reporting that  
semantically indistinguishable Consts are not equal, which in turn leads to  
bizarre and undesirable planner behavior, such as in a recent example from  
David Johnston.  We might eventually try to fix this in a general manner by  
allowing datatypes to define identity-testing functions, but for now the  
path of least resistance is to expect datatypes to force all unused bits  
into consistent states.  
  
Per some testing by Noah Misch, array and path functions seem to be the  
only ones presenting risks at the moment, so I looked through all the  
functions in adt/array*.c and geo_ops.c and fixed them as necessary.  In  
the array functions, the easiest/safest fix is to allocate result arrays  
with palloc0 instead of palloc.  Possibly in future someone will want to  
look into whether we can just zero the padding bytes, but that looks too  
complex for a back-patchable fix.  In the path functions, we already had a  
precedent in path_in for just zeroing the one known pad field, so duplicate  
that code as needed.  
  
Back-patch to all supported branches.  

M src/backend/utils/adt/array_userfuncs.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/geo_ops.c

Revert "Remove hard coded formats for INT64 and use configured settings instead."

commit   : 348c10efe08f01872daeeb62f32c8e362fcbba69    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 11:28:14 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 11:28:14 -0400    

Click here for diff

This reverts commit 9b1508af8971c1627cda5bb65f5e9eddb9a1a55e.  
  
As requested by Tom.  

M src/backend/postmaster/postmaster.c
M src/interfaces/ecpg/ecpglib/execute.c

Remove hard coded formats for INT64 and use configured settings instead.

commit   : 9b1508af8971c1627cda5bb65f5e9eddb9a1a55e    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 11:07:52 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 11:07:52 -0400    

Click here for diff

M src/backend/postmaster/postmaster.c
M src/interfaces/ecpg/ecpglib/execute.c

Force use of "%I64d" format for 64 bit ints on MinGW.

commit   : 52d01c2f52c462d29ae0fdfa44c3cae129148a6d    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 10:09:23 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 10:09:23 -0400    

Click here for diff

Both this and "%lld" work, but the compiler's format checking doesn't  
like "%lld", so we get all sorts of spurious warnings.  

M src/include/port/win32.h

Use an explicit format string to keep the compiler happy.

commit   : c43d0791ac5fb765a088d41564cd44747aef42d8    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 10:02:21 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 27 Apr 2011 10:02:21 -0400    

Click here for diff

M src/backend/port/win32/security.c

Doc wording improvement for NUMERIC limit paragraph.

commit   : dedcc48c567e443912d761a3616298678a4ec825    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 27 Apr 2011 00:06:37 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 27 Apr 2011 00:06:37 -0400    

Click here for diff

M doc/src/sgml/datatype.sgml

Reword documentation for NUMERIC with no specified precision.

commit   : 8ce83b5bdc532e716c39b6a04f1edda7e5e66cc7    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 23:43:15 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 23:43:15 -0400    

Click here for diff

M doc/src/sgml/datatype.sgml

Rephrase some not-supported error messages in pg_hba.conf processing.

commit   : 71e7083532d8f6ad0cf345c3cc534b0307e816a8    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 26 Apr 2011 15:56:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 26 Apr 2011 15:56:28 -0400    

Click here for diff

In a couple of places we said "not supported on this platform" for cases  
that aren't really platform-specific, but could depend on configuration  
options such as --with-openssl.  Use "not supported by this build" instead,  
as that doesn't convey the impression that you can't fix it without moving  
to another OS; that's also more consistent with the wording used for an  
identical error case in guc.c.  
  
No back-patch, as the clarity gain is small enough to not be worth  
burdening translators with back-branch changes.  

M src/backend/libpq/hba.c

Complain if pg_hba.conf contains "hostssl" but SSL is disabled.

commit   : c464a0657b0cdaa7fa645d53621be10963cb7741    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 26 Apr 2011 15:40:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 26 Apr 2011 15:40:11 -0400    

Click here for diff

Most commenters agreed that this is more friendly than silently failing  
to match the line during actual connection attempts.  Also, this will  
prevent corner cases that might arise when trying to handle such a line  
when the SSL code isn't turned on.  An example is that specifying  
clientcert=1 in such a line would formerly result in a completely  
misleading complaint that root.crt wasn't present, as seen in a recent  
report from Marc-Andre Laverdiere.  While we could have instead fixed  
that specific behavior, it seems likely that we'd have a continuing stream  
of such bizarre behaviors if we keep on allowing hostssl lines when SSL is  
disabled.  
  
Back-patch to 8.4, where clientcert was introduced.  Earlier versions don't  
have this specific issue, and the code is enough different to make this  
patch not applicable without more work than it seems worth.  

M src/backend/libpq/hba.c

Clarify that a non-specified precision NUMERIC has a very high range.

commit   : 0cdbef6cec753a1606c2ce2955e3ff1005ed5ebf    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 11:54:57 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 11:54:57 -0400    

Click here for diff

M doc/src/sgml/datatype.sgml

Now that pg_upgrade uses -w in pg_ctl, remove loop that retried testing the connection; also restructure the libpq connection code.

commit   : 6c4d2bd9141034bd27977794f52003fd6f7d01f0    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 10:15:18 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 26 Apr 2011 10:15:18 -0400    

Click here for diff

This patch also removes the unused variable postmasterPID and fixes a  
libpq structure leak that was in the testing loop.  

M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c

In pg_upgrade, avoid one start/stop of the postmaster; use the -w (wait) flag for pg_ctl start/stop; remove the unused "quiet" flag in the functions for starting/stopping the postmaster.

commit   : 44091442db7e0d9fd7f0495f09d725fc92d940b5    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 25 Apr 2011 20:17:48 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 25 Apr 2011 20:17:48 -0400    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c

Remove incorrect HINT for use of ALTER FOREIGN TABLE on the wrong relkind.

commit   : 6dab96abaa8bd6775658d26517e288f4d5f6448f    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 25 Apr 2011 20:13:53 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 25 Apr 2011 20:13:53 -0400    

Click here for diff

Per discussion, removing the hint seems better than correcting it because  
the adjacent analogous cases in RenameRelation don't have any hints, and  
nobody seems to have missed 'em.  
  
Shigeru Hanada  

M src/backend/commands/tablecmds.c

Refactor broken CREATE TABLE IF NOT EXISTS support.

commit   : 68ef051f5cf16f82a5368067a40ffba3c340b0d3    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 16:55:11 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 16:55:11 -0400    

Click here for diff

Per bug #5988, reported by Marko Tiikkaja, and further analyzed by Tom  
Lane, the previous coding was broken in several respects: even if the  
target table already existed, a subsequent CREATE TABLE IF NOT EXISTS  
might try to add additional constraints or sequences-for-serial  
specified in the new CREATE TABLE statement.  
  
In passing, this also fixes a minor information leak: it's no longer  
possible to figure out whether a schema to which you don't have CREATE  
access contains a sequence named like "x_y_seq" by attempting to create a  
table in that schema called "x" with a serial column called "y".  
  
Some more refactoring of this code in the future might be warranted,  
but that will need to wait for a later major release.  

M src/backend/bootstrap/bootparse.y
M src/backend/catalog/heap.c
M src/backend/catalog/namespace.c
M src/backend/catalog/toasting.c
M src/backend/commands/cluster.c
M src/backend/commands/tablecmds.c
M src/backend/executor/execMain.c
M src/backend/parser/parse_utilcmd.c
M src/backend/tcop/utility.c
M src/include/catalog/heap.h
M src/include/catalog/namespace.h

Remove partial and undocumented GRANT .. FOREIGN TABLE support.

commit   : be90032e0d1cf473bdd99aee94218218f59f29f1    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 16:34:57 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 16:34:57 -0400    

Click here for diff

Instead, foreign tables are treated just like views: permissions can  
be granted using GRANT privilege ON [TABLE] foreign_table_name TO role,  
and revoked similarly.  GRANT/REVOKE .. FOREIGN TABLE is no longer  
supported, just as we don't support GRANT/REVOKE .. VIEW.  The set of  
accepted permissions for foreign tables is now identical to the set for  
regular tables, and views.  
  
Per report from Thom Brown, and subsequent discussion.  

M doc/src/sgml/ref/grant.sgml
M src/backend/catalog/aclchk.c
M src/backend/parser/gram.y
M src/backend/utils/adt/acl.c
M src/include/nodes/parsenodes.h
M src/include/utils/acl.h

Fix pg_size_pretty() to avoid overflow for inputs close to INT64_MAX.

commit   : af0f20092c8662bf7610fab07b8a1e354abba67f    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 25 Apr 2011 16:22:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 25 Apr 2011 16:22:12 -0400    

Click here for diff

The expression that tried to round the value to the nearest TB could  
overflow, leading to bogus output as reported in bug #5993 from Nicola  
Cossu.  This isn't likely to ever happen in the intended usage of the  
function (if it could, we'd be needing to use a wider datatype instead);  
but it's not hard to give the expected output, so let's do so.  

M src/backend/utils/adt/dbsize.c

Support "make check" in contrib

commit   : f8ebe3bcc5debfcf2bf588aee138944688b682c0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 25 Apr 2011 22:21:37 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 25 Apr 2011 22:21:37 +0300    

Click here for diff

Added a new option --extra-install to pg_regress to arrange installing  
the respective contrib directory into the temporary installation.  
This is currently not yet supported for Windows MSVC builds.  
  
Updated the .gitignore files for contrib modules to ignore the  
leftovers of a temp-install check run.  
  
Changed the exit status of "make check" in a pgxs build (which still  
does nothing) to 0 from 1.  
  
Added "make check" in contrib to top-level "make check-world".  

M GNUmakefile.in
M contrib/btree_gin/.gitignore
M contrib/btree_gist/.gitignore
M contrib/citext/.gitignore
M contrib/cube/.gitignore
M contrib/dblink/.gitignore
M contrib/dict_int/.gitignore
M contrib/dict_xsyn/.gitignore
M contrib/earthdistance/.gitignore
M contrib/earthdistance/Makefile
M contrib/file_fdw/.gitignore
M contrib/hstore/.gitignore
M contrib/intarray/.gitignore
M contrib/ltree/.gitignore
M contrib/pg_trgm/.gitignore
M contrib/pgcrypto/.gitignore
M contrib/seg/.gitignore
M contrib/tablefunc/.gitignore
M contrib/test_parser/.gitignore
M contrib/tsearch2/.gitignore
M contrib/unaccent/.gitignore
M contrib/xml2/.gitignore
M src/makefiles/pgxs.mk
M src/test/regress/pg_regress.c

Use terse mode to avoid variable order dependency output in foreign data regression check.

commit   : 625744ac43360ca3f4a6d3eccecb6f4c999a1a63    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 14:43:26 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 14:43:26 -0400    

Click here for diff

Per Tom Lane's suggestion about my gripe about occasional errors noticed on the buildfarm.  

M src/test/regress/expected/foreign_data.out
M src/test/regress/sql/foreign_data.sql

Assorted minor changes to silence Windows compiler warnings.

commit   : 860be17ec3c19a1aeba0bbe7ecaf30be409ea446    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:56:53 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:56:53 -0400    

Click here for diff

Mostly to do with macro redefinitions or object signedness.  

M src/backend/main/main.c
M src/backend/port/win32/socket.c
M src/backend/utils/adt/pg_locale.c
M src/bin/initdb/initdb.c
M src/bin/pg_ctl/pg_ctl.c
M src/include/port/win32.h
M src/pl/plperl/plperl.c
M src/port/noblock.c
M src/test/regress/pg_regress.c
M src/timezone/pgtz.c

Prevent perl header overriding our *snprintf macros, and give it a usable PERL_UNUSED_DECL value.

commit   : 77622887449f0fd0eb08b28fe4fa5992c357d45a    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:46:59 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:46:59 -0400    

Click here for diff

This quiets compiler warnings about redefined macros and unused Perl__unused variables. The  
redefinition of snprintf and vsnprintf is something we want to avoid anyway, if we've  
gone to the bother of setting up the macros to point to our implementation.  

M src/pl/plperl/plperl.h

Give getopt() a prototype and modern style arg specs.

commit   : 7e0f8f836da9a992c8cbd99c5c06ea40247d6a33    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:38:10 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 12:38:10 -0400    

Click here for diff

Welcome to the 1990s.  

M src/port/getopt.c

Add postmaster/postgres undocumented -b option for binary upgrades. This option turns off autovacuum, prevents non-super-user connections, and enables oid setting hooks in the backend. The code continues to use the old autoavacuum disable settings for servers with earlier catalog versions.

commit   : 76dd09bbec893c02376e3440a6a86a3b994d804c    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 25 Apr 2011 12:00:21 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 25 Apr 2011 12:00:21 -0400    

Click here for diff

This includes a catalog version bump to identify servers that support  
the -b option.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/pg_enum.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/toasting.c
M src/backend/commands/typecmds.c
M src/backend/commands/user.c
M src/backend/postmaster/postmaster.c
M src/backend/tcop/postgres.c
M src/backend/utils/init/globals.c
M src/backend/utils/init/postinit.c
M src/include/catalog/catversion.h
M src/include/miscadmin.h

Add fast paths for cases when no serializable transactions are running.

commit   : 02e6a115cc6149551527a45545fd1ef8d37e6aa0    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:52:01 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:52:01 -0400    

Click here for diff

Dan Ports  

M src/backend/storage/lmgr/predicate.c

Regression tests for TOAST.

commit   : 97e83468513399039878e4a630d577c8b7f5b2db    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:46:53 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:46:53 -0400    

Click here for diff

Kevin Grittner, per discussion of bug #5989  

M src/test/regress/expected/delete.out
M src/test/regress/expected/insert.out
M src/test/regress/expected/update.out
M src/test/regress/sql/delete.sql
M src/test/regress/sql/insert.sql
M src/test/regress/sql/update.sql

commit   : b429519d8d1b6ac16e36dacba58ef77f77a621ca    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:41:56 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 25 Apr 2011 09:41:56 -0400    

Click here for diff

Bug #5899, reported by Marko Tiikkaja.  
  
Heikki Linnakangas, reviewed by Kevin Grittner and Dan Ports.  

M src/backend/access/heap/heapam.c

Adjust yywrap macro for non-reentrant scanners for MSVC.

commit   : 08a0c2dabc3b9d59d72d7a79ed867b8e37d275a7    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 09:10:59 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 25 Apr 2011 09:10:59 -0400    

Click here for diff

The MSVC compiler complains if a macro is called with less arguments  
than its definition provides for. flex generates a macro with one  
argument for yywrap, but only supplies the argument for reentrant  
scanners, so we remove the useless argument in the non-reentrant  
case to silence the warning.  

M src/tools/msvc/pgflex.bat

In libecpg do not set an sqlda field that is 'reserved for future use' unless we know what should be stored in there.

commit   : 5948a6eeaa682aeb1a8f389ae2136915b2a0e990    
  
author   : Michael Meskes <[email protected]>    
date     : Mon, 25 Apr 2011 13:43:22 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Mon, 25 Apr 2011 13:43:22 +0200    

Click here for diff

M src/interfaces/ecpg/ecpglib/sqlda.c

Normalize whitespace in the arguments of <indexterm>

commit   : 9412606265c2774712e3f805798896734b32c7fd    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 25 Apr 2011 01:12:16 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 25 Apr 2011 01:12:16 +0300    

Click here for diff

Strip leading and trailing whitespace and replace interior whitespace  
by a single space.  This avoids problems with the index generator  
producing duplicate index entries for terms that differ only in  
whitespace.  
  
Commit dca30da3433c40b5f92f1704c496cda052decef9 actually fixed all the  
indexterm elements that would cause this problem at the moment, but in  
case it sneaks in again, we're set.  

M doc/src/sgml/stylesheet.dsl

Improve cost estimation for aggregates and window functions.

commit   : e6a30a8c3c81a7a2949f852379d34a19dfc26a0d    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 24 Apr 2011 16:55:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 24 Apr 2011 16:55:20 -0400    

Click here for diff

The previous coding failed to account properly for the costs of evaluating  
the input expressions of aggregates and window functions, as seen in a  
recent gripe from Claudio Freire.  (I said at the time that it wasn't  
counting these costs at all; but on closer inspection, it was effectively  
charging these costs once per output tuple.  That is completely wrong for  
aggregates, and not exactly right for window functions either.)  
  
There was also a hard-wired assumption that aggregates and window functions  
had procost 1.0, which is now fixed to respect the actual cataloged costs.  
  
The costing of WindowAgg is still pretty bogus, since it doesn't try to  
estimate the effects of spilling data to disk, but that seems like a  
separate issue.  

M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/pathnode.c
M src/include/nodes/relation.h
M src/include/optimizer/clauses.h
M src/include/optimizer/cost.h
M src/include/optimizer/planmain.h

In pg_upgrade, only compile copy_file() on non-Win32 systems.

commit   : f6322b31918c5c57eeea80c26a088af44d573095    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 23 Apr 2011 20:27:57 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 23 Apr 2011 20:27:57 -0400    

Click here for diff

Per report from Andrew Dunstan.  

M contrib/pg_upgrade/file.c

Improve findoidjoins to cover more cases.

commit   : 795c382e8caf27f9db2fb09d12384b8183280fee    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 19:33:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 19:33:04 -0400    

Click here for diff

Teach the program and script to deal with OID-array referencing columns,  
which we now have several of.  Also, modify the recommended usage process  
to specify that the program should be run against the regression database  
rather than template1.  This lets it find numerous joins that cannot be  
found in template1 because the relevant catalogs are entirely empty.  
  
Together these changes add seventeen formerly-missed cases to the oidjoins  
regression test.  

M src/test/regress/expected/oidjoins.out
M src/test/regress/sql/oidjoins.sql
M src/tools/findoidjoins/README
M src/tools/findoidjoins/findoidjoins.c
M src/tools/findoidjoins/make_oidjoins_check

Silence a few compiler warnings from gcc on MinGW.

commit   : d98711dfef6ade6a26aa0f4c0a775087ed13e060    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sat, 23 Apr 2011 18:10:23 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sat, 23 Apr 2011 18:10:23 -0400    

Click here for diff

Most of these cast DWORD to int or unsigned int for printf type handling.  
This is safe even on 64 bit architectures because a DWORD is always 32 bits.  
  
In one case a variable is initialised to keep the compiler happy.  

M src/backend/port/win32/crashdump.c
M src/backend/port/win32_latch.c

Update oidjoins regression test for 9.1 catalog schema additions.

commit   : 970d8a39736fd67e3ebf406ed8129eed0767d15d    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 14:49:54 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 14:49:54 -0400    

Click here for diff

M src/test/regress/expected/oidjoins.out
M src/test/regress/sql/oidjoins.sql
M src/tools/findoidjoins/README
M src/tools/findoidjoins/make_oidjoins_check

Hash indexes had better pass the index collation to support functions, too.

commit   : a0b75a41a907e1582acdb8aa6ebb9cacca39d7d8    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 14:13:09 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 14:13:09 -0400    

Click here for diff

Per experimentation with contrib/citext, whose hash function assumes that  
it'll be passed a collation.  

M src/backend/access/hash/hashutil.c

Adjust comments about collate.linux.utf8 regression test.

commit   : 1abd146dddc1dc5efff5ccac065c460108acbaa9    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 12:51:47 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 12:51:47 -0400    

Click here for diff

This test should now work in any database with UTF8 encoding, regardless  
of the database's default locale.  The former restriction was really  
"doesn't work if default locale is C", and that was because of not handling  
mbstowcs/wcstombs correctly.  

M doc/src/sgml/regress.sgml
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Fix char2wchar/wchar2char to support collations properly.

commit   : 2ab0796d7a3a7116a79b65531fd33f1548514b52    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 12:35:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 23 Apr 2011 12:35:41 -0400    

Click here for diff

These functions should take a pg_locale_t, not a collation OID, and should  
call mbstowcs_l/wcstombs_l where available.  Where those functions are not  
available, temporarily select the correct locale with uselocale().  
  
This change removes the bogus assumption that all locales selectable in  
a given database have the same wide-character conversion method; in  
particular, the collate.linux.utf8 regression test now passes with  
LC_CTYPE=C, so long as the database encoding is UTF8.  
  
I decided to move the char2wchar/wchar2char functions out of mbutils.c and  
into pg_locale.c, because they work on wchar_t not pg_wchar_t and thus  
don't really belong with the mbutils.c functions.  Keeping them where they  
were would have required importing pg_locale_t into pg_wchar.h somehow,  
which did not seem like a good plan.  

M configure
M configure.in
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/mb/mbutils.c
M src/include/mb/pg_wchar.h
M src/include/pg_config.h.in
M src/include/pg_config.h.win32
M src/include/port/win32.h
M src/include/utils/pg_locale.h

Fix contrib/btree_gist to handle collations properly.

commit   : bb850306307d3d6ebb611c4039ae127236eb1699    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 20:19:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 20:19:58 -0400    

Click here for diff

Make use of the collation attached to the index column, instead of  
hard-wiring DEFAULT_COLLATION_OID.  (Note: in theory this could require  
reindexing btree_gist indexes on textual columns, but I rather doubt anyone  
has one with a non-default declared collation as yet.)  

M contrib/btree_gist/btree_bit.c
M contrib/btree_gist/btree_bytea.c
M contrib/btree_gist/btree_numeric.c
M contrib/btree_gist/btree_text.c
M contrib/btree_gist/btree_utils_num.c
M contrib/btree_gist/btree_utils_var.c
M contrib/btree_gist/btree_utils_var.h

Make GIN and GIST pass the index collation to all their support functions.

commit   : ae20bf1740c53494e15fadfd8c2c6444032a3441    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 20:13:12 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 20:13:12 -0400    

Click here for diff

Experimentation with contrib/btree_gist shows that the majority of the GIST  
support functions potentially need collation information.  Safest policy  
seems to be to pass it to all of them, instead of making assumptions about  
which ones could possibly need it.  

M src/backend/access/gin/ginget.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistsplit.c
M src/backend/access/gist/gistutil.c
M src/include/access/gin_private.h
M src/include/access/gist_private.h

De-kludge contrib/btree_gin for collations.

commit   : 474ff212e5c2e89a9955cc2355cb96b2fe40398e    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 18:22:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 18:22:38 -0400    

Click here for diff

Using DEFAULT_COLLATION_OID in the comparePartial functions was not only  
a lame hack, but outright wrong, because the compare functions for  
collation-aware types were already responding to the declared index  
collation.  So comparePartial would have the wrong expectation about  
the index's sort order, possibly leading to missing matches for prefix  
searches.  

M contrib/btree_gin/btree_gin.c

Small update to emacs example configuration

commit   : 78e7e20afe768d9c5f6b4fbf30a2d7100d46bb2f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 23 Apr 2011 00:44:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 23 Apr 2011 00:44:45 +0300    

Click here for diff

Since both tarballs and git now result in a "postgresql" directory  
rather than a "pgsql" directory, adjust the example configuration to  
look for the former.  

M src/tools/editors/emacs.samples

Add fill-column setting to emacs example configurations

commit   : 415f5e12592d135919549a5eb21893fda0417ebf    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 23 Apr 2011 00:39:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 23 Apr 2011 00:39:45 +0300    

Click here for diff

This matches the maximum line length that pgindent uses.  

M src/tools/editors/emacs.samples

Make a code-cleanup pass over the collations patch.

commit   : 9e9b9ac7d1860fbb98eb4db17a94ff25524b6447    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 17:43:18 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 22 Apr 2011 17:43:18 -0400    

Click here for diff

This patch is almost entirely cosmetic --- mostly cleaning up a lot of  
neglected comments, and fixing code layout problems in places where the  
patch made lines too long and then pgindent did weird things with that.  
I did find a bug-of-omission in equalTupleDescs().  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/indices.sgml
M doc/src/sgml/ref/create_collation.sgml
M doc/src/sgml/ref/create_domain.sgml
M doc/src/sgml/ref/create_index.sgml
M doc/src/sgml/ref/create_type.sgml
M doc/src/sgml/regress.sgml
M src/backend/access/common/tupdesc.c
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/pg_type.c
M src/backend/commands/indexcmds.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/executor/nodeMergejoin.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/subselect.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/cache/syscache.c

Improve doc wording for SQL syntax of LIMIT/OFFSET.

commit   : 0cfdc1c657b7c2aa1e4524f495e84005f750ec02    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 21 Apr 2011 22:25:35 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 21 Apr 2011 22:25:35 -0400    

Click here for diff

M doc/src/sgml/ref/select.sgml

Avoid possible divide-by-zero in gincostestimate.

commit   : 92647fc4b9cd7406afb2ee240a20082ba6097177    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 21 Apr 2011 19:28:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 21 Apr 2011 19:28:36 -0400    

Click here for diff

Per report from Jeff Janes.  

M src/backend/utils/adt/selfuncs.c

Allow ALTER TYPE .. ADD ATTRIBUTE .. CASCADE to recurse to descendants.

commit   : a0e8df527ec24e8dba98f295c0e2ab6ccf3e5d2c    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:49:37 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:49:37 -0400    

Click here for diff

Without this, adding an attribute to a typed table with an inheritance  
child fails, which is surprising.  
  
Noah Misch, with minor changes by me.  

M doc/src/sgml/ref/alter_type.sgml
M src/backend/commands/tablecmds.c
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Fix use of incorrect constant RemoveRoleFromObjectACL.

commit   : 8ede427938e9676d0e497406c213f098303a93f3    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:23:58 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:23:58 -0400    

Click here for diff

This could cause failures when DROP OWNED BY attempt to remove default  
privileges on sequences.  Back-patching to 9.0.  
  
Shigeru Hanada  

M src/backend/catalog/aclchk.c

Typo fix.

commit   : 0babcdf6cfdfb2a828056afc3172ec524f090fd5    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:05:16 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 22:05:16 -0400    

Click here for diff

M src/backend/commands/tablecmds.c

Allow ALTER TABLE name {OF type | NOT OF}.

commit   : 68739ba856c52e6721d6cffec21f1bf0327a9a7b    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 21:35:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 20 Apr 2011 21:35:15 -0400    

Click here for diff

This syntax allows a standalone table to be made into a typed table,  
or a typed table to be made standalone.  This is possibly a mildly  
useful feature in its own right, but the real motivation for this  
change is that we need it to make pg_upgrade work with typed tables.  
This doesn't actually fix that problem, but it's necessary  
infrastructure.  
  
Noah Misch  

M doc/src/sgml/ref/alter_table.sgml
M src/backend/commands/tablecmds.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/include/commands/tablecmds.h
M src/include/nodes/parsenodes.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Fix bugs in indexing of in-doubt HOT-updated tuples.

commit   : 520bcd9c9bb4d06627054e1c567bac1feb2da879    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 20:34:11 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 20:34:11 -0400    

Click here for diff

If we find a DELETE_IN_PROGRESS HOT-updated tuple, it is impossible to know  
whether to index it or not except by waiting to see if the deleting  
transaction commits.  If it doesn't, the tuple might again be LIVE, meaning  
we have to index it.  So wait and recheck in that case.  
  
Also, we must not rely on ii_BrokenHotChain to decide that it's possible to  
omit tuples from the index.  That could result in omitting tuples that we  
need, particularly in view of yesterday's fixes to not necessarily set  
indcheckxmin (but it's broken even without that, as per my analysis today).  
Since this is just an extremely marginal performance optimization, dropping  
the test shouldn't hurt.  
  
These cases are only expected to happen in system catalogs (they're  
possible there due to early release of RowExclusiveLock in most  
catalog-update code paths).  Since reindexing of a system catalog isn't a  
particularly performance-critical operation anyway, there's no real need to  
be concerned about possible performance degradation from these changes.  
  
The worst aspects of this bug were introduced in 9.0 --- 8.x will always  
wait out a DELETE_IN_PROGRESS tuple.  But I think dropping index entries  
on the strength of ii_BrokenHotChain is dangerous even without that, so  
back-patch removal of that optimization to 8.3 and 8.4.  

M src/backend/catalog/index.c

Set indcheckxmin true when REINDEX fixes an invalid or not-ready index.

commit   : 9ad7e15507ffa14f51d80d6ae3ed942ea191826d    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 19:01:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 19:01:20 -0400    

Click here for diff

Per comment from Greg Stark, it's less clear that HOT chains don't conflict  
with the index than it would be for a valid index.  So, let's preserve the  
former behavior that indcheckxmin does get set when there are  
potentially-broken HOT chains in this case.  This change does not cause any  
pg_index update that wouldn't have happened anyway, so we're not  
re-introducing the previous bug with pg_index updates, and surely the case  
is not significant from a performance standpoint; so let's be as  
conservative as possible.  

M src/backend/catalog/index.c

Make plan_cluster_use_sort cope with no IndexOptInfo for the target index.

commit   : 5b8e442953da0bf4950b86c7cb4a6117842aedf7    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 17:43:34 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Apr 2011 17:43:34 -0400    

Click here for diff

The original coding assumed that such a case represents caller error, but  
actually get_relation_info will omit generating an IndexOptInfo for any  
index it thinks is unsafe to use.  Therefore, handle this case by returning  
"true" to indicate that a seqscan-and-sort is the preferred way to  
implement the CLUSTER operation.  New bug in 9.1, no backpatch needed.  
Per bug #5985 from Daniel Grace.  

M src/backend/optimizer/plan/planner.c

Fix PL/Python traceback for error in separate file

commit   : 395fcac29906d22615ba68bd1dfa31daf691979e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 20 Apr 2011 23:19:04 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 20 Apr 2011 23:19:04 +0300    

Click here for diff

It assumed that the lineno from the traceback always refers to the  
PL/Python function.  If you created a PL/Python function that imports  
some code, runs it, and that code raises an exception, PLy_traceback  
would get utterly confused.  
  
Now we look at the file name reported with the traceback and only  
print the source line if it came from the PL/Python function.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Pg_upgrade C comment addition.

commit   : 0262251c337ca066d1b1698684784254849b5676    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Apr 2011 05:44:45 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Apr 2011 05:44:45 -0400    

Click here for diff

Document why we do the missing new database check during the check  
phase.  

M contrib/pg_upgrade/check.c

Quotes in strings injected into bki file need to escaped. In particular, "People's Republic of China" locale on Windows was causing initdb to fail.

commit   : 2b919118c2511c7741c21f325d2ca4f270aa3aba    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 20 Apr 2011 09:49:44 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 20 Apr 2011 09:49:44 +0300    

Click here for diff

This fixes bug #5818 reported by yulei. On master, this makes the mapping  
of "People's Republic of China" to just "China" obsolete. In 9.0 and 8.4,  
just fix the escaping. Earlier versions didn't have locale names in bki  
file.  

M src/bin/initdb/initdb.c

Throw error for mismatched pg_upgrade clusters

commit   : 7228d02989afd3858ce6eb4de845c56f4c0188a6    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Apr 2011 21:00:29 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Apr 2011 21:00:29 -0400    

Click here for diff

If someone removes the 'postgres' database from the old cluster and the  
new cluster has a 'postgres' database, the number of databases will not  
match.  We actually could upgrade such a setup, but it would violate the  
1-to-1 mapping of database counts, so we throw an error instead.  
  
Previously they got an error during the upgrade, and not at the check  
stage; PG 9.0.4 does the same.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/relfilenode.c

Add C comment

commit   : 034194470647b3de206fb42464d49a438853fa5e    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Apr 2011 19:14:39 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Apr 2011 19:14:39 -0400    

Click here for diff

Add C comment about why we throw an error if the pg_upgrade old/new  
database counts don't match.  

M contrib/pg_upgrade/relfilenode.c

Avoid changing an index's indcheckxmin horizon during REINDEX.

commit   : 8c19977e9c515cc29af449a7ab6c25e496f539f3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 18:50:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 18:50:56 -0400    

Click here for diff

There can never be a need to push the indcheckxmin horizon forward, since  
any HOT chains that are actually broken with respect to the index must  
pre-date its original creation.  So we can just avoid changing pg_index  
altogether during a REINDEX operation.  
  
This offers a cleaner solution than my previous patch for the problem  
found a few days ago that we mustn't try to update pg_index while we are  
reindexing it.  System catalog indexes will always be created with  
indcheckxmin = false during initdb, and with this modified code we should  
never try to change their pg_index entries.  This avoids special-casing  
system catalogs as the former patch did, and should provide a performance  
benefit for many cases where REINDEX formerly caused an index to be  
considered unusable for a short time.  
  
Back-patch to 8.3 to cover all versions containing HOT.  Note that this  
patch changes the API for index_build(), but I believe it is unlikely that  
any add-on code is calling that directly.  

M src/backend/bootstrap/bootstrap.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/commands/cluster.c
M src/backend/commands/indexcmds.c
M src/include/catalog/index.h

Revert "Prevent incorrect updates of pg_index while reindexing pg_index itself."

commit   : c096d19b74a637443109e528000342e896b150f3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 16:55:34 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 16:55:34 -0400    

Click here for diff

This reverts commit 4b6106ccfea21e86943f881edcf3cfc03661a415 of 2011-04-15.  
There's a better way to do it, which will follow shortly.  

M src/backend/catalog/index.c

Refix the unaccent regression test on MSVC properly

commit   : 385942f46ce526000d231c51c76360a807c2f809    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:52:52 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:52:52 +0300    

Click here for diff

... for some value of "properly".  Instead of overriding REGRESS_OPTS,  
set the variables ENCODING and NO_LOCALE, which is more expressive and  
allows overriding by the user.  Fix vcregress.pl to handle that.  

M contrib/unaccent/Makefile
M src/tools/msvc/vcregress.pl

Treat config.pl as optional in vcregress.pl

commit   : 2e8d9544752a7d68cb46f028a4f16ab0eb76c26e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:01:15 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:01:15 +0300    

Click here for diff

This is how build.pl treats it and how it's documented.  

M src/tools/msvc/vcregress.pl

Fix typo

commit   : 908eb1f98bd9f81613cf4c14d6ab5877815c7b50    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:00:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 22:00:35 +0300    

Click here for diff

M src/tools/msvc/config_default.pl

Add gitignore entries for Windows MSVC builds

commit   : 63e9c5b71b3b8afa772a5f4e5ee7179f77f87050    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 20:04:41 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 20:04:41 +0300    

Click here for diff

M .gitignore
M src/interfaces/ecpg/compatlib/.gitignore
M src/interfaces/ecpg/ecpglib/.gitignore
M src/interfaces/ecpg/pgtypeslib/.gitignore
M src/interfaces/libpq/.gitignore

Avoid unused variable warnings for certain configurations

commit   : 001cbb145f3250b0d69d6be3d5fa0236e1a261dc    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 20:01:51 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 19 Apr 2011 20:01:51 +0300    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

Refrain from canonicalizing a client_encoding setting of "UNICODE".

commit   : 390cf3209b718382c0ec9793b714422189e9b68b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 12:17:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 19 Apr 2011 12:17:13 -0400    

Click here for diff

While "UTF8" is the correct name for this encoding, existing JDBC drivers  
expect that if they send "UNICODE" it will read back the same way; they  
fail with an opaque "Protocol error" complaint if not.  This will be fixed  
in the 9.1 drivers, but until older drivers are no longer in use in the  
wild, we'd better leave "UNICODE" alone.  Continue to canonicalize all  
other inputs.  Per report from Steve Singer and subsequent discussion.  

M src/backend/commands/variable.c

Silence compiler warning about casting HANDLE to long on WIN64.

commit   : ca5a75fbaed63f41c6e52e5d4b35470080356bdf    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 19 Apr 2011 11:21:00 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 19 Apr 2011 11:21:00 -0400    

Click here for diff

M src/test/regress/pg_regress.c

Silence compiler warning about unused variable on Windows.

commit   : a7cb69a5a345fe9ba481a035559d77abd07791d9    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 19 Apr 2011 14:54:48 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 19 Apr 2011 14:54:48 +0300    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Fix handling of collations in multi-row VALUES constructs.

commit   : 918854cc08868d569aad3bdf2529fc61c66ecde5    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 18 Apr 2011 15:31:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 18 Apr 2011 15:31:52 -0400    

Click here for diff

Per spec we ought to apply select_common_collation() across the expressions  
in each column of the VALUES table.  The original coding was just taking  
the first row and assuming it was representative.  
  
This patch adds a field to struct RangeTblEntry to carry the resolved  
collations, so initdb is forced for changes in stored rule representation.  

M src/backend/catalog/dependency.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_relation.c
M src/include/catalog/catversion.h
M src/include/nodes/parsenodes.h
M src/include/parser/parse_relation.h
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.sql

Only allow typed tables to hang off composite types, not e.g. tables.

commit   : 04db0fdbfa9382730bb65f94bca2cd8063a3456a    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 18 Apr 2011 10:13:34 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 18 Apr 2011 10:13:34 -0400    

Click here for diff

This also ensures that we take a relation lock on the composite type when  
creating a typed table, which is necessary to prevent the composite type  
and the typed table from getting out of step in the face of concurrent  
DDL.  
  
Noah Misch, with some changes.  

M src/backend/parser/parse_utilcmd.c
M src/test/regress/expected/typed_table.out
M src/test/regress/sql/typed_table.sql

Attempt to remedy buildfarm breakage caused by commit f536d4194.

commit   : b7b86924c6da46c774e1ab5d524a6bc4f72627ab    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 18 Apr 2011 09:27:30 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 18 Apr 2011 09:27:30 -0400    

Click here for diff

M contrib/unaccent/Makefile

recoveryStopsHere() must check the resource manager ID.

commit   : aea1f24c2c25f01540435ded6ba611016392ef06    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 18 Apr 2011 08:27:19 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 18 Apr 2011 08:27:19 -0400    

Click here for diff

Before commit c016ce728139be95bb0dc7c4e5640507334c2339, this wasn't  
needed, but now that multiple resource manager IDs can percolate down  
through here, we have to make sure we know which one we've got.  
Otherwise, we can confuse (for example) an XLOG_XACT_COMMIT record  
with an XLOG_CHECKPOINT_SHUTDOWN record.  
  
Review by Jaime Casanova  

M src/backend/access/transam/xlog.c

Fix assorted infelicities in collation handling in psql's describe.c.

commit   : c29abc8b6f5334ac2f7046a33b233776ead12395    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 18:09:22 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 18:09:22 -0400    

Click here for diff

In \d, be more careful to print collation only if it's not the default for  
the column's data type.  Avoid assuming that the name "default" is magic.  
  
Fix \d on a composite type so that it will print per-column collations.  
It's no longer the case that a composite type cannot have modifiers.  
(In consequence, the expected outputs for composite-type regression tests  
change.)  
  
Fix \dD so that it will print collation for a domain, again only if it's  
not the same as the base type's collation.  

M src/bin/psql/describe.c
M src/test/regress/expected/alter_table.out
M src/test/regress/expected/collate.linux.utf8.out

Document COLLATE option in CREATE TYPE reference page.

commit   : 2d4617126f6d708c5777b378d9ef282fb2c08930    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 17:05:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 17:05:51 -0400    

Click here for diff

Curiously, it was already documented in ALTER TYPE ADD ATTRIBUTE, but  
not here.  

M doc/src/sgml/ref/create_type.sgml

Fix pg_dump to handle collations applied to columns of composite types.

commit   : acfa1f45ed3ee2144581954c77769056bd149f5c    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 16:55:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 16:55:04 -0400    

Click here for diff

CREATE TYPE and ALTER TYPE ADD ATTRIBUTE handle this, so I suppose it's  
an intended feature, but pg_dump didn't know about it.  

M src/bin/pg_dump/pg_dump.c

Add check for matching column collations in ALTER TABLE ... INHERIT.

commit   : 49a642ab1802ea4cd80f9c184e7699219688197f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 16:22:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 16:22:13 -0400    

Click here for diff

The other DDL operations that create an inheritance relationship were  
checking for collation match already, but this one got missed.  
  
Also fix comments that failed to mention collation checks.  

M src/backend/commands/tablecmds.c

Support a COLLATE clause in plpgsql variable declarations.

commit   : c94732585647437291ec3f4a9902eeffc65a6945    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 14:54:19 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 14:54:19 -0400    

Click here for diff

This allows the usual rules for assigning a collation to a local variable  
to be overridden.  Per discussion, it seems appropriate to support this  
rather than forcing all local variables to have the argument-derived  
collation.  

M doc/src/sgml/plpgsql.sgml
M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/pl_scanner.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

foreach() and list_delete() don't mix.

commit   : 88dc6fa7a164c306d8a1295769edb818d8520a3f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 13:36:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Apr 2011 13:36:38 -0400    

Click here for diff

Fix crash when releasing duplicate entries in the encoding conversion cache  
list, caused by releasing the current entry of the list being chased by  
foreach().  We have a standard idiom for handling such cases, but this  
loop wasn't using it.  
  
This got broken in my recent rewrite of GUC assign hooks.  Not sure how  
I missed this when testing the modified code, but I did.  Per report from  
Peter.  

M src/backend/utils/mb/mbutils.c

Add an Assert that indexam.c isn't used on an index awaiting reindexing.

commit   : d2f60a3ab055fb61c8e1056a7c5652f1dec85e00    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 19:29:10 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 19:29:10 -0400    

Click here for diff

This might have caught the recent embarrassment over trying to modify  
pg_index while its indexes were being rebuilt.  
  
Noah Misch  

M src/backend/access/index/indexam.c

Simplify reindex_relation's API.

commit   : 2d3320d3d256eed7ea3deb8383348f2021e6a247    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 17:26:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 17:26:41 -0400    

Click here for diff

For what seem entirely historical reasons, a bitmask "flags" argument was  
recently added to reindex_relation without subsuming its existing boolean  
argument into that bitmask.  This seems a bit bizarre, so fold them  
together.  

M src/backend/catalog/index.c
M src/backend/commands/cluster.c
M src/backend/commands/indexcmds.c
M src/backend/commands/tablecmds.c
M src/include/catalog/index.h

Clean up collation processing in prepunion.c.

commit   : 121f49a00e432ee9cfad7270d99504350cd1015f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 16:39:50 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Apr 2011 16:39:50 -0400    

Click here for diff

This area was a few bricks shy of a load, and badly under-commented too.  
We have to ensure that the generated targetlist entries for a set-operation  
node expose the correct collation for each entry, since higher-level  
processing expects the tlist to reflect the true ordering of the plan's  
output.  
  
This hackery wouldn't be necessary if SortGroupClause carried collation  
info ... but making it do so would inject more pain in the parser than  
would be saved here.  Still, we might want to rethink that sometime.  

M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/tlist.c
M src/include/optimizer/tlist.h

Set client encoding explicitly in plpython_unicode test

commit   : 5809a6458450a59f8c4a7a25beaefc81cff563d1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 16 Apr 2011 21:52:10 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 16 Apr 2011 21:52:10 +0300    

Click here for diff

This will (hopefully) eliminate the need for the  
plpython_unicode_0.out expected file.  

M src/pl/plpython/expected/README
M src/pl/plpython/expected/plpython_unicode.out
D src/pl/plpython/expected/plpython_unicode_0.out
M src/pl/plpython/expected/plpython_unicode_3.out
M src/pl/plpython/sql/plpython_unicode.sql

Prevent incorrect updates of pg_index while reindexing pg_index itself.

commit   : 4b6106ccfea21e86943f881edcf3cfc03661a415    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 20:18:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 20:18:57 -0400    

Click here for diff

The places that attempt to change pg_index.indcheckxmin during a reindexing  
operation cannot be executed safely if pg_index itself is the subject of  
the operation.  This is the explanation for a couple of recent reports of  
VACUUM FULL failing with  
	ERROR:  duplicate key value violates unique constraint "pg_index_indexrelid_index"  
	DETAIL:  Key (indexrelid)=(2678) already exists.  
  
However, there isn't any real need to update indcheckxmin in such a  
situation, if we assume that pg_index can never contain a truly broken HOT  
chain.  This assumption holds if new indexes are never created on it during  
concurrent operations, which is something we don't consider safe for any  
system catalog, not just pg_index.  Accordingly, modify the code to not  
manipulate indcheckxmin when reindexing any system catalog.  
  
Back-patch to 8.3, where HOT was introduced.  The known failure scenarios  
involve 9.0-style VACUUM FULL, so there might not be any real risk before  
9.0, but let's not assume that.  

M src/backend/catalog/index.c

Suppress unused-function warning on non-WIN32 builds.

commit   : ff5565f0a4aa3c584792d220a3e566369a77f479    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 19:27:48 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 19:27:48 -0400    

Click here for diff

M src/bin/initdb/initdb.c

Guard against incoming rowcount estimate of NaN in cost_mergejoin().

commit   : 72826fb362c4aada6d2431df0b706df448806c02    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 17:45:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 15 Apr 2011 17:45:41 -0400    

Click here for diff

Although rowcount estimates really ought not be NaN, a bug elsewhere  
could perhaps result in that, and that would cause Assert failure in  
cost_mergejoin, which I believe to be the explanation for bug #5977 from  
Anton Kuznetsov.  Seems like a good idea to expend a couple more cycles  
to prevent that, even though the real bug is elsewhere.  Not back-patching,  
though, because we don't encourage running production systems with  
Asserts on.  

M src/backend/optimizer/path/costsize.c

setlocale() on Windows doesn't work correctly if the locale name contains apostrophes or dots. There isn't much hope of Microsoft fixing it any time soon, it's been like that for ages, so we better work around it. So, map a few common Windows locale names known to cause problems to aliases that work.

commit   : d5a7bf8c11c8b66c822bbb1a6c90e1a14425bd6e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 20:48:10 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 20:48:10 +0300    

Click here for diff

M src/bin/initdb/initdb.c

On Windows, if the encoding implied by locale is not allowed as a server-encoding, fall back to UTF-8. It happens at least with the Chinese locale, which implies BIG5. This is safe, because on Windows all locales are compatible with UTF-8.

commit   : 1f943dc8fe1377d93253fad9f01e4b0aa8599bbd    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 20:44:13 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 20:44:13 +0300    

Click here for diff

M src/bin/initdb/initdb.c

Note that Bison on GnuWin32 has trouble with paths with spaces

commit   : 3affae58b795fb238bed17c35cadcefabdc1f0ee    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 15 Apr 2011 15:27:02 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 15 Apr 2011 15:27:02 +0200    

Click here for diff

Peter Eisentraut  

M doc/src/sgml/install-windows.sgml

Specify which versions of the Platform SDK are supported

commit   : 9e1526eddd34bf78327a9e7be3db47a60b59b688    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 15 Apr 2011 15:00:42 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 15 Apr 2011 15:00:42 +0200    

Click here for diff

Anything including Visual Studio 2010 compilers is not yet  
supported for building on Windows.  

M doc/src/sgml/install-windows.sgml

Reduce the initial size of local lock hash to 16 entries.

commit   : 4c37c1e3b2a7ba7b5519e5e366720e7444878a78    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 14:57:51 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 15 Apr 2011 14:57:51 +0300    

Click here for diff

The hash table is seq scanned at transaction end, to release all locks,  
and making the hash table larger than necessary makes that slower. With  
very simple queries, that overhead can amount to a few percent of the total  
CPU time used.  
  
At the moment, backend startup needs 6 locks, and a simple query with one  
table and index needs 3 locks. 16 is enough for even quite complicated  
transactions, and it will grow automatically if it fills up.  

M src/backend/storage/lmgr/lock.c

Rename pg_regress option --multibyte to --encoding

commit   : f536d4194293f900577c728bfa4e62075a4c7da0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 15 Apr 2011 08:42:05 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 15 Apr 2011 08:42:05 +0300    

Click here for diff

Also refactor things a little bit so that the same methods for setting  
test locale and encoding can be used everywhere.  

M contrib/unaccent/Makefile
M doc/src/sgml/regress.sgml
M src/Makefile.global.in
M src/interfaces/ecpg/test/Makefile
M src/test/regress/GNUmakefile
M src/test/regress/pg_regress.c
M src/tools/msvc/vcregress.pl

Update release notes for releases 9.0.4, 8.4.8, 8.3.15, and 8.2.21.

commit   : 98eded936c1e81e6af5a4228ba3eb7b6352d6c91    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 14 Apr 2011 15:51:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 14 Apr 2011 15:51:37 -0400    

Click here for diff

M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml

Advise Debian/Ubuntu users to use openjade1.3.

commit   : 07e58cbe19d78027eec8fd3e414220903b125c97    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 14 Apr 2011 11:35:41 -0700    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 14 Apr 2011 11:35:41 -0700    

Click here for diff

The latest openjade packages for Ubuntu 10.10 seg fault when building  
our documentation.  
  
Josh Berkus  

M doc/src/sgml/docguide.sgml

Remove obsolete comment.

commit   : 0c80b57d0775eb2015b7672fd8b20c63846d2a0d    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 19:20:39 -0700    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 19:20:39 -0700    

Click here for diff

The lock level for adding a parent table is now ShareUpdateExclusiveLock;  
see commit fbcf4b92aa64d4577bcf25925b055316b978744a.  This comment didn't  
get updated to match, but it doesn't seem important to mention this detail  
here, so rather than updating it now, just take it out.  

M src/backend/commands/tablecmds.c

Fix toast table creation.

commit   : 39a68e5c6ca7b41b889e773ca58535324af69630    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 18:07:14 -0700    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 18:07:14 -0700    

Click here for diff

Instead of using slightly-too-clever heuristics to decide when we must  
create a TOAST table, just check whether one is needed every time the  
table is altered.  Checking whether a toast table is needed is cheap  
enough that we needn't worry about doing it on every ALTER TABLE command,  
and the previous coding is apparently prone to accidental breakage:  
commit 04e17bae50a73af524731fa11210d5c3f7d8e1f9 broken ALTER TABLE ..  
SET STORAGE, which moved some actions from AT_PASS_COL_ATTRS to  
AT_PASS_MISC, and commit 6c5723998594dffa5d47c3cf8c96ccf89c033aae broke  
ALTER TABLE .. ADD COLUMN by changing the way that adding columns  
recurses into child tables.  
  
Noah Misch, with one comment change by me  

M src/backend/catalog/toasting.c
M src/backend/commands/tablecmds.c
M src/test/regress/expected/alter_table.out
M src/test/regress/input/misc.source
M src/test/regress/output/misc.source
M src/test/regress/sql/alter_table.sql

Ensure mark_dummy_rel doesn't create dangling pointers in RelOptInfos.

commit   : eca75a12a27d28b972fc269c1c8813cd8eb15441    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 18:56:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 18:56:40 -0400    

Click here for diff

When we are doing GEQO join planning, the current memory context is a  
short-lived context that will be reset at the end of geqo_eval().  However,  
the RelOptInfos for base relations are set up before that and then re-used  
across many GEQO cycles.  Hence, any code that modifies a baserel during  
join planning has to be careful not to put pointers to the short-lived  
context into the baserel struct.  mark_dummy_rel got this wrong, leading to  
easy-to-reproduce-once-you-know-how crashes in 8.4, as reported off-list by  
Leo Carson of SDSC.  Some improvements made in 9.0 make it difficult to  
demonstrate the crash in 9.0 or HEAD; but there's no doubt that there's  
still a risk factor here, so patch all branches that have the function.  
(Note: 8.3 has a similar function, but it's only applied to joinrels and  
thus is not a hazard.)  

M src/backend/optimizer/path/joinrels.c

Update time zone data files to tzdata release 2011f.

commit   : 170aeb54074ae2e21b22b79d1dd5c665700f7025    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 18:03:23 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 18:03:23 -0400    

Click here for diff

DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, Turkey.  
Historical corrections for South Australia, Alaska, Hawaii.  

M src/timezone/data/africa
M src/timezone/data/asia
M src/timezone/data/australasia
M src/timezone/data/etcetera
M src/timezone/data/europe
M src/timezone/data/leapseconds
M src/timezone/data/northamerica
M src/timezone/data/southamerica
M src/timezone/data/zone.tab

Avoid incorrectly granting replication to roles created with NOSUPERUSER.

commit   : 0a49c95c734d58385e9c5e335088da1cd54e2344    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 12:26:51 -0700    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 13 Apr 2011 12:26:51 -0700    

Click here for diff

Andres Freund  

M src/backend/commands/user.c

On HP/UX, the structs used by ioctl(SIOCGLIFCONF) are named differently than on other platforms, and only IPv6 addresses are returned. Because of those two issues, fall back to ioctl(SIOCGIFCONF) on HP/UX, so that it at least compiles and finds IPv4 addresses. This function is currently only used for interpreting samehost/samenet in pg_hba.conf, which isn't that critical.

commit   : 40e64017f3a4f1f7547dcbc62c2dcf80511ff842    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 22:20:31 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 22:20:31 +0300    

Click here for diff

M src/backend/libpq/ip.c

Revert the patch to check if we've reached end-of-backup also when doing crash recovery, and throw an error if not. hubert depesz lubaczewski pointed out that that situation also happens in the crash recovery following a system crash that happens during an online backup.

commit   : 54685b1c2b356b4b9c0938f6b8dcc52e173c0400    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 21:33:59 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 21:33:59 +0300    

Click here for diff

We might want to do something smarter in 9.1, like put the check back for  
backups taken with pg_basebackup, but that's for another patch.  

M src/backend/access/transam/xlog.c

On IA64 architecture, we check the depth of the register stack in addition to the regular stack. The code to do that is platform and compiler specific, add support for the HP-UX native compiler.

commit   : b5bb040da63806f7386b3434c38e1fa98860ea88    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 11:43:22 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 13 Apr 2011 11:43:22 +0300    

Click here for diff

M src/backend/tcop/postgres.c

Add some useful cross-references to the CREATE EXTENSION reference page.

commit   : dd95a1d3dd52cb9848d54ab9962156f666c4ca39    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 02:56:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 13 Apr 2011 02:56:33 -0400    

Click here for diff

Per a suggestion from Josh Kupershmidt, though I modified his patch  
quite a lot.  

M doc/src/sgml/ref/create_extension.sgml

Pass collations to functions in FunctionCallInfoData, not FmgrInfo.

commit   : d64713df7e5996ab3ab337b5e0901cf2c53773f9    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 19:19:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 19:19:24 -0400    

Click here for diff

Since collation is effectively an argument, not a property of the function,  
FmgrInfo is really the wrong place for it; and this becomes critical in  
cases where a cached FmgrInfo is used for varying purposes that might need  
different collation settings.  Fix by passing it in FunctionCallInfoData  
instead.  In particular this allows a clean fix for bug #5970 (record_cmp  
not working).  This requires touching a bit more code than the original  
method, but nobody ever thought that collations would not be an invasive  
patch...  

M contrib/btree_gin/btree_gin.c
M contrib/btree_gist/btree_text.c
M src/backend/access/common/reloptions.c
M src/backend/access/common/scankey.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistscan.c
M src/backend/access/hash/hashutil.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/commands/analyze.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/executor/execGrouping.c
M src/backend/executor/execQual.c
M src/backend/executor/execUtils.c
M src/backend/executor/functions.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeMergeAppend.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/optimizer/path/indxpath.c
M src/backend/tcop/fastpath.c
M src/backend/tsearch/wparser.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/int.c
M src/backend/utils/adt/like.c
M src/backend/utils/adt/oid.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/rowtypes.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/catcache.c
M src/backend/utils/fmgr/README
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/sort/tuplesort.c
M src/include/access/gin_private.h
M src/include/access/skey.h
M src/include/access/valid.h
M src/include/fmgr.h
M src/include/nodes/execnodes.h
M src/include/utils/selfuncs.h
M src/include/utils/tuplesort.h
M src/pl/plpgsql/src/pl_comp.c

Suppress compiler warnings about "value computed is not used".

commit   : 88543ecfec9c754b5f14b898bccbc68d941748b3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 02:05:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 02:05:24 -0400    

Click here for diff

The recent patch to remove gcc 4.6 warnings created some new ones, at  
least on my rather old gcc version.  Try to make everybody happy by  
casting to "void" when we just want to discard the result.  

M src/interfaces/ecpg/ecpglib/descriptor.c

Be more wary of missing statistics in eqjoinsel_semi().

commit   : 3f5d2fe3029b181fe773a02f1d4b34624c357634    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 01:59:34 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 12 Apr 2011 01:59:34 -0400    

Click here for diff

In particular, if we don't have real ndistinct estimates for both sides,  
fall back to assuming that half of the left-hand rows have join partners.  
This is what was done in 8.2 and 8.3 (cf nulltestsel() in those versions).  
It's pretty stupid but it won't lead us to think that an antijoin produces  
no rows out, as seen in recent example from Uwe Schroeder.  

M src/backend/utils/adt/selfuncs.c

Fix RI_Initial_Check to use a COLLATE clause when needed in its query.

commit   : 921b993677e165607029a52e7f866bbd112345a5    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 11 Apr 2011 21:32:53 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 11 Apr 2011 21:32:53 -0400    

Click here for diff

If the referencing and referenced columns have different collations,  
the parser will be unable to resolve which collation to use unless it's  
helped out in this way.  The effects are sometimes masked, if we end up  
using a non-collation-sensitive plan; but if we do use a mergejoin  
we'll see a failure, as recently noted by Robert Haas.  
  
The SQL spec states that the referenced column's collation should be used  
to resolve RI checks, so that's what we do.  Note however that we currently  
don't append a COLLATE clause when writing a query that examines only the  
referencing column.  If we ever support collations that have varying  
notions of equality, that will have to be changed.  For the moment, though,  
it's preferable to leave it off so that we can use a normal index on the  
referencing column.  

M src/backend/parser/parse_relation.c
M src/backend/utils/adt/ri_triggers.c
M src/include/parser/parse_relation.h
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.sql

Clean up most -Wunused-but-set-variable warnings from gcc 4.6

commit   : 5caa3479c2efd31fca1b271db687e5e57c7de2d4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 11 Apr 2011 22:28:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 11 Apr 2011 22:28:45 +0300    

Click here for diff

This warning is new in gcc 4.6 and part of -Wall.  This patch cleans  
up most of the noise, but there are some still warnings that are  
trickier to remove.  

M contrib/isn/isn.c
M contrib/pageinspect/fsmfuncs.c
M contrib/pgcrypto/pgp-s2k.c
M contrib/pgcrypto/px-hmac.c
M contrib/pgcrypto/px.c
M contrib/seg/seg.c
M src/backend/access/gist/gistvacuum.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/toasting.c
M src/backend/commands/explain.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/vacuum.c
M src/backend/executor/nodeHashjoin.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/foreign/foreign.c
M src/backend/libpq/auth.c
M src/backend/optimizer/geqo/geqo_main.c
M src/backend/parser/parse_utilcmd.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/storage/ipc/standby.c
M src/backend/storage/smgr/md.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/selfuncs.c
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_backup_custom.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/psql/psqlscan.l
M src/interfaces/ecpg/ecpglib/descriptor.c
M src/interfaces/libpq/fe-auth.c
M src/pl/plpgsql/src/pl_exec.c

Teach pattern_fixed_prefix() about collations.

commit   : 3c381a55b0fa1c4ca328211e39df8e1a715129cb    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 11 Apr 2011 12:28:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 11 Apr 2011 12:28:28 -0400    

Click here for diff

This is necessary, not optional, now that ILIKE and regexes are collation  
aware --- else we might derive a wrong comparison constant for index  
optimized pattern matches.  

M src/backend/optimizer/path/indxpath.c
M src/backend/utils/adt/selfuncs.c
M src/include/utils/selfuncs.h

TransferPredicateLocksToNewTarget should initialize a new lock entry's commitSeqNo to that of the old one being transferred, or take the minimum commitSeqNo if it is merging two lock entries.

commit   : dad1f4638235e5ff5696b948b88ba24cd99b415e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 11 Apr 2011 13:46:37 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 11 Apr 2011 13:46:37 +0300    

Click here for diff

Also, CreatePredicateLock should initialize commitSeqNo for to  
InvalidSerCommitSeqNo instead of to 0. (I don't think using 0 would  
actually affect anything, but we should be consistent.)  
  
I also added a couple of assertions I used to track this down: a  
lock's commitSeqNo should never be zero, and it should be  
InvalidSerCommitSeqNo if and only if the lock is not held by  
OldCommittedSxact.  
  
Dan Ports, to fix leak of predicate locks reported by YAMAMOTO Takashi.  

M src/backend/storage/lmgr/predicate.c

Fix the size of predicate lock manager's shared memory hash tables at creation.

commit   : 7c797e7194d969f974abf579cacf30ffdccdbb95    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 11 Apr 2011 13:43:31 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 11 Apr 2011 13:43:31 +0300    

Click here for diff

This way they don't compete with the regular lock manager for the slack shared  
memory, making the behavior more predictable.  

M src/backend/storage/lmgr/predicate.c
M src/backend/utils/hash/dynahash.c
M src/include/utils/hsearch.h

Add some more mapping macros for Microsoft wide-character API.

commit   : f510fc1d904d3266fd433b49664a7685f4fc89ef    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 19:37:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 19:37:24 -0400    

Click here for diff

Per buildfarm.  

M src/include/port/win32.h

Insert dummy "break"s to silence compiler complaints.

commit   : 7aa3f1d08292d43b983075e190eee964c389e347    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 18:44:07 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 18:44:07 -0400    

Click here for diff

Apparently some compilers dislike a case label with nothing after it.  
Per buildfarm.  

M src/backend/regex/regc_pg_locale.c

Remove CRLF line endings in new cube results file.

commit   : c1d82a936f6783f4b084810ff22ca01706f8054e    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 18:26:53 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 18:26:53 -0400    

Click here for diff

M contrib/cube/expected/cube_3.out

Teach regular expression operators to honor collations.

commit   : 1e16a8107db9a50435b39e09c6f9c52c45e63e1a    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 18:02:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Apr 2011 18:02:17 -0400    

Click here for diff

This involves getting the character classification and case-folding  
functions in the regex library to use the collations infrastructure.  
Most of this work had been done already in connection with the upper/lower  
and LIKE logic, so it was a simple matter of transposition.  
  
While at it, split out these functions into a separate source file  
regc_pg_locale.c, so that they can be correctly labeled with the Postgres  
project's license rather than the Scriptics license.  These functions are  
100% Postgres-written code whereas what remains in regc_locale.c is still  
mostly not ours, so lumping them both under the same copyright notice was  
getting more and more misleading.  

M doc/src/sgml/charset.sgml
M src/backend/libpq/hba.c
M src/backend/regex/Makefile
M src/backend/regex/regc_locale.c
A src/backend/regex/regc_pg_locale.c
M src/backend/regex/regcomp.c
M src/backend/regex/regexec.c
M src/backend/tsearch/spell.c
M src/backend/utils/adt/regexp.c
M src/include/regex/regex.h
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Adjust regression tests on cube and ECPG for MinGW 64 bit compiler.

commit   : 210f95f1cd59c6fdfe0f84b922c19d8498ac377d    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 16:57:42 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 16:57:42 -0400    

Click here for diff

Backport to 9.0, we're not supporting this compiler on earlier releases.  

A contrib/cube/expected/cube_3.out
M src/interfaces/ecpg/test/resultmap

Don't make "replication" magical as a user name, only as a database name, in pg_hba.conf.

commit   : ed557a373c406bbb2a1843544ebbd856ca4cac47    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 14:51:26 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 10 Apr 2011 14:51:26 -0400    

Click here for diff

Per gripe from Josh Berkus.  

M src/backend/libpq/hba.c

pgindent run before PG 9.1 beta 1.

commit   : bf50caf105a901c4f83ac1df3cdaf910c26694a4    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 10 Apr 2011 11:42:00 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 10 Apr 2011 11:42:00 -0400    

Click here for diff

M contrib/adminpack/adminpack.c
M contrib/auth_delay/auth_delay.c
M contrib/btree_gist/btree_cash.c
M contrib/btree_gist/btree_date.c
M contrib/btree_gist/btree_float4.c
M contrib/btree_gist/btree_float8.c
M contrib/btree_gist/btree_int2.c
M contrib/btree_gist/btree_int4.c
M contrib/btree_gist/btree_int8.c
M contrib/btree_gist/btree_interval.c
M contrib/btree_gist/btree_oid.c
M contrib/btree_gist/btree_time.c
M contrib/btree_gist/btree_ts.c
M contrib/btree_gist/btree_utils_num.c
M contrib/btree_gist/btree_utils_num.h
M contrib/btree_gist/btree_utils_var.c
M contrib/dummy_seclabel/dummy_seclabel.c
M contrib/file_fdw/file_fdw.c
M contrib/fuzzystrmatch/levenshtein.c
M contrib/hstore/hstore_gin.c
M contrib/hstore/hstore_op.c
M contrib/intarray/_int_bool.c
M contrib/intarray/_int_gin.c
M contrib/intarray/_int_tool.c
M contrib/isn/ISBN.h
M contrib/pg_archivecleanup/pg_archivecleanup.c
M contrib/pg_stat_statements/pg_stat_statements.c
M contrib/pg_test_fsync/pg_test_fsync.c
M contrib/pg_trgm/trgm.h
M contrib/pg_trgm/trgm_gin.c
M contrib/pg_trgm/trgm_gist.c
M contrib/pg_trgm/trgm_op.c
M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/util.c
M contrib/pg_upgrade/version_old_8_3.c
M contrib/pg_upgrade_support/pg_upgrade_support.c
M contrib/pgbench/pgbench.c
M contrib/seg/seg.c
M contrib/sepgsql/dml.c
M contrib/sepgsql/hooks.c
M contrib/sepgsql/label.c
M contrib/sepgsql/proc.c
M contrib/sepgsql/relation.c
M contrib/sepgsql/schema.c
M contrib/sepgsql/selinux.c
M contrib/sepgsql/sepgsql.h
M contrib/spi/moddatetime.c
M contrib/xml2/xpath.c
M contrib/xml2/xslt_proc.c
M src/backend/access/common/heaptuple.c
M src/backend/access/common/indextuple.c
M src/backend/access/gin/ginarrayproc.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistproc.c
M src/backend/access/gist/gistscan.c
M src/backend/access/gist/gistutil.c
M src/backend/access/gist/gistxlog.c
M src/backend/access/hash/hash.c
M src/backend/access/heap/heapam.c
M src/backend/access/heap/hio.c
M src/backend/access/heap/rewriteheap.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/access/transam/twophase.c
M src/backend/access/transam/varsup.c
M src/backend/access/transam/xact.c
M src/backend/access/transam/xlog.c
M src/backend/catalog/aclchk.c
M src/backend/catalog/catalog.c
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/namespace.c
M src/backend/catalog/objectaddress.c
M src/backend/catalog/pg_collation.c
M src/backend/catalog/pg_constraint.c
M src/backend/catalog/pg_depend.c
M src/backend/catalog/pg_enum.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/storage.c
M src/backend/catalog/toasting.c
M src/backend/commands/alter.c
M src/backend/commands/analyze.c
M src/backend/commands/cluster.c
M src/backend/commands/collationcmds.c
M src/backend/commands/comment.c
M src/backend/commands/conversioncmds.c
M src/backend/commands/copy.c
M src/backend/commands/dbcommands.c
M src/backend/commands/explain.c
M src/backend/commands/extension.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/portalcmds.c
M src/backend/commands/prepare.c
M src/backend/commands/seclabel.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/user.c
M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/commands/variable.c
M src/backend/commands/view.c
M src/backend/executor/execMain.c
M src/backend/executor/execQual.c
M src/backend/executor/execUtils.c
M src/backend/executor/functions.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeBitmapIndexscan.c
M src/backend/executor/nodeForeignscan.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeLimit.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeMergeAppend.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeModifyTable.c
M src/backend/executor/nodeNestloop.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/executor/nodeSetOp.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/executor/spi.c
M src/backend/libpq/auth.c
M src/backend/libpq/hba.c
M src/backend/libpq/pqcomm.c
M src/backend/main/main.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/params.c
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/joinpath.c
M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/analyzejoins.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/prepqual.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/placeholder.c
M src/backend/optimizer/util/predtest.c
M src/backend/optimizer/util/var.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_collate.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_param.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_utilcmd.c
M src/backend/port/dynloader/freebsd.c
M src/backend/port/dynloader/netbsd.c
M src/backend/port/dynloader/openbsd.c
M src/backend/port/pipe.c
M src/backend/port/sysv_shmem.c
M src/backend/port/unix_latch.c
M src/backend/port/win32/crashdump.c
M src/backend/port/win32/timer.c
M src/backend/port/win32_latch.c
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/bgwriter.c
M src/backend/postmaster/pgstat.c
M src/backend/postmaster/postmaster.c
M src/backend/postmaster/syslogger.c
M src/backend/regex/regcomp.c
M src/backend/replication/basebackup.c
M src/backend/replication/syncrep.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walreceiverfuncs.c
M src/backend/replication/walsender.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/rewrite/rewriteSupport.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/buffer/freelist.c
M src/backend/storage/buffer/localbuf.c
M src/backend/storage/file/fd.c
M src/backend/storage/file/reinit.c
M src/backend/storage/ipc/pmsignal.c
M src/backend/storage/ipc/procarray.c
M src/backend/storage/ipc/standby.c
M src/backend/storage/large_object/inv_api.c
M src/backend/storage/lmgr/lock.c
M src/backend/storage/lmgr/predicate.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/backend/tcop/postgres.c
M src/backend/tcop/pquery.c
M src/backend/tcop/utility.c
M src/backend/tsearch/spell.c
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/ts_selfuncs.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/acl.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/cash.c
M src/backend/utils/adt/date.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/adt/enum.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/genfile.c
M src/backend/utils/adt/like.c
M src/backend/utils/adt/nabstime.c
M src/backend/utils/adt/network.c
M src/backend/utils/adt/numeric.c
M src/backend/utils/adt/numutils.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/pgstatfuncs.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsvector_op.c
M src/backend/utils/adt/varbit.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/adt/xml.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/plancache.c
M src/backend/utils/cache/relcache.c
M src/backend/utils/cache/syscache.c
M src/backend/utils/cache/ts_cache.c
M src/backend/utils/cache/typcache.c
M src/backend/utils/error/elog.c
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/fmgr/funcapi.c
M src/backend/utils/init/miscinit.c
M src/backend/utils/init/postinit.c
M src/backend/utils/mb/mbutils.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/rbtree.c
M src/backend/utils/misc/tzparser.c
M src/backend/utils/mmgr/aset.c
M src/backend/utils/mmgr/portalmem.c
M src/backend/utils/resowner/resowner.c
M src/backend/utils/sort/tuplesort.c
M src/backend/utils/time/snapmgr.c
M src/bin/initdb/initdb.c
M src/bin/pg_basebackup/pg_basebackup.c
M src/bin/pg_ctl/pg_ctl.c
M src/bin/pg_dump/compress_io.c
M src/bin/pg_dump/compress_io.h
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/dumputils.h
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h
M src/bin/pg_dump/pg_backup_custom.c
M src/bin/pg_dump/pg_backup_directory.c
M src/bin/pg_dump/pg_backup_tar.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dumpall.c
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/tab-complete.c
M src/bin/scripts/droplang.c
M src/include/access/gin.h
M src/include/access/gin_private.h
M src/include/access/gist.h
M src/include/access/gist_private.h
M src/include/access/hio.h
M src/include/access/htup.h
M src/include/access/itup.h
M src/include/access/relscan.h
M src/include/access/tupdesc.h
M src/include/access/xact.h
M src/include/access/xlog.h
M src/include/access/xlogdefs.h
M src/include/catalog/catalog.h
M src/include/catalog/dependency.h
M src/include/catalog/namespace.h
M src/include/catalog/objectaccess.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_amop.h
M src/include/catalog/pg_authid.h
M src/include/catalog/pg_class.h
M src/include/catalog/pg_collation.h
M src/include/catalog/pg_collation_fn.h
M src/include/catalog/pg_constraint.h
M src/include/catalog/pg_control.h
M src/include/catalog/pg_enum.h
M src/include/catalog/pg_extension.h
M src/include/catalog/pg_index.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_seclabel.h
M src/include/catalog/pg_type.h
M src/include/catalog/storage.h
M src/include/commands/alter.h
M src/include/commands/collationcmds.h
M src/include/commands/copy.h
M src/include/commands/dbcommands.h
M src/include/commands/defrem.h
M src/include/commands/explain.h
M src/include/commands/extension.h
M src/include/commands/proclang.h
M src/include/commands/seclabel.h
M src/include/commands/trigger.h
M src/include/commands/typecmds.h
M src/include/commands/vacuum.h
M src/include/executor/executor.h
M src/include/executor/functions.h
M src/include/executor/hashjoin.h
M src/include/executor/nodeHash.h
M src/include/fmgr.h
M src/include/foreign/fdwapi.h
M src/include/foreign/foreign.h
M src/include/libpq/auth.h
M src/include/libpq/libpq-be.h
M src/include/libpq/libpq.h
M src/include/nodes/execnodes.h
M src/include/nodes/makefuncs.h
M src/include/nodes/params.h
M src/include/nodes/parsenodes.h
M src/include/nodes/pg_list.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/relation.h
M src/include/optimizer/cost.h
M src/include/optimizer/pathnode.h
M src/include/optimizer/paths.h
M src/include/optimizer/placeholder.h
M src/include/optimizer/subselect.h
M src/include/parser/parse_collate.h
M src/include/parser/parse_func.h
M src/include/parser/parse_type.h
M src/include/parser/parser.h
M src/include/pgstat.h
M src/include/port/win32.h
M src/include/replication/replnodes.h
M src/include/replication/syncrep.h
M src/include/replication/walprotocol.h
M src/include/replication/walreceiver.h
M src/include/replication/walsender.h
M src/include/rewrite/rewriteSupport.h
M src/include/storage/backendid.h
M src/include/storage/buf_internals.h
M src/include/storage/latch.h
M src/include/storage/pmsignal.h
M src/include/storage/predicate_internals.h
M src/include/storage/proc.h
M src/include/storage/procarray.h
M src/include/storage/relfilenode.h
M src/include/tsearch/dicts/spell.h
M src/include/utils/acl.h
M src/include/utils/builtins.h
M src/include/utils/bytea.h
M src/include/utils/datetime.h
M src/include/utils/elog.h
M src/include/utils/guc.h
M src/include/utils/lsyscache.h
M src/include/utils/numeric.h
M src/include/utils/portal.h
M src/include/utils/rbtree.h
M src/include/utils/rel.h
M src/include/utils/tuplesort.h
M src/include/utils/typcache.h
M src/include/utils/varbit.h
M src/include/utils/xml.h
M src/interfaces/ecpg/compatlib/informix.c
M src/interfaces/ecpg/ecpglib/connect.c
M src/interfaces/ecpg/ecpglib/memory.c
M src/interfaces/ecpg/ecpglib/prepare.c
M src/interfaces/ecpg/preproc/ecpg.c
M src/interfaces/ecpg/preproc/extern.h
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/fe-exec.c
M src/interfaces/libpq/fe-protocol2.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/fe-secure.c
M src/interfaces/libpq/libpq-fe.h
M src/interfaces/libpq/libpq-int.h
M src/pl/plperl/plperl.c
M src/pl/plperl/plperl.h
M src/pl/plperl/plperl_helpers.h
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/plpgsql.h
M src/pl/plpython/plpython.c
M src/pl/tcl/pltcl.c
M src/port/chklocale.c
M src/port/crypt.c
M src/port/dirmod.c
M src/port/exec.c
M src/port/getaddrinfo.c
M src/port/inet_net_ntop.c
M src/port/path.c
M src/port/pgmkdirp.c
M src/port/snprintf.c
M src/port/unsetenv.c
M src/test/isolation/isolation_main.c
M src/test/isolation/isolationtester.c
M src/test/isolation/isolationtester.h
M src/test/regress/pg_regress.c

commit   : 9a8b73147c07e02e10e0d0a34aa99d72e3336fb2    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 29 Mar 2011 17:54:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 29 Mar 2011 17:54:27 -0400    

Click here for diff

The original version was unreadable, and not mechanically checkable  
either.  

M src/backend/commands/tablecmds.c

Add collation support on Windows (MSVC build)

commit   : 11745364d074f3a7ee54c98fad55cfb5c5149326    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 10 Apr 2011 00:14:20 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 10 Apr 2011 00:14:20 +0300    

Click here for diff

There is not yet support in initdb to populate the pg_collation  
catalog, but if that is done manually, the rest should work.  

M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/varlena.c
M src/bin/initdb/initdb.c
M src/include/pg_config.h.win32
M src/include/port/win32.h

Fix ILIKE to honor collation when working in single-byte encodings.

commit   : 00f11f419caa873b44d70071d4ade0b8c75e7f36    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 17:12:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 17:12:39 -0400    

Click here for diff

The original collation patch only fixed the multi-byte code path.  
This change also ensures that ILIKE's idea of the case-folding rules  
is exactly the same as str_tolower's.  

M src/backend/utils/adt/like.c
M src/backend/utils/adt/like_match.c

Remove collate.linux.utf8.sql's assumptions about ".utf8" in locale names.

commit   : f89e4dfa755b9c9be9c19f7c65cff50d47b4f33a    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 16:24:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 16:24:36 -0400    

Click here for diff

Tweak the test so that it does not depend on the platform using ".utf8" as  
the extension signifying that a locale uses UTF8 encoding.  For the most  
part this just requires using the abbreviated collation names "en_US" etc,  
though I had to work a bit harder on the collation creation tests.  
  
This opens the door to using the test on platforms that spell locales  
differently, for example ".utf-8" or ".UTF-8".  Also, the test is now  
somewhat useful with server encodings other than UTF8; though depending on  
which encoding is selected, different subsets of it will fail for lack of  
character set support.  

M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Adjust collation determination rules as per discussion.

commit   : a19002d4e5da028ff7280554b281e402c609898b    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 14:40:09 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 14:40:09 -0400    

Click here for diff

Remove crude hack that tried to propagate collation through a  
function-returning-record, ie, from the function's arguments to individual  
fields selected from its result record.  That is just plain inconsistent,  
because the function result is composite and cannot have a collation;  
and there's no hope of making this kind of action-at-a-distance work  
consistently.  Adjust regression test cases that expected this to happen.  
  
Meanwhile, the behavior of casting to a domain with a declared collation  
stays the same as it was, since that seemed to be the consensus.  

M src/backend/parser/parse_collate.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_target.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.linux.utf8.sql
M src/test/regress/sql/collate.sql

Don't show unusable collations in psql's \dO command.

commit   : 7c76906b7e24d9ea94a2b0e33396ebcac600437d    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 14:08:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 9 Apr 2011 14:08:41 -0400    

Click here for diff

"Unusable" collations are those not matching the current database's  
encoding.  The former behavior inconsistently showed such collations  
some of the time, depending on the details of the pattern argument.  

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/describe.c

Latest consolidated typedef list from buildfarm.

commit   : fe1438da8aa8a45f2cee816eb54841f97d3b2f22    
  
author   : Andrew Dunstan <[email protected]>    
date     : Fri, 8 Apr 2011 23:11:37 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Fri, 8 Apr 2011 23:11:37 -0400    

Click here for diff

M src/tools/pgindent/typedefs.list

Clean up minor collation issues in indxpath.c.

commit   : 69f1d5fe1456229aeea3096c372eb24cedc7d597    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 19:19:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 19:19:17 -0400    

Click here for diff

Get rid of bogus collation test in match_special_index_operator (even for  
ILIKE, the pattern match operator's collation doesn't matter here, and even  
if it did the test was testing the wrong thing).  
Fix broken looping logic in expand_indexqual_rowcompare.  
Add collation check in match_clause_to_ordering_op.  
Make naming and argument ordering more consistent; improve comments.  

M src/backend/optimizer/path/indxpath.c

Fix make_greater_string to not have an undocumented collation assumption.

commit   : 466dac8656c11317b91c1a4bfd5cfca4508cba94    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 17:39:59 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 17:39:59 -0400    

Click here for diff

The previous coding worked only if ltproc->fn_collation was always either  
DEFAULT_COLLATION_OID or a C-compatible locale.  While that's true at the  
moment, it wasn't documented (and in fact wasn't true when this code was  
committed...).  But it only takes a couple more lines to make its internal  
caching behavior locale-aware, so let's do that.  

M src/backend/utils/adt/selfuncs.c

Truncate the predicate lock SLRU to empty, instead of almost empty.

commit   : cdcdfca40199bbdb30c78d105e4db267b631289c    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 16:51:45 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 16:51:45 -0400    

Click here for diff

Otherwise, the SLRU machinery can get confused and think that the SLRU  
has wrapped around.  Along the way, regardless of whether we're  
truncating all of the SLRU or just some of it, flush pages after  
truncating, rather than before.  
  
Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Tweak collation setup for GIN index comparison functions.

commit   : 1766a5b63a950a667ed39c25256156bf366eb43c    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 16:48:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 16:48:25 -0400    

Click here for diff

Honor index column's collation spec if there is one, don't go to the  
expense of calling get_typcollation when we can reasonably assume that  
all GIN storage types will use default collation, and be sure to set  
a collation for the comparePartialFn too.  

M src/backend/access/gin/ginutil.c

Avoid an unnecessary syscache lookup in parse_coerce.c.

commit   : c5ff3ff49229e8fb7da0e46b463bfc9b12219078    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 16:11:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 16:11:04 -0400    

Click here for diff

All the other fields of the constant are being extracted from the syscache  
entry we already have, so handle collation similarly.  (There don't seem  
to be any other uses for the new function at the moment.)  

M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_type.c
M src/include/parser/parse_type.h

Make psql use pg_table_size instead of pg_relation_size on 9.0+ servers.

commit   : cba9cd419270a9b7f442877e21685ac0de5730b3    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:52:49 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:52:49 -0400    

Click here for diff

Per discussion, pg_table_size() is a more helpful number than  
pg_relation_size().  
  
Bernd Helmle, reviewed by Susanne Ebrecht and me.  

M src/bin/psql/describe.c

Fix bug in propagating ALTER TABLE actions to typed tables.

commit   : 0bd155cbf2543cdead70b6e6390e9260035e1468    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:44:50 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:44:50 -0400    

Click here for diff

We need to propagate such actions to all typed table children of a  
given type, not just the first one.  
  
Noah Misch  

M src/backend/commands/tablecmds.c

Modify initdb to complain only when no usable system locales are found.

commit   : d4c810d570e71b021c93e3ee3ea4ab18af4a053d    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 15:38:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 15:38:57 -0400    

Click here for diff

Per discussion, the original behavior seems too noisy.  But if things  
are so broken that none of the locales reported by "locale -a" are usable,  
that's probably worth warning about.  

M src/bin/initdb/initdb.c

Partially roll back overenthusiastic SSI optimization.

commit   : fbc0d07796bcae8b2ee4b09ed236877338c95130    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:29:02 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 15:29:02 -0400    

Click here for diff

When a regular lock is held, SSI can use that in lieu of a predicate lock  
to detect rw conflicts; but if the regular lock is being taken by a  
subtransaction, we can't assume that it'll commit, so releasing the  
parent transaction's lock in that case is a no-no.  
  
Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Have pg_upgrade properly preserve relfrozenxid in toast tables.

commit   : 9c38bce29cb6d3ef49b932086d31f635981b07e9    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 8 Apr 2011 11:46:34 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 8 Apr 2011 11:46:34 -0400    

Click here for diff

This fixes a pg_upgrade bug that could lead to query errors when clog  
files are improperly removed.  

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h

Avoid extra whitespace in the arguments of <indexterm>.

commit   : dca30da3433c40b5f92f1704c496cda052decef9    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 11:36:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 11:36:05 -0400    

Click here for diff

As noted by Thom Brown, this confuses the DocBook index processor; it  
fails to merge entries that differ only in whitespace, and sorts them  
unexpectedly as well.  Seems like a toolchain bug, but I'm not going to  
hold my breath waiting for a fix.  
  
Note: easiest way to find these is to look for double spaces in HTML.index.  

M doc/src/sgml/installation.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/manage-ag.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/syntax.sgml
M doc/src/sgml/trigger.sgml
M doc/src/sgml/xtypes.sgml

Add an example of WITH (UPDATE RETURNING) INSERT to the INSERT ref page.

commit   : 8ad58279fa75636b776e4c648e1ffc7079a2c7d9    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 10:54:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Apr 2011 10:54:03 -0400    

Click here for diff

Per a discussion with Gavin Flower.  This barely scratches the surface  
of potential WITH (something RETURNING) use cases, of course, but it's  
one of the simplest compelling examples I can think of.  

M doc/src/sgml/ref/insert.sgml

Fix some sloppiness in new PL/python get_source_line() function.

commit   : b6bc481d5540a3ad0d39db1e9881e6bd52e54213    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 00:30:54 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Apr 2011 00:30:54 -0400    

Click here for diff

Jan Urbański  

M src/pl/plpython/plpython.c

Avoid use of mixed slash style paths in arguments to xcopy in MSVC builds.

commit   : a53112338c2f5b74383ce075fbec098cd06a3ad7    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 7 Apr 2011 22:17:06 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 7 Apr 2011 22:17:06 -0400    

Click here for diff

Some versions of xcopy, notably on Windows 7 don't like it. Backpatch  
to 8.3, where we first used xcopy.  

M src/tools/msvc/Install.pm

Tweaks for SSI out-of-shared memory behavior.

commit   : 56c7140ca813ba4c7ecb122a1d2b1268e705d092    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 7 Apr 2011 16:43:39 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 7 Apr 2011 16:43:39 -0400    

Click here for diff

If we call hash_search() with HASH_ENTER, it will bail out rather than  
return NULL, so it's redundant to check for NULL again in the caller.  
Thus, in cases where we believe it's impossible for the hash table to run  
out of slots anyway, we can simplify the code slightly.  
  
On the flip side, in cases where it's theoretically possible to run out of  
space, we don't want to rely on dynahash.c to throw an error; instead,  
we pass HASH_ENTER_NULL and throw the error ourselves if a NULL comes  
back, so that we can provide a more descriptive error message.  
  
Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Modernize dlopen interface code for FreeBSD and OpenBSD.

commit   : 73d9a908140e709b4cb12a8d2257a11baaec974f    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 15:14:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 15:14:39 -0400    

Click here for diff

Remove the hard-wired assumption that __mips__ (and only __mips__) lacks  
dlopen in FreeBSD and OpenBSD.  This assumption is outdated at least for  
OpenBSD, as per report from an anonymous 9.1 tester.  We can perfectly well  
use HAVE_DLOPEN instead to decide which code to use.  
  
Some other cosmetic adjustments to make freebsd.c, netbsd.c, and openbsd.c  
exactly alike.  

M src/backend/port/dynloader/freebsd.c
M src/backend/port/dynloader/netbsd.c
M src/backend/port/dynloader/openbsd.c

Allow pg_upgrade with PGCLIENTENCODING set

commit   : 1eb2231fc46bbfa85b47c19d88f72162b323aa51    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 7 Apr 2011 19:22:34 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 7 Apr 2011 19:22:34 +0300    

Click here for diff

This used to work, but since PGCLIENTENCODING is now a connection  
option variable, pg_upgrade would prevent it.  

M contrib/pg_upgrade/server.c

Fix SortTocFromFile() to cope with lines that are too long for its buffer.

commit   : 1471a147f09f737511945ac59ca3162469d1a0c0    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 11:40:23 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 11:40:23 -0400    

Click here for diff

The original coding supposed that a dump TOC file could never contain lines  
longer than 1K.  The folly of that was exposed by a recent report from  
Per-Olov Esgard.  We only really need to see the first dozen or two bytes  
of each line, since we're just trying to read off the numeric ID at the  
start of the line; so there's no need for a particularly huge buffer.  
What there is a need for is logic to not process continuation bufferloads.  
  
Back-patch to all supported branches, since it's always been like this.  

M src/bin/pg_dump/pg_backup_archiver.c

Preserve pg_largeobject_metadata.relfrozenxid in pg_upgrade.

commit   : 82a4f370735130418738f8cf0fb9155b1cff5e2b    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 7 Apr 2011 09:57:09 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 7 Apr 2011 09:57:09 -0400    

Click here for diff

This is needed only in 9.1 because only 9.0 had this and no one is  
upgrading from a 9.0 beta to 9.0 anymore.  We basically don't backpatch  
9.0 beta fixes at this point.  

M src/bin/pg_dump/pg_dump.c

Simplify structure of query used to gather database object information in pg_upgrade.

commit   : e69d32158c18069840130f62c5597ca1ef656175    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 7 Apr 2011 06:22:40 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 7 Apr 2011 06:22:40 -0400    

Click here for diff

M contrib/pg_upgrade/info.c

Fix collations when we call transformWhereClause from outside the parser.

commit   : d8d429890d6aa0246e28faa187a55cb0c65efd6e    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 02:34:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 02:34:57 -0400    

Click here for diff

Previous patches took care of assorted places that call transformExpr from  
outside the main parser, but I overlooked the fact that some places use  
transformWhereClause as a shortcut for transformExpr + coerce_to_boolean.  
In particular this broke collation-sensitive index WHERE clauses, as per  
report from Thom Brown.  Trigger WHEN and rule WHERE clauses too.  
  
I'm not forcing initdb for this fix, but any affected indexes, triggers,  
or rules will need to be dropped and recreated.  

M src/backend/commands/trigger.c
M src/backend/parser/parse_utilcmd.c

Revise the API for GUC variable assign hooks.

commit   : 2594cf0e8c04406ffff19b1651c5a406d376657c    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 00:11:01 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Apr 2011 00:11:01 -0400    

Click here for diff

The previous functions of assign hooks are now split between check hooks  
and assign hooks, where the former can fail but the latter shouldn't.  
Aside from being conceptually clearer, this approach exposes the  
"canonicalized" form of the variable value to guc.c without having to do  
an actual assignment.  And that lets us fix the problem recently noted by  
Bernd Helmle that the auto-tune patch for wal_buffers resulted in bogus  
log messages about "parameter "wal_buffers" cannot be changed without  
restarting the server".  There may be some speed advantage too, because  
this design lets hook functions avoid re-parsing variable values when  
restoring a previous state after a rollback (they can store a pre-parsed  
representation of the value instead).  This patch also resolves a  
longstanding annoyance about custom error messages from variable assign  
hooks: they should modify, not appear separately from, guc.c's own message  
about "invalid parameter value".  

M contrib/auth_delay/auth_delay.c
M contrib/auto_explain/auto_explain.c
M contrib/pg_stat_statements/pg_stat_statements.c
M contrib/sepgsql/hooks.c
M src/backend/access/transam/xlog.c
M src/backend/catalog/namespace.c
M src/backend/commands/tablespace.c
M src/backend/commands/variable.c
M src/backend/nls.mk
M src/backend/replication/syncrep.c
M src/backend/tcop/postgres.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/cache/ts_cache.c
M src/backend/utils/error/elog.c
M src/backend/utils/mb/mbutils.c
M src/backend/utils/misc/README
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/tzparser.c
M src/include/commands/variable.h
M src/include/mb/pg_wchar.h
M src/include/replication/syncrep.h
M src/include/tcop/tcopprot.h
M src/include/tsearch/ts_cache.h
M src/include/utils/datetime.h
M src/include/utils/elog.h
M src/include/utils/guc.h
M src/include/utils/guc_tables.h
M src/include/utils/pg_locale.h
M src/include/utils/tzparser.h
M src/pl/plperl/plperl.c
M src/pl/plpgsql/src/pl_handler.c
M src/test/regress/expected/guc.out
M src/timezone/pgtz.c

Update regression test files for PL/Python traceback patch

commit   : 5d0e462366f4521e37744fdb42fed3c6819a3374    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 23:19:00 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 23:19:00 +0300    

Click here for diff

M src/pl/plpython/expected/plpython_unicode_3.out

Replace the confusing exit_nicely() by an atexit/on_exit hook

commit   : c75163842cf93fd7b6311df2c5545bf09447b870    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 23:00:44 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 23:00:44 +0300    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/util.c

Add traceback information to PL/Python errors

commit   : 2bd78eb8d51cc9ee03ba0287b23ff4c266dcd9b9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 22:36:06 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 22:36:06 +0300    

Click here for diff

This mimics the traceback information the Python interpreter prints  
with exceptions.  
  
Jan Urbański  

M src/pl/plpython/expected/plpython_do.out
M src/pl/plpython/expected/plpython_error.out
M src/pl/plpython/expected/plpython_error_0.out
M src/pl/plpython/expected/plpython_subtransaction.out
M src/pl/plpython/expected/plpython_subtransaction_0.out
M src/pl/plpython/expected/plpython_subtransaction_5.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/expected/plpython_types.out
M src/pl/plpython/expected/plpython_types_3.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_error.sql

Update key words table for 9.1

commit   : bf6848bc8c82e82f857d48185554bc3e6dcf1013    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 00:16:13 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 6 Apr 2011 00:16:13 +0300    

Click here for diff

M doc/src/sgml/keywords.sgml

Repair some flakiness in CheckTargetForConflictsIn.

commit   : 632f0faa7c975e8984ce0f1d6b631478e41a96c2    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 15:16:59 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 15:16:59 -0400    

Click here for diff

When we release and reacquire SerializableXactHashLock, we must recheck  
whether an R/W conflict still needs to be flagged, because it could have  
changed under us in the meantime.  And when we release the partition  
lock, we must re-walk the list of predicate locks from the beginning,  
because our pointer could get invalidated under us.  
  
Bug report #5952 by Yamamoto Takashi.  Patch by Kevin Grittner.  

M src/backend/storage/lmgr/predicate.c

Change "Id" to "id" in some SGML tags

commit   : 38d15f16511cb9f75ed2b1e1f73117c1bc581538    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 5 Apr 2011 15:06:06 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 5 Apr 2011 15:06:06 -0300    

Click here for diff

Gabriele Bartolini  

M doc/src/sgml/config.sgml
M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/typeconv.sgml

Typo fixes.

commit   : ad275473a5ea75f4aa010791884004f75f3c7a65    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 12:40:17 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 12:40:17 -0400    

Click here for diff

Erik Rijkers  

M doc/src/sgml/high-availability.sgml

Add casts from int4 and int8 to numeric.

commit   : f5e524d92be609c709825be8995bf77f10880c3b    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 09:35:43 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 5 Apr 2011 09:35:43 -0400    

Click here for diff

Joey Adams, per gripe from Ramanujam.  Review by myself and Tom Lane.  

M doc/src/sgml/datatype.sgml
M src/backend/utils/adt/cash.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_cast.h
M src/include/catalog/pg_proc.h
M src/include/utils/cash.h
M src/test/regress/expected/money.out
M src/test/regress/sql/money.sql

Avoid assuming there will be only 3 states for synchronous_commit. Also avoid hardcoding the current default state by giving it the name "on" and replace with a meaningful name that reflects its behaviour. Coding only, no change in behaviour.

commit   : 88f32b7ca29982f286b61a9d0dd29be4b8a01c25    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 23:23:13 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 23:23:13 +0100    

Click here for diff

M src/backend/access/transam/xact.c
M src/backend/postmaster/autovacuum.c
M src/backend/utils/misc/guc.c
M src/include/access/xact.h
M src/include/replication/syncrep.h

commit   : 479ee1b962ca2d479310af762c21d7c2056fdeca    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 22:38:43 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 22:38:43 +0100    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Update comments and credit doc proofreaders

commit   : 35d2a660fea51f8acae6aa0895875757fa09cb26    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 22:36:09 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 4 Apr 2011 22:36:09 +0100    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Update MSVC toolchain to match SGML entity uppercasing

commit   : 34a991619bddf2bfb441cf2d4396b67198326bcd    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 16:42:42 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 16:42:42 -0400    

Click here for diff

Per Robert Haas  

M src/tools/msvc/Solution.pm

Merge synchronous_replication setting into synchronous_commit.

commit   : 240067b3b0ff989d2b28f4f917f7958f2ec76b05    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 16:13:01 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 16:13:01 -0400    

Click here for diff

This means one less thing to configure when setting up synchronous  
replication, and also avoids some ambiguity around what the behavior  
should be when the settings of these variables conflict.  
  
Fujii Masao, with additional hacking by me.  

M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/release-9.1.sgml
M src/backend/access/transam/xact.c
M src/backend/postmaster/autovacuum.c
M src/backend/replication/syncrep.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/access/xact.h
M src/include/replication/syncrep.h

Uppercase <!ENTITY> and <!DOCTYPE> tags in SGML source

commit   : fc3459d70c5d842fe6519522649c8a47454f25bb    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 16:07:53 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 16:07:53 -0400    

Click here for diff

This improves compatibility with external toolchains, such as those used  
by some documentation translation tools.  
  
Gabriele Bartolini  

M doc/src/sgml/Makefile
M doc/src/sgml/filelist.sgml
M doc/src/sgml/postgres.sgml
M doc/src/sgml/ref/allfiles.sgml
M doc/src/sgml/standalone-install.sgml

Add missing check on invocation of trusted procedures.

commit   : 595a441ae999fb155a381fa4bcceadf40f041a33    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 13:25:42 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 13:25:42 -0400    

Click here for diff

KaiGai Kohei  

M contrib/sepgsql/expected/label.out
M contrib/sepgsql/hooks.c
M contrib/sepgsql/sepgsql-regtest.te
M contrib/sepgsql/sql/label.sql

Include pid in pg_lock_status() results even for SIREAD locks.

commit   : a0e50e698beb89a8ec203303581e464a5f69fc41    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 13:20:18 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 4 Apr 2011 13:20:18 -0400    

Click here for diff

Dan Ports  

M src/backend/utils/adt/lockfuncs.c

Duplicate expansion of "direction" from FETCH's synopsis into MOVE

commit   : 8c250f3741f4f897362de32a03f56726cf3f9774    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 12:03:41 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 4 Apr 2011 12:03:41 -0400    

Click here for diff

M doc/src/sgml/ref/fetch.sgml
M doc/src/sgml/ref/move.sgml

Rearrange "add column" logic to merge columns at exec time.

commit   : 6c5723998594dffa5d47c3cf8c96ccf89c033aae    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 21:52:47 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 21:52:47 -0400    

Click here for diff

The previous coding set attinhcount too high in some cases, resulting in  
an undumpable, undroppable column.  Per bug #5856, reported by Naoya  
Anzai.  See also commit 31b6fc06d83c6de3644c8f2921eb7de0eb92fac3, which  
fixes a similar bug in ALTER TABLE .. ADD CONSTRAINT.  
  
Patch by Noah Misch.  

M src/backend/commands/tablecmds.c
M src/include/nodes/parsenodes.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Improve documentation on the range of the numeric data type.

commit   : cabf5d84b6d1a92ab97492d7e3d650548a9992cd    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:56:22 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:56:22 -0400    

Click here for diff

Gianni Ciolli, reviewed by Noah Misch  

M doc/src/sgml/datatype.sgml

Remove mention of using "man" from the tutorial.

commit   : 1981fb73136433579cae9a34fb3a12f1fcc519fc    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:49:05 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:49:05 -0400    

Click here for diff

This isn't applicable on Windows, and the internal link to the  
psql documentation should be more than sufficient.  
  
Susanne Ebrecht  

M doc/src/sgml/start.sgml

Avoid possible hang during smart shutdown.

commit   : 38b27792eae99f5b4db2411f5c57ef70f850df5f    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:42:00 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 3 Apr 2011 19:42:00 -0400    

Click here for diff

If a smart shutdown occurs just as a child is starting up, and the  
child subsequently becomes a walsender, there is a race condition:  
the postmaster might count the exstant backends, determine that there  
is one normal backend, and wait for it to die off.  Had the walsender  
transition already occurred before the postmaster counted, it would  
have proceeded with the shutdown.  
  
To fix this, have each child that transforms into a walsender kick  
the postmaster just after doing so, so that the state machine is  
certain to advance.  
  
Fujii Masao  

M src/backend/postmaster/postmaster.c
M src/backend/replication/walsender.c
M src/include/storage/pmsignal.h

Fix typo in PQconnectStartParams().

commit   : d518d6a168797c2e3b9cf03a3b5cfa335be735bb    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 2 Apr 2011 18:05:42 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 2 Apr 2011 18:05:42 -0400    

Click here for diff

This would lead to leaking the PGconn structure after an error detected by  
conninfo_array_parse(), as well as failing to return a useful error message  
in such cases.  Backpatch to 9.0 where the error was introduced.  
  
Joseph Adams  

M src/interfaces/libpq/fe-connect.c

Escape greater than and less than characters in docs.

commit   : d420ba2a2d4ea4831f89a3fd7ce86b05eff932ff    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 2 Apr 2011 17:06:43 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 2 Apr 2011 17:06:43 +0300    

Click here for diff

Susanne Ebrecht and me  

M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/sepgsql.sgml

Avoid palloc before CurrentMemoryContext is set up on win32

commit   : 5735efee15540765315aa8c1a230575e756037f7    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 1 Apr 2011 19:58:36 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 1 Apr 2011 19:58:36 +0200    

Click here for diff

Instead, write the unconverted output - it will be in the wrong  
encoding, but at least we don't crash.  
  
Rushabh Lathia  

M src/backend/utils/error/elog.c

Tab completion for COMMENT ON FOREIGN DATA WRAPPER / SERVER.

commit   : e49ad77ff958b380ea6fa08c72e2dce97ac56c6b    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 13:15:49 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 13:15:49 -0400    

Click here for diff

M src/bin/psql/tab-complete.c

pg_dump support for comments on FOREIGN DATA WRAPPER and SERVER objects.

commit   : dd095b623ec4b41e8c5728f9c576375985554fd3    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 11:40:37 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 11:40:37 -0400    

Click here for diff

Shigeru Hanada, with some corrections.  

M src/bin/pg_dump/pg_dump.c

Support comments on FOREIGN DATA WRAPPER and SERVER objects.

commit   : 50533a6dc515cc3182f52838275c9d2a1f587604    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 11:28:28 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 11:28:28 -0400    

Click here for diff

This mostly involves making it work with the objectaddress.c framework,  
which does most of the heavy lifting.  In that vein, change  
GetForeignDataWrapperOidByName to get_foreign_data_wrapper_oid and  
GetForeignServerOidByName to get_foreign_server_oid, to match the  
pattern we use for other object types.  
  
Robert Haas and Shigeru Hanada  

M doc/src/sgml/ref/comment.sgml
M src/backend/catalog/aclchk.c
M src/backend/catalog/objectaddress.c
M src/backend/commands/foreigncmds.c
M src/backend/foreign/foreign.c
M src/backend/parser/gram.y
M src/backend/utils/adt/acl.c
M src/include/foreign/foreign.h
M src/include/utils/acl.h
M src/test/regress/expected/foreign_data.out
M src/test/regress/sql/foreign_data.sql

Fix compiler warning.

commit   : 7fcc75dd26ff0fee0b02f1b8b4215c298ca974ca    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 10:35:52 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 1 Apr 2011 10:35:52 -0400    

Click here for diff

M src/backend/replication/walsender.c

Fix two missing spaces in error messages.

commit   : 9d56886112d8307dcd28ce49048a770c5d26acf9    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 1 Apr 2011 14:41:39 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 1 Apr 2011 14:41:39 +0300    

Click here for diff

Josh Kupershmidt  

M src/backend/port/sysv_shmem.c

Fix a tiny race condition in predicate locking. Need to hold the lock while examining the head of predicate locks list. Also, fix the comment of RemoveTargetIfNoLongerUsed, it was neglected when we changed the way update chains are handled.

commit   : 60b142b9a6f413a92665766a1f265b361f68c20b    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 18:43:23 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 18:43:23 +0300    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Increase SHMEM_INDEX_SIZE from 32 to 64. We're currently at 40 entries in ShmemIndex, so 64 leaves some headroom.

commit   : c8ae318cbeceadac172aa6b9cfa43734b0836e5e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 13:37:01 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 13:37:01 +0300    

Click here for diff

Kevin Grittner  

M src/include/storage/shmem.h

Don't leak the temporary PLyProcedure struct we create for inline plpython blocks.

commit   : ec7626504f0fc8cca46d0f2a460e4b76177f79b3    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 12:37:11 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 12:37:11 +0300    

Click here for diff

Investigation by Jan Urbański, though I didn't use his patch.  

M src/pl/plpython/plpython.c

Reword the phrase on zero replication_timeout in the docs.

commit   : 647f8b3dbaa68662f54aa762e9467874282c563d    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 10:19:29 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 10:19:29 +0300    

Click here for diff

M doc/src/sgml/config.sgml

Improve error message when WAL ends before reaching end of online backup.

commit   : 1f0bab8494f7734e26b76fe34599c7763c8753a1    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 10:09:49 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 31 Mar 2011 10:09:49 +0300    

Click here for diff

M src/backend/access/transam/xlog.c

Mention pg_upgrade sets autovacuum_freeze_max_age to maximum.

commit   : da3418cea9bd10e9ea3489b42f6278772942e745    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 30 Mar 2011 17:45:54 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 30 Mar 2011 17:45:54 -0400    

Click here for diff

M contrib/pg_upgrade/server.c

Expand comment on how pg_upgrade is turning off autovacuum.

commit   : d609b08ead450d78d4a567c48111aca6857ec59c    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 30 Mar 2011 17:36:24 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 30 Mar 2011 17:36:24 -0400    

Click here for diff

M contrib/pg_upgrade/server.c

Attempt to unbreak windows builds broken by commit 754baa2.

commit   : 382fb6a08f524327b5e3084b3652fba2e12f1ba2    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 30 Mar 2011 16:43:31 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 30 Mar 2011 16:43:31 -0400    

Click here for diff

M src/backend/libpq/pqcomm.c

Check that we've reached end-of-backup also when we're not performing archive recovery.

commit   : acf47401321ce55f06026a2f5d5512b404da3e55    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 10:36:58 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 10:36:58 +0300    

Click here for diff

It's possible to restore an online backup without recovery.conf, by simply  
copying all the necessary WAL files to pg_xlog. "pg_basebackup -x" does that  
too. That's the use case where this cross-check is useful.  
  
Backpatch to 9.0. We used to do this in earlier versins, but in 9.0 the code  
was inadvertently changed so that the check is only performed after archive  
recovery.  
  
Fujii Masao.  

M src/backend/access/transam/xlog.c

Automatically terminate replication connections that are idle for more than replication_timeout (a new GUC) milliseconds. The TCP timeout is often too long, you want the master to notice a dead connection much sooner. People complained about that in 9.0 too, but with synchronous replication it's even more important to notice dead connections promptly.

commit   : 754baa21f723255272c24dc5f9ab456858e361e3    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 10:10:32 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 10:10:32 +0300    

Click here for diff

Fujii Masao and Heikki Linnakangas  

M doc/src/sgml/config.sgml
M src/backend/libpq/pqcomm.c
M src/backend/port/unix_latch.c
M src/backend/port/win32/socket.c
M src/backend/port/win32_latch.c
M src/backend/replication/walsender.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/libpq/libpq.h
M src/include/replication/walsender.h
M src/include/storage/latch.h

Adjust error message, now that we expect other message types than connection close at this point. Fix PQsetnonblocking() comment.

commit   : bc03c5937d103952ef4f40a3fa4514c154538d25    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 08:54:28 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 30 Mar 2011 08:54:28 +0300    

Click here for diff

Fujii Masao  

M src/backend/replication/walsender.c
M src/interfaces/libpq/fe-exec.c

Update SQL features list

commit   : f564e65cda32fd14f6f7cdd85d116c421af731f2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 29 Mar 2011 23:23:50 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 29 Mar 2011 23:23:50 +0300    

Click here for diff

Feature F692 "Extended collation support" is now also supported.  This  
refers to allowing the COLLATE clause anywhere in a column or domain  
definition instead of just directly after the type.  
  
Also correct the name of the feature in accordance with the latest SQL  
standard.  

M src/backend/catalog/sql_features.txt

In pg_upgrade, add C comment about how autovacuum is disabled.

commit   : d67b0bf471ba4e88aa3ed50871924efc91d7a27e    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 29 Mar 2011 11:11:12 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 29 Mar 2011 11:11:12 -0400    

Click here for diff

M contrib/pg_upgrade/server.c

Add maintainer-check target

commit   : 6c0dfc035670240cddf0092a4aa22e5815b6583d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 28 Mar 2011 22:53:55 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 28 Mar 2011 22:53:55 +0300    

Click here for diff

This can do various source code checks that are not appropriate for  
either the build or the regression tests.  Currently: duplicate_oids,  
SGML syntax and tabs check, NLS syntax check.  

M GNUmakefile.in
M doc/Makefile
M doc/src/Makefile
M doc/src/sgml/Makefile
M src/Makefile.global.in
M src/include/Makefile

Make duplicate_oids return nonzero exit status if duplicates were found

commit   : aa6fdd186cf2c29e04d3cc8ca19783fb904a5a33    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 28 Mar 2011 22:52:23 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 28 Mar 2011 22:52:23 +0300    

Click here for diff

Automatic detection of errors is easier that way.  

M src/include/catalog/duplicate_oids

Prevent a rowtype from being included in itself.

commit   : eb51af71f241e8cb199790dee9ad246bb36b3287    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 28 Mar 2011 15:44:54 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 28 Mar 2011 15:44:54 -0400    

Click here for diff

Eventually we might be able to allow that, but it's not clear how many  
places need to be fixed to prevent infinite recursion when there's a direct  
or indirect inclusion of a rowtype in itself.  One such place is  
CheckAttributeType(), which will recurse to stack overflow in cases such as  
those exhibited in bug #5950 from Alex Perepelica.  If we were sure it was  
the only such place, we could easily modify the code added by this patch to  
stop the recursion without a complaint ... but it probably isn't the only  
such place.  Hence, throw error until such time as someone is excited  
enough about this type of usage to put work into making it safe.  
  
Back-patch as far as 8.3.  8.2 doesn't have the recursive call in  
CheckAttributeType in the first place, so I see no need to add code there  
in the absence of clear evidence of a problem elsewhere.  

M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/commands/tablecmds.c
M src/include/catalog/heap.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

commit   : 5c22c0eda14594b5962aed7165a012067b33ab7d    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 28 Mar 2011 14:50:08 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 28 Mar 2011 14:50:08 -0400    

Click here for diff

We already had links to the GUC variables that control it.  

M doc/src/sgml/release-9.1.sgml

Mark up release notes using <link>.

commit   : 7c7fd882a5275bf40cd5ac72c6118916f7802aa4    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 28 Mar 2011 09:42:09 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 28 Mar 2011 09:42:09 -0400    

Click here for diff

Unlike <xref>, this actually works.  

M doc/src/sgml/release-9.1.sgml

Add missing #include

commit   : e5948e3504c72fb2b8b32af26bfbb016e7c71bf6    
  
author   : Alvaro Herrera <[email protected]>    
date     : Sat, 26 Mar 2011 00:09:17 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Sat, 26 Mar 2011 00:09:17 -0300    

Click here for diff

M contrib/sepgsql/sepgsql.h

commit   : a720c28f0af3185f7d40788a78867a36bff36bc7    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 28 Mar 2011 09:34:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 28 Mar 2011 09:34:56 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Typo fix in SSI docs.

commit   : 20a1159fccd2c4580e5e1c9782cb98f95c40648a    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 27 Mar 2011 21:35:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 27 Mar 2011 21:35:15 -0400    

Click here for diff

Kevin Grittner  

M doc/src/sgml/mvcc.sgml

Correct "characters" to "bytes" in createdb docs.

commit   : de32982242416ca0c78f8e8de4e4cd44af170bda    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 27 Mar 2011 21:28:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 27 Mar 2011 21:28:15 -0400    

Click here for diff

Susanne Ebrecht  

M doc/src/sgml/start.sgml

fix up a couple non-prototypes of the form foo() to be foo(void) -- found using -Wstrict-prototypes

commit   : 7b66e2c086b1a24d8adad52842725db8c0499e02    
  
author   : Greg Stark <[email protected]>    
date     : Sun, 27 Mar 2011 21:31:41 +0100    
  
committer: Greg Stark <[email protected]>    
date     : Sun, 27 Mar 2011 21:31:41 +0100    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c
M src/interfaces/ecpg/include/ecpglib.h

Fix check_exclusion_constraint() to insert correct collations in ScanKeys.

commit   : d0dd5c73527d4adc11211bd6ad43e3be121842f9    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 27 Mar 2011 13:29:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 27 Mar 2011 13:29:52 -0400    

Click here for diff

M src/backend/executor/execUtils.c

Fix plpgsql to release SPI plans when a function or DO block is freed.

commit   : 87f2ad1326bff5cd37dde6fbf024137a2243efea    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 27 Mar 2011 12:51:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 27 Mar 2011 12:51:04 -0400    

Click here for diff

This fixes the gripe I made a few months ago about DO blocks getting  
slower with repeated use.  At least, it fixes it for the case where  
the DO block isn't aborted by an error.  We could try running  
plpgsql_free_function_memory() even during error exit, but that seems  
a bit scary since it makes a lot of presumptions about the data  
structures being in good shape.  It's probably reasonable to assume  
that repeated failures of DO blocks isn't a performance-critical case.  

M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_funcs.c
M src/pl/plpgsql/src/pl_handler.c
M src/pl/plpgsql/src/plpgsql.h

Remove disclaimer stating that fsync=off slows down sync rep.

commit   : de592e2669380d5f95766d2bbe583558772fb6ce    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 26 Mar 2011 21:18:53 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 26 Mar 2011 21:18:53 -0400    

Click here for diff

The underlying problem that caused this phenomenon was fixed by commit  
92f4786fa9b730fd12cbfe973eb96addc6e98924.  

M doc/src/sgml/high-availability.sgml

Update release notes for latest commits.

commit   : ab1ef8e4448d276d65ecd02bebc03c03854c7200    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 26 Mar 2011 21:11:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 26 Mar 2011 21:11:15 -0400    

Click here for diff

In addition, correct the entry for pg_object_description, and some other  
minor cleanup.  

M doc/src/sgml/release-9.1.sgml

Clean up cruft around collation initialization for tupdescs and scankeys.

commit   : 7208fae18f1fdb242b4fcced77a3b836e15ac3ec    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 18:28:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 18:28:40 -0400    

Click here for diff

I found actual bugs in GiST and plpgsql; the rest of this is cosmetic  
but meant to decrease the odds of future bugs of omission.  

M src/backend/access/common/scankey.c
M src/backend/access/common/tupdesc.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gist/gistscan.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/commands/seclabel.c
M src/backend/commands/sequence.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeMergeAppend.c
M src/backend/utils/adt/pgstatfuncs.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/catcache.c
M src/backend/utils/sort/tuplesort.c
M src/include/access/skey.h
M src/pl/plpgsql/src/pl_comp.c

More collations cleanup, from trawling for missed collation assignments.

commit   : 0c9d9e8dd655fff7bcfc401e82838b8c20c16939    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 16:35:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 16:35:25 -0400    

Click here for diff

Mostly cosmetic, though I did find that generateClonedIndexStmt failed  
to clone the index's collations.  

M src/backend/bootstrap/bootparse.y
M src/backend/nodes/nodeFuncs.c
M src/backend/optimizer/util/plancat.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_utilcmd.c
M src/include/nodes/parsenodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/relation.h

Clean up a few failures to set collation fields in expression nodes.

commit   : b23c9fa9293c54a3829093d207be37a7b42cb630    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 14:25:48 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 26 Mar 2011 14:25:48 -0400    

Click here for diff

I'm not sure these have any non-cosmetic implications, but I'm not sure  
they don't, either.  In particular, ensure the CaseTestExpr generated  
by transformAssignmentIndirection to represent the base target column  
carries the correct collation, because parse_collate.c won't fix that.  
Tweak lsyscache.c API so that we can get the appropriate collation  
without an extra syscache lookup.  

M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/predtest.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_target.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/cache/lsyscache.c
M src/include/utils/lsyscache.h

commit   : 92f4786fa9b730fd12cbfe973eb96addc6e98924    
  
author   : Simon Riggs <[email protected]>    
date     : Sat, 26 Mar 2011 10:09:37 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Sat, 26 Mar 2011 10:09:37 +0000    

Click here for diff

M src/backend/replication/syncrep.c

Pass collation to makeConst() instead of looking it up internally.

commit   : bfa4440ca5d948c4d4f0ab5bb82d433200c35288    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 20:10:42 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 20:10:42 -0400    

Click here for diff

In nearly all cases, the caller already knows the correct collation, and  
in a number of places, the value the caller has handy is more correct than  
the default for the type would be.  (In particular, this patch makes it  
significantly less likely that eval_const_expressions will result in  
changing the exposed collation of an expression.)  So an internal lookup  
is both expensive and wrong.  

M src/backend/commands/tablecmds.c
M src/backend/executor/execQual.c
M src/backend/executor/functions.c
M src/backend/nodes/makefuncs.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/rewrite/rewriteManip.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/lsyscache.c
M src/include/nodes/makefuncs.h

Fix failure to propagate collation in negate_clause().

commit   : c8e993503d0f1a0cb8f187a136fb64cead9ba591    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 18:44:47 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 18:44:47 -0400    

Click here for diff

Turns out it was this, and not so much plpgsql, that was at fault in Stefan  
Huehner's collation-error-in-a-trigger bug report of a couple weeks ago.  

M src/backend/optimizer/prep/prepqual.c

Document collation handling in SQL and plpgsql functions.

commit   : 9b19c12e1d930a237817dd432100388990ec082a    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 18:21:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 18:21:25 -0400    

Click here for diff

This is pretty minimal but covers the bare facts.  

M doc/src/sgml/charset.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/xfunc.sgml

Fix collation handling in plpgsql functions.

commit   : a4425e3200f2c2578bdf94bb6234169115746c9f    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 15:06:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Mar 2011 15:06:36 -0400    

Click here for diff

Make plpgsql treat the input collation as a polymorphism variable, so  
that we cache separate plans for each input collation that's used in a  
particular session, as per recent discussion.  Propagate the input  
collation to all collatable input parameters.  
  
I chose to also propagate the input collation to all declared variables of  
collatable types, which is a bit more debatable but seems to be necessary  
for non-astonishing behavior.  (Copying a parameter into a separate local  
variable shouldn't result in a change of behavior, for example.)  There is  
enough infrastructure here to support declaring a collation for each local  
variable to override that default, but I thought we should wait to see what  
the field demand is before adding such a feature.  
  
In passing, remove exec_get_rec_fieldtype(), which wasn't used anywhere.  
  
Documentation patch to follow.  

M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/plpgsql.h
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Remove alpha release notes.

commit   : f6f0916dbdf9f2dc6bcdc550d8b3843739cdc304    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 25 Mar 2011 11:52:11 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 25 Mar 2011 11:52:11 -0400    

Click here for diff

Temporarily move some of the alpha release note disclaimers into the regular  
release notes, for the sake of alpha5.  

M doc/src/sgml/release-9.1.sgml

Make walreceiver send a reply after receiving data but before flushing it.

commit   : 30f6136f28a6bf9eedcbf41038d5b021169bc0b9    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 25 Mar 2011 11:23:39 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 25 Mar 2011 11:23:39 -0400    

Click here for diff

It originally worked this way, but was changed by commit  
a8a8a3e0965201df88bdfdff08f50e5c06c552b7, since which time it's been impossible  
for walreceiver to ever send a reply with write_location and flush_location  
set to different values.  

M src/backend/replication/walreceiver.c

Fix broken markup, and remove tabs

commit   : 01dd34d55ad53117c2d756da7f65b6fa07a303aa    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 25 Mar 2011 12:20:14 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 25 Mar 2011 12:20:14 -0300    

Click here for diff

M doc/src/sgml/ref/ecpg-ref.sgml

Documented some ecpg command line options that were missing:

commit   : 71ac48fd9cebd3d2a873635a04df64096c981f73    
  
author   : Michael Meskes <[email protected]>    
date     : Thu, 24 Mar 2011 22:18:11 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Thu, 24 Mar 2011 22:18:11 +0100    

Click here for diff

-r no_indicator  
-r prepare  
-r questionsmarks  

M doc/src/sgml/ref/ecpg-ref.sgml

Fix handling of collation in SQL-language functions.

commit   : 27dc7e240bfd230ee1315cc00577a6ed72aff94a    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 24 Mar 2011 20:30:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 24 Mar 2011 20:30:14 -0400    

Click here for diff

Ensure that parameter symbols receive collation from the function's  
resolved input collation, and fix inlining to behave properly.  
  
BTW, this commit lays about 90% of the infrastructure needed to support  
use of argument names in SQL functions.  Parsing of parameters is now  
done via the parser-hook infrastructure ... we'd just need to supply  
a column-ref hook ...  

M src/backend/catalog/pg_proc.c
M src/backend/executor/functions.c
M src/backend/optimizer/util/clauses.c
M src/backend/parser/parse_param.c
M src/include/executor/functions.h
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Add post-creation hook for extensions, consistent with other object types.

commit   : a432e2783bb69fb68461ed2bcc460e2876fcc68d    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 24 Mar 2011 18:44:49 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 24 Mar 2011 18:44:49 -0400    

Click here for diff

KaiGai Kohei  

M src/backend/commands/extension.c

Edits to 9.1 release notes.

commit   : 7b630e7b8e4faec13af2ce934b8bb33d9a1c8e06    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 24 Mar 2011 16:57:12 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 24 Mar 2011 16:57:12 -0400    

Click here for diff

Add some new items and some additional details to existing items, mostly  
by cribbing from the 9.1alpha notes.  Some additional clarifications and  
corrections elsewhere, and a few typo fixes.  

M doc/src/sgml/release-9.1.sgml

Clean up handling of COLLATE clauses in index column definitions.

commit   : 3bba9ce945a702ab116fcedb9c0b970ecd69c9dd    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 24 Mar 2011 15:29:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 24 Mar 2011 15:29:52 -0400    

Click here for diff

Ensure that COLLATE at the top level of an index expression is treated the  
same as a grammatically separate COLLATE.  Fix bogus reverse-parsing logic  
in pg_get_indexdef.  

M src/backend/commands/indexcmds.c
M src/backend/utils/adt/ruleutils.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.linux.utf8.sql
M src/test/regress/sql/collate.sql

Improve user-defined-aggregates documentation.

commit   : 472671e133da77f280e87cb47c6544c75572df6b    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 23 Mar 2011 16:56:55 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 23 Mar 2011 16:56:55 -0400    

Click here for diff

On closer inspection, that two-element initcond value seems to have been  
a little white lie to avoid explaining the full behavior of float8_accum.  
But if people are going to expect the examples to be exactly correct,  
I suppose we'd better explain.  Per comment from Thom Brown.  

M doc/src/sgml/xaggr.sgml

Minor changes to recovery pause behaviour. Change location LOG message so it works each time we pause, not just for final pause. Ensure that we pause only if we are in Hot Standby and can connect to allow us to run resume function. This change supercedes the code to override parameter recoveryPauseAtTarget to false if not attempting to enter Hot Standby, which is now removed.

commit   : b5f2f2a712e56fe1edf7d5665c07ee97be464c0b    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 23 Mar 2011 19:35:53 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 23 Mar 2011 19:35:53 +0000    

Click here for diff

M src/backend/access/transam/xlog.c

Fix ancient typo in user-defined-aggregates documentation.

commit   : ba7d020d9d6edba872173f8640ca240e00ae7070    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 23 Mar 2011 12:33:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 23 Mar 2011 12:33:14 -0400    

Click here for diff

The description of the initcond value for the built-in avg(float8)  
aggregate has been wrong since it was written.  Noted by Disc Magnet.  

M doc/src/sgml/xaggr.sgml

Remove synchronous_replication/max_wal_senders cross-check.

commit   : 19584ec659678841ea3036336f960acbdae962a0    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 23 Mar 2011 11:44:27 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 23 Mar 2011 11:44:27 -0400    

Click here for diff

This is no longer necessary, and might result in a situation where the  
configuration file is reloaded (and everything seems OK) but a subsequent  
restart of the database fails.  
  
Per an observation from Fujii Masao.  

M src/backend/postmaster/postmaster.c

Prevent intermittent hang in recovery from bgwriter interaction. Startup process waited for cleanup lock but when hot_standby = off the pid was not registered, so that the bgwriter would not wake the waiting process as intended.

commit   : b98ac467f5d35970edade4ad65c767fc89059026    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 23 Mar 2011 13:30:05 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 23 Mar 2011 13:30:05 +0000    

Click here for diff

M src/backend/access/transam/xlog.c
M src/backend/storage/ipc/standby.c

Cosmetic capitalization fix

commit   : 856a23018c976794655d6f53b72fb692178fbb27    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 22 Mar 2011 17:44:38 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 22 Mar 2011 17:44:38 +0200    

Click here for diff

M doc/src/sgml/plpython.sgml

Make FKs valid at creation when added as column constraints.

commit   : ec497a5ad6a0849efa3fb2fd05988bd8e0c0865d    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 22 Mar 2011 23:10:35 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 22 Mar 2011 23:10:35 +0000    

Click here for diff

Bug report from Alvaro Herrera  

M src/backend/commands/tablecmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/include/nodes/parsenodes.h

Make initdb ignore locales for client-only encodings.

commit   : 5d1d679dbf780694673529bd864ca1e258ae50d5    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 17:20:50 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 17:20:50 -0400    

Click here for diff

While putting such entries into pg_collation is harmless (since backends  
will ignore entries that don't match the database encoding), it's also  
useless.  

M src/bin/initdb/initdb.c

Improve reporting of run-time-detected indeterminate-collation errors.

commit   : 6e197cb2e537880f36828a6c55d0f6df5bf7daa8    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 16:55:32 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 16:55:32 -0400    

Click here for diff

pg_newlocale_from_collation does not have enough context to give an error  
message that's even a little bit useful, so move the responsibility for  
complaining up to its callers.  Also, reword ERRCODE_INDETERMINATE_COLLATION  
error messages in a less jargony, more message-style-guide-compliant  
fashion.  

M src/backend/commands/collationcmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/view.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/varlena.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/collate.out

Throw error for indeterminate collation of an ORDER/GROUP/DISTINCT target.

commit   : 37d6d07dda28a5dffcad6ff195ab2c83aaebcc9e    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 15:58:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 15:58:03 -0400    

Click here for diff

This restores a parse error that was thrown (though only in the ORDER BY  
case) by the original collation patch.  I had removed it in my recent  
revisions because it was thrown at a place where collations now haven't  
been computed yet; but I thought of another way to handle it.  
  
Throwing the error at parse time, rather than leaving it to be done at  
runtime, is good because a syntax error pointer is helpful for localizing  
the problem.  We can reasonably assume that the comparison function for a  
collatable datatype will complain if it doesn't have a collation to use.  
Now the planner might choose to implement GROUP or DISTINCT via hashing,  
in which case no runtime error would actually occur, but it seems better  
to throw error consistently rather than let the error depend on what the  
planner chooses to do.  Another possible objection is that the user might  
specify a nondefault sort operator that doesn't care about collation  
... but that's surely an uncommon usage, and it wouldn't hurt him to throw  
in a COLLATE clause anyway.  This change also makes the ORDER BY/GROUP  
BY/DISTINCT case more consistent with the UNION/INTERSECT/EXCEPT case,  
which was already coded to throw this error even though the same objections  
could be raised there.  

M src/backend/parser/parse_collate.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/collate.out
M src/test/regress/sql/collate.linux.utf8.sql
M src/test/regress/sql/collate.sql

Avoid potential deadlock in InitCatCachePhase2().

commit   : 1192ba8b67df1446973c71aafde5f6f613dce0af    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 13:00:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 13:00:24 -0400    

Click here for diff

Opening a catcache's index could require reading from that cache's own  
catalog, which of course would acquire AccessShareLock on the catalog.  
So the original coding here risks locking index before heap, which could  
deadlock against another backend trying to get exclusive locks in the  
normal order.  Because InitCatCachePhase2 is only called when a backend  
has to start up without a relcache init file, the deadlock was seldom seen  
in the field.  (And by the same token, there's no need to worry about any  
performance disadvantage; so not much point in trying to distinguish  
exactly which catalogs have the risk.)  
  
Bug report, diagnosis, and patch by Nikhil Sontakke.  Additional commentary  
by me.  Back-patch to all supported branches.  

M src/backend/utils/cache/catcache.c
M src/backend/utils/cache/relcache.c

Update docs to say you need fsync to make sync rep work fast.

commit   : 6e8e7cc580665ddd43c8ca2acc6d60f345570a57    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 22 Mar 2011 16:23:54 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 22 Mar 2011 16:23:54 +0000    

Click here for diff

M doc/src/sgml/high-availability.sgml

Reimplement planner's handling of MIN/MAX aggregate optimization (again).

commit   : 8df08c84894001d3d3f5d10b3290a1063a453316    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 00:34:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Mar 2011 00:34:31 -0400    

Click here for diff

Instead of playing cute games with pathkeys, just build a direct  
representation of the intended sub-select, and feed it through  
query_planner to get a Path for the index access.  This is a bit slower  
than 9.1's previous method, since we'll duplicate most of the overhead of  
query_planner; but since the whole optimization only applies to rather  
simple single-table queries, that probably won't be much of a problem in  
practice.  The advantage is that we get to do the right thing when there's  
a partial index that needs the implicit IS NOT NULL clause to be usable.  
Also, although this makes planagg.c be a bit more closely tied to the  
ordering of operations in grouping_planner, we can get rid of some coupling  
to lower-level parts of the planner.  Per complaint from Marti Raudsepp.  

M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/include/nodes/relation.h
M src/include/optimizer/paths.h
M src/test/regress/expected/aggregates.out
M src/test/regress/sql/aggregates.sql

When two base backups are started at the same time with pg_basebackup, ensure that they use different checkpoints as the starting point. We use the checkpoint redo location as a unique identifier for the base backup in the end-of-backup record, and in the backup history file name.

commit   : 6d8096e2f3f2c1296fa880f44f3fa5701b2f40c4    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 21 Mar 2011 11:25:25 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 21 Mar 2011 11:25:25 +0200    

Click here for diff

Bug spotted by Fujii Masao.  

M src/backend/access/transam/xlog.c

Markup and wording improvements for 9.1 release notes.

commit   : 62bf9c28061c614df530ac672b1e59f88e805578    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 23:17:21 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 23:17:21 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Another 9.1 release note typo fix.

commit   : 78fce29628f99a7dd002561dc87904456c992173    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 19:36:44 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 19:36:44 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Fix snapshot isolation level typo in 9.1 release notes.

commit   : e8f4c240c7065edcbe82e06a2d86c05c8abee67f    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 19:35:19 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 19:35:19 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Reorder some 9.1 release item documentation entries, fix some awkward wording.

commit   : f670c195b64a97b8b9e9780e80614cd03b9fcadd    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 17:43:04 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 17:43:04 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Add some platform-independent tests for the collation feature.

commit   : 9b095fbea4d6e80e3288e08bd2af4f33aa66875e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 14:35:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 14:35:39 -0400    

Click here for diff

There's a lot we can't test very well without platform dependencies,  
but the C/POSIX collations should now work the same way everywhere.  

A src/test/regress/expected/collate.out
M src/test/regress/parallel_schedule
M src/test/regress/serial_schedule
A src/test/regress/sql/collate.sql

Suppress platform-dependent unused-variable warning.

commit   : 82e4d45bd0ba9c07b8a97f28f939db6d8d564f9a    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 13:34:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 13:34:31 -0400    

Click here for diff

The local variable "sock" can be unused depending on compilation flags.  
But there seems no particular need for it, since the kernel calls can  
just as easily say port->sock instead.  

M src/backend/libpq/auth.c

Fix up handling of C/POSIX collations.

commit   : 176d5bae1d636fc1e91840b12cbd04c96d638b7e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 12:43:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Mar 2011 12:43:39 -0400    

Click here for diff

Install just one instance of the "C" and "POSIX" collations into  
pg_collation, rather than one per encoding.  Make these instances exist  
and do something useful even in machines without locale_t support: to wit,  
it's now possible to force comparisons and case-folding functions to use C  
locale in an otherwise non-C database, whether or not the platform has  
support for using any additional collations.  
  
Fix up severely broken upper/lower/initcap functions, too: the C/POSIX  
fastpath now does what it is supposed to, and non-default collations are  
handled correctly in single-byte database encodings.  
  
Merge the two separate collation hashtables that were being maintained in  
pg_locale.c, and be more wary of the possibility that we fail partway  
through filling a cache entry.  

M doc/src/sgml/charset.sgml
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/pg_locale.c
M src/bin/initdb/initdb.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_collation.h
M src/include/port.h
M src/port/pgstrcasecmp.c

Move PITR and StreamingRep up one level of heading in the 9.1 release notes.

commit   : c2f4ea469b52e6f7fedff651a4aa0acced873a5f    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 09:33:37 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 09:33:37 -0400    

Click here for diff

Remove excessive linking to pg_ctl manual page.  
  
Reorder incompatibility sections.  

M doc/src/sgml/release-9.1.sgml

Misc minor fixes to 9.1 release notes

commit   : 0f96ae643c5815d14e39ae8d349be218aae126a8    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 20 Mar 2011 13:28:05 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 20 Mar 2011 13:28:05 +0100    

Click here for diff

Thom Brown  

M doc/src/sgml/release-9.1.sgml

Word-wrap 9.1 release note lines.

commit   : 08607c95158e2e67efba90606d83f14ab5f25175    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 00:27:23 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Mar 2011 00:27:23 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

commit   : b2c5b3d1753f1a3e5cb68a610bda27ad768bf061    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 23:58:53 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 23:58:53 -0400    

Click here for diff

M doc/src/sgml/extend.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/release-9.1.sgml
M doc/src/sgml/syntax.sgml

Revise collation derivation method and expression-tree representation.

commit   : b310b6e31ce5aa9e456c43c0e8e93248b0c84c02    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 19 Mar 2011 20:29:08 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 19 Mar 2011 20:29:08 -0400    

Click here for diff

All expression nodes now have an explicit output-collation field, unless  
they are known to only return a noncollatable data type (such as boolean  
or record).  Also, nodes that can invoke collation-aware functions store  
a separate field that is the collation value to pass to the function.  
This avoids confusion that arises when a function has collatable inputs  
and noncollatable output type, or vice versa.  
  
Also, replace the parser's on-the-fly collation assignment method with  
a post-pass over the completed expression tree.  This allows us to use  
a more complex (and hopefully more nearly spec-compliant) assignment  
rule without paying for it in extra storage in every expression node.  
  
Fix assorted bugs in the planner's handling of collations by making  
collation one of the defining properties of an EquivalenceClass and  
by converting CollateExprs into discardable RelabelType nodes during  
expression preprocessing.  

M src/backend/access/gin/ginutil.c
M src/backend/access/index/indexam.c
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/commands/analyze.c
M src/backend/commands/functioncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/prepare.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/executor/execQual.c
M src/backend/executor/functions.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/predtest.c
M src/backend/parser/Makefile
M src/backend/parser/README
M src/backend/parser/analyze.c
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_coerce.c
A src/backend/parser/parse_collate.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_param.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_utilcmd.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/fmgr/README
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/fmgr/funcapi.c
M src/backend/utils/sort/tuplesort.c
M src/include/catalog/catversion.h
M src/include/fmgr.h
M src/include/nodes/makefuncs.h
M src/include/nodes/nodeFuncs.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/relation.h
M src/include/optimizer/clauses.h
M src/include/optimizer/paths.h
M src/include/optimizer/planmain.h
M src/include/parser/parse_agg.h
M src/include/parser/parse_coerce.h
A src/include/parser/parse_collate.h
M src/include/parser/parse_node.h
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Add SGML markup for keywords, terms, functions, commands, etc.

commit   : 025f4c72f029242a6aaf3f14bb6d7da4ce070f72    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 17:21:49 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 17:21:49 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml
M doc/src/sgml/release.sgml

Initial version of PG 9.1 release notes.

commit   : b03b17c4118345cc89dda1d96cda9ed2313f3ed9    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 16:39:17 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 16:39:17 -0400    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Rename ident authentication over local connections to peer

commit   : 6f9192df61e183826211ad2eaf325c6de5cf3656    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 19 Mar 2011 18:44:35 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 19 Mar 2011 18:44:35 +0100    

Click here for diff

This removes an overloading of two authentication options where  
one is very secure (peer) and one is often insecure (ident). Peer  
is also the name used in libpq from 9.1 to specify the same type  
of authentication.  
  
Also make initdb select peer for local connections when ident is  
chosen, and ident for TCP connections when peer is chosen.  
  
ident keyword in pg_hba.conf is still accepted and maps to peer  
authentication.  

M doc/src/sgml/client-auth.sgml
M doc/src/sgml/runtime.sgml
M src/backend/libpq/auth.c
M src/backend/libpq/hba.c
M src/backend/libpq/pg_hba.conf.sample
M src/bin/initdb/initdb.c
M src/include/libpq/hba.h

Properly clear the verbose output of pg_basebackup

commit   : 4a0014806d909bbb490f568af0b8f1ede06149ed    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 19 Mar 2011 16:38:50 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 19 Mar 2011 16:38:50 +0100    

Click here for diff

Don't leave partial filename information on the last status or  
dangling characters if the previous filename was longer than  
the current one.  

M src/bin/pg_basebackup/pg_basebackup.c

Remove "all balls" mention of network address; change IPv6 address to ::/0.

commit   : 56bb7f2a0275c5e7f17f8fba0d93d12a471869a4    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 10:04:34 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Mar 2011 10:04:34 -0400    

Click here for diff

M doc/src/sgml/client-auth.sgml

Fix possible "tuple concurrently updated" error in ALTER TABLE.

commit   : fbcf4b92aa64d4577bcf25925b055316b978744a    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 22:09:57 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 22:09:57 -0400    

Click here for diff

When adding an inheritance parent to a table, an AccessShareLock on the  
parent isn't strong enough to prevent trouble, so take  
ShareUpdateExclusiveLock instead.  Since this is a behavior change,  
albeit a fairly unobtrusive one, and since we have only one report  
from the field, no back-patch.  
  
Report by Jon Nelson, analysis by Alvaro Herrera, fix by me.  

M src/backend/commands/tablecmds.c

Move synchronous_standbys_defined updates from WAL writer to BG writer.

commit   : 727589995a3e027046f0da7af6ba665b0b47f89f    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 21:43:45 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 21:43:45 -0400    

Click here for diff

This is advantageous because the BG writer is alive until much later in  
the shutdown sequence than WAL writer; we want to make sure that it's  
possible to shut off synchronous replication during a smart shutdown,  
else it might not be possible to complete the shutdown at all.  
  
Per very reasonable gripes from Fujii Masao and Simon Riggs.  

M src/backend/postmaster/bgwriter.c
M src/backend/postmaster/walwriter.c
M src/backend/replication/syncrep.c

Woops. Previous patch to remove -X options missed getopt_long calls().

commit   : f78ba0a73a60f40270b21c4582f6a7d52fe16739    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 21:22:43 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 21:22:43 -0400    

Click here for diff

Noted by Tom Lane.  

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c

Document that the timestamp returned by pg_last_xact_replay_timestamp is the time on the primary that the transaction was generated.

commit   : 0191e120e6b427f16aed239c657b9e32c83a0f6d    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 18 Mar 2011 19:18:08 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 18 Mar 2011 19:18:08 -0400    

Click here for diff

M doc/src/sgml/func.sgml

Document the all-balls IPv6 address.

commit   : a7136b7fa2505ec209210803bb74a7946ede337f    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 18 Mar 2011 18:41:02 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 18 Mar 2011 18:41:02 -0400    

Click here for diff

M doc/src/sgml/client-auth.sgml

Make synchronous replication query cancel/die messages more consistent.

commit   : 7a37900443b016e0e7c72f6b42327bc05f8b5003    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 10:20:22 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 10:20:22 -0400    

Click here for diff

Per a gripe from Thom Brown about my previous commit in this area,  
commit 9a56dc3389b9470031e9ef8e45c95a680982e01a.  

M src/backend/replication/syncrep.c

Remove ancient -X options to pg_dump, pg_dumpall, pg_restore.

commit   : c5eb835bbffb99518405a1e5bccb58c85e0ab30e    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 09:44:44 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 09:44:44 -0400    

Click here for diff

The last version in which these options were documented is now EOL, so  
it's time to get rid of them for real.  We now use GNU-style long  
options instead.  

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c

Remove bogus semicolons in recoveryPausesHere.

commit   : 777e8c0015743224cc46f3ce39243b05c6d882ef    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 08:09:09 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 18 Mar 2011 08:09:09 -0400    

Click here for diff

Without this, the startup process goes into a tight loop, consuming  
100% of one CPU and failing to respond to interrupts.  

M src/backend/access/transam/xlog.c

Minor fixes for high availability documentation.

commit   : f94c6f9c0f05ff70b232e620eb9c420294e90cd3    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 15:46:44 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 15:46:44 -0400    

Click here for diff

Erik Rijkers and me  

M doc/src/sgml/high-availability.sgml

Protocol documentation for Hot Standby feedback messages.

commit   : 76dbb4615389e1f44e48074b87be77262143021e    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 15:10:55 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 15:10:55 -0400    

Click here for diff

M doc/src/sgml/protocol.sgml

Remove bogus comment.

commit   : 02b1f84e7d2c8921d3ef291469cfd4b7235358f0    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 14:43:14 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 14:43:14 -0400    

Click here for diff

M src/backend/replication/walsender.c

Fix PL/Python memory leak involving array slices

commit   : 1c249fcfcc331d589a2fa1574e16c0ef3d1547ce    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 17 Mar 2011 12:28:46 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 17 Mar 2011 12:28:46 -0300    

Click here for diff

Report and patch from Daniel Popowich, bug #5842  
(with some debugging help from Alex Hunsaker)  

M src/pl/plpython/plpython.c

Raise maximum value of several timeout parameters

commit   : 8c0a5eb78af00ec4720e693feaba70b5a73205d1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 17 Mar 2011 20:19:51 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 17 Mar 2011 20:19:51 +0200    

Click here for diff

The maximum value of deadlock_timeout, max_standby_archive_delay,  
max_standby_streaming_delay, log_min_duration_statement, and  
log_autovacuum_min_duration was INT_MAX/1000 milliseconds, which is  
about 35min, which is too short for some practical uses.  Raise the  
maximum value to INT_MAX; the code that uses the parameters already  
supports that just fine.  

M src/backend/utils/misc/guc.c

Add pause_at_recovery_target to recovery.conf.sample; improve docs.

commit   : 84abea76f60c5fd1c008b8ddf250b4bc89e288fc    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 14:02:41 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 14:02:41 -0400    

Click here for diff

Fujii Masao, but with the proposed behavior change reverted, and the  
rest adjusted accordingly.  

M doc/src/sgml/recovery-config.sgml
M src/backend/access/transam/recovery.conf.sample

Fix various possible problems with synchronous replication.

commit   : 9a56dc3389b9470031e9ef8e45c95a680982e01a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 13:10:42 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Mar 2011 13:10:42 -0400    

Click here for diff

1. Don't ignore query cancel interrupts.  Instead, if the user asks to  
cancel the query after we've already committed it, but before it's on  
the standby, just emit a warning and let the COMMIT finish.  
  
2. Don't ignore die interrupts (pg_terminate_backend or fast shutdown).  
Instead, emit a warning message and close the connection without  
acknowledging the commit.  Other backends will still see the effect of  
the commit, but there's no getting around that; it's too late to abort  
at this point, and ignoring die interrupts altogether doesn't seem like  
a good idea.  
  
3. If synchronous_standby_names becomes empty, wake up all backends  
waiting for synchronous replication to complete.  Without this, someone  
attempting to shut synchronous replication off could easily wedge the  
entire system instead.  
  
4. Avoid depending on the assumption that if a walsender updates  
MyProc->syncRepState, we'll see the change even if we read it without  
holding the lock.  The window for this appears to be quite narrow (and  
probably doesn't exist at all on machines with strong memory ordering)  
but protecting against it is practically free, so do that.  
  
5. Remove useless state SYNC_REP_MUST_DISCONNECT, which isn't needed and  
doesn't actually do anything.  
  
There's still some further work needed here to make the behavior of fast  
shutdown plausible, but that looks complex, so I'm leaving it for a  
separate commit.  Review by Fujii Masao.  

M doc/src/sgml/config.sgml
M src/backend/postmaster/walwriter.c
M src/backend/replication/syncrep.c
M src/backend/tcop/postgres.c
M src/include/replication/syncrep.h
M src/include/replication/walsender.h

Document guc context values, and reference them from the config doc section.

commit   : e148443ddd95cd29edf4cc1de6188eb9cee029c5    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 17 Mar 2011 00:26:03 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 17 Mar 2011 00:26:03 -0400    

Click here for diff

Tom Lane  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml

Use correct PATH separator for Cygwin in pg_regress.c.

commit   : 5b079cb248b91cbd5bc577ea96802ec466f40b38    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 17 Mar 2011 00:06:52 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 17 Mar 2011 00:06:52 -0400    

Click here for diff

This has been broken for years, and I'm not sure why it has not been  
noticed before, but now a very modern Cygwin breaks on it, and the fix  
is clearly correct. Backpatching to all live branches.  

M src/test/regress/pg_regress.c

Tab completion for \pset format and \pset linestyle.

commit   : ad3aff45f0d302b35d009e525de8a9d0ee9745a9    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 16 Mar 2011 17:46:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 16 Mar 2011 17:46:15 -0400    

Click here for diff

Pavel Stehule  

M src/bin/psql/tab-complete.c

Corrections to CREATE FOREIGN TABLE documentation.

commit   : 5f588e20051eb18333f6ea5b46bd779ba1eb8773    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 16 Mar 2011 08:11:24 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 16 Mar 2011 08:11:24 -0400    

Click here for diff

Omit incorrect = sign, and properly document server_name parameter.  
  
Shigeru Hanada  

M doc/src/sgml/ref/create_foreign_table.sgml

Improve handling of unknown-type literals in UNION/INTERSECT/EXCEPT.

commit   : 72cfc17aef4fc9aa2de1c82045b7d609c0f2c513    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 15 Mar 2011 21:51:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 15 Mar 2011 21:51:36 -0400    

Click here for diff

This patch causes unknown-type Consts to be coerced to the resolved output  
type of the set operation at parse time.  Formerly such Consts were left  
alone until late in the planning stage.  The disadvantage of that approach  
is that it disables some optimizations, because the planner sees the set-op  
leaf query as having different output column types than the overall set-op.  
We saw an example of that in a recent performance gripe from Claudio  
Freire.  
  
Fixing such a Const requires scribbling on the leaf query in  
transformSetOperationTree, but that should be all right since if the leaf  
query's semantics depended on that output column, it would already have  
resolved the unknown to something else.  
  
Most of the bulk of this patch is a simple adjustment of  
transformSetOperationTree's API so that upper levels can get at the  
TargetEntry containing a Const to be replaced: it now returns a list of  
TargetEntries, instead of just the bare expressions.  

M src/backend/parser/analyze.c

Remove unused copy_dir() function from pg_upgrade.

commit   : 898a14e1a0ba845c957f42f205495af932fcf017    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:52:35 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:52:35 -0400    

Click here for diff

M contrib/pg_upgrade/file.c

Adjust doc wording about the casting exceptions for composite types.

commit   : a858ca19df1491a5082864335efb0fe08e27e960    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:47:31 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:47:31 -0400    

Click here for diff

M doc/src/sgml/ref/create_cast.sgml

Add hint suggesting the use of EXECUTE CREATE TABLE ... AS for EXECUTE INTO.

commit   : 2b8364de698b0b425e5d8631a63c91387ee098ef    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:18:35 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 20:18:35 -0400    

Click here for diff

M src/pl/plpgsql/src/pl_exec.c

Fix spelling error in fuzzystrmatch docs.

commit   : b774efa9d57a02fbd64dafbe55a059253fbfda4e    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 19:50:02 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 19:50:02 -0400    

Click here for diff

M doc/src/sgml/fuzzystrmatch.sgml

Wording adjustment for restart_after_crash entry

commit   : df4a9595c20ccd3d3b4ce0e638ca1a5e82546a97    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 12:43:39 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 12:43:39 -0400    

Click here for diff

Specifically, mention that "restart" is disabled by this parameter.  

M doc/src/sgml/config.sgml

Add database comments to template0 and postgres databases, and improve the comments on the template1 database. No catalog version bump because they are just comments.

commit   : ddd6ff289f2512f881493b7793853a96955459ff    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 11:26:20 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Mar 2011 11:26:20 -0400    

Click here for diff

M src/bin/initdb/initdb.c
M src/include/catalog/pg_database.h

Minor sync rep documentation improvements.

commit   : f0f3617135854281bdb79179a895c102d54cb95b    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 15 Mar 2011 11:25:04 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 15 Mar 2011 11:25:04 -0400    

Click here for diff

- Make the name of the ID tag for the GUC entry match the GUC name.  
- Clarify that synchronous_replication waits for xlog flush, not receipt.  
- Mention that synchronous_replication won't wait if max_wal_senders=0.  

M doc/src/sgml/config.sgml

Remove 13 keywords that are used only for ROLE options.

commit   : 5ca4dfc79f21828174de3a8bc7d29718d0c52c34    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 15 Mar 2011 10:22:58 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 15 Mar 2011 10:22:58 -0400    

Click here for diff

Review by Tom Lane.  

M src/backend/parser/gram.y
M src/include/parser/kwlist.h

Remove special case allowing parameters to ident auth for initdb

commit   : 01c1a12a5bb4d4f837a542c187ebb2719f9334e8    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 14 Mar 2011 19:46:52 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 14 Mar 2011 19:46:52 +0100    

Click here for diff

This was required in pre-8.4 versions to allow the specification of  
"ident sameuser", but sameuser is no longer required. It could be extended  
to allow all parameters in the future, but should then apply to all  
methods and not just ident.  

M src/bin/initdb/initdb.c

Adjust regression test to avoid platform-dependent failure.

commit   : f12423d75a1181d75bd646869b140ba0c199fa99    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Mar 2011 12:52:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Mar 2011 12:52:03 -0400    

Click here for diff

We have a test that verifies that max(anyarray) will cope if the array  
column elements aren't all the same array type.  However, it's now possible  
for that to produce a collation-related error message instead of the  
expected one, if the first two column elements happen to be of the same  
type and it's one that expects to be given collation info.  Tweak the test  
to ensure this doesn't happen.  Per buildfarm member pika.  

M src/test/regress/expected/polymorphism.out
M src/test/regress/sql/polymorphism.sql

Remove duplicate time-based macros recently added.

commit   : b051a34fd8877635186ed84a857f2f38cd059468    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 14 Mar 2011 10:40:14 -0400    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 14 Mar 2011 10:40:14 -0400    

Click here for diff

M src/include/utils/timestamp.h

Simplify list traversal logic in add_path().

commit   : a2eb9e0c08ee73208b5419f5a53a6eba55809b92    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Mar 2011 12:57:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Mar 2011 12:57:14 -0400    

Click here for diff

Its mechanism for recovering after deleting the current list cell was  
a bit klugy.  Borrow the technique used in other places.  

M src/backend/optimizer/util/pathnode.c

Make all comparisons done for/with statistics use the default collation.

commit   : 696d1f7f064402840a60b7177a838d1452ad13e6    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 12 Mar 2011 16:30:36 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 12 Mar 2011 16:30:36 -0500    

Click here for diff

While this will give wrong answers when estimating selectivity for a  
comparison operator that's using a non-default collation, the estimation  
error probably won't be large; and anyway the former approach created  
estimation errors of its own by trying to use a histogram that might have  
been computed with some other collation.  So we'll adopt this simplified  
approach for now and perhaps improve it sometime in the future.  
  
This patch incorporates changes from Andres Freund to make sure that  
selfuncs.c passes a valid collation OID to any datatype-specific function  
it calls, in case that function wants collation information.  Said OID will  
now always be DEFAULT_COLLATION_OID, but at least we won't get errors.  

M src/backend/commands/analyze.c
M src/backend/optimizer/path/costsize.c
M src/backend/utils/adt/selfuncs.c
M src/include/commands/vacuum.h
M src/include/utils/selfuncs.h

Use "backend process" rather than "backend server", where appropriate.

commit   : 94fe9c0f4e1672ccd830cb0aa7fd5ccce97d14ae    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 12 Mar 2011 09:38:56 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 12 Mar 2011 09:38:56 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml
M doc/src/sgml/problems.sgml
M doc/src/sgml/query.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/backend/libpq/pqsignal.c
M src/backend/main/main.c
M src/test/examples/testlibpq4.c

Use macros for time-based constants, rather than constants.

commit   : 3a3f39fdc00c6caa41d795475189ac844403b770    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 12 Mar 2011 09:31:18 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 12 Mar 2011 09:31:18 -0500    

Click here for diff

M src/backend/utils/adt/date.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/nabstime.c
M src/backend/utils/adt/timestamp.c
M src/include/utils/timestamp.h

Add test case for collation mismatch in recursive query

commit   : 3d9f7ec1ffde399accda096da4df46b178e8b960    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 12 Mar 2011 10:07:23 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 12 Mar 2011 10:07:23 +0200    

Click here for diff

This isn't very important by itself, but was left on my list of things  
without test coverage for the collation feature.  

M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

On further reflection, we'd better do the same in int.c.

commit   : 2a26639a5d76df7f59340cfb4313763f87815ede    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 19:04:02 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 19:04:02 -0500    

Click here for diff

We previously heard of the same problem in int24div(), so there's not a  
good reason to suppose the problem is confined to cases involving int8.  

M src/backend/utils/adt/int.c

Put in some more safeguards against executing a division-by-zero.

commit   : 72330995a52fb7a3fbdc666aebc0402cdcbc9af8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 18:18:55 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 18:18:55 -0500    

Click here for diff

Add dummy returns before every potential division-by-zero in int8.c,  
because apparently further "improvements" in gcc's optimizer have  
enabled it to break functions that weren't broken before.  
  
Aurelien Jarno, via Martin Pitt  

M src/backend/utils/adt/int8.c

Split CollateClause into separate raw and analyzed node types.

commit   : 8acdb8bf9cebc42cee5aa96a2d594756b44173c9    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 16:27:51 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 16:27:51 -0500    

Click here for diff

CollateClause is now used only in raw grammar output, and CollateExpr after  
parse analysis.  This is for clarity and to avoid carrying collation names  
in post-analysis parse trees: that's both wasteful and possibly misleading,  
since the collation's name could be changed while the parsetree still  
exists.  
  
Also, clean up assorted infelicities and omissions in processing of the  
node type.  

M src/backend/catalog/dependency.c
M src/backend/commands/typecmds.c
M src/backend/executor/execQual.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/util/clauses.c
M src/backend/parser/gram.y
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_type.c
M src/backend/parser/parse_utilcmd.c
M src/backend/utils/adt/ruleutils.c
M src/include/catalog/catversion.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/nodes/primnodes.h
M src/pl/plpgsql/src/pl_exec.c
M src/test/regress/expected/collate.linux.utf8.out

In docs, rename "backwards compatibility" to "backward compatibility" for consistency.

commit   : 7a8f43968add3c69b79c49ef236d945e643dcb1e    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 14:33:10 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 14:33:10 -0500    

Click here for diff

M doc/src/sgml/array.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/lobj.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/user-manag.sgml
M doc/src/sgml/xfunc.sgml

Create an explicit concept of collations that work for any encoding.

commit   : e3c732a85c0f247617b2d44ea567f35731b03ea6    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 13:20:11 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 13:20:11 -0500    

Click here for diff

Use collencoding = -1 to represent such a collation in pg_collation.  
We need this to make the "default" entry work sanely, and a later  
patch will fix the C/POSIX entries to be represented this way instead  
of duplicating them across all encodings.  All lookup operations now  
search first for an entry that's database-encoding-specific, and then  
for the same name with collencoding = -1.  
  
Also some incidental code cleanup in collationcmds.c and pg_collation.c.  

M doc/src/sgml/catalogs.sgml
M src/backend/catalog/information_schema.sql
M src/backend/catalog/namespace.c
M src/backend/catalog/pg_collation.c
M src/backend/commands/collationcmds.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_collation.h
M src/test/regress/expected/collate.linux.utf8.out

Remove duplicate indexterm to silence openjade wrning.

commit   : ac435a79c88f51be6bf3eb5df618c2bac6123ae4    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 11:41:14 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Mar 2011 11:41:14 -0500    

Click here for diff

M doc/src/sgml/runtime.sgml

Update documentation on FreeBSD write cache control.

commit   : 4869d10afc74e9cc774942c24b48cef301a0a693    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 11:36:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 11:36:42 -0500    

Click here for diff

M doc/src/sgml/wal.sgml

Document that to_char('FM') removes only trailing zeros.

commit   : ffe92d15d53625d5ae0c23f4e1984ed43614a33d    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:48:30 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:48:30 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Document how listen_addresses can do only IPv4 or IPv6.

commit   : a1bb5a480df44e518957abca0de2d04aaba5bf02    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:31:25 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:31:25 -0500    

Click here for diff

M doc/src/sgml/config.sgml

In ecpg preprocessor, don't try to look up constants in the test for variable hiding. A constant is not a variable. It worked in most cases by accident, because we add constants to the global list of variables (why?), but float constants like 1.23 were interpreted as struct field references, and not found.

commit   : 30e8b3e58ed56cbc07ae7cd392ee4b9782178ca5    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 11 Mar 2011 15:44:40 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 11 Mar 2011 15:44:40 +0200    

Click here for diff

Backpatch to 9.0, where the test for variable hiding was added.  

M src/interfaces/ecpg/preproc/type.c

Adds index entries for session_user and pg_describe_object Removes extraneous closing parenthesis from pg_describe_object Puts pg_describe_object and has_sequence_privilege in correct alphabetical position in function listing

commit   : 59bacbe1470b7b3c4382284301267b18daf98e93    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:23:59 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 10:23:59 -0500    

Click here for diff

Thom Brown  

M doc/src/sgml/func.sgml

In plpsql docs, use RAISE rather than undefined log function.

commit   : 35a1964e557ad5993a94e8b800135f55b6347926    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 08:47:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 08:47:44 -0500    

Click here for diff

M doc/src/sgml/plpgsql.sgml

Improve extract(day) documentation with interval values.

commit   : cbd2811461daf2c6b71d56048b96374cc2d61d64    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 08:17:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 08:17:49 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Fix "unparenthesized" mention in vacuum docs.

commit   : ea5c4c71f610712a0d492fd39a0d9db102b6054f    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:57:53 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:57:53 -0500    

Click here for diff

M doc/src/sgml/ref/vacuum.sgml

Update kernel docs for Solaris 10.

commit   : 3896138b7c18c89f57d35fcb85a369d89323e827    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:53:34 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:53:34 -0500    

Click here for diff

Josh Berkus  

M doc/src/sgml/runtime.sgml

Document that pg_dump --clean might generate some harmless errors on restore.

commit   : afaed3add89ffe3df422319c3a76761e186efe30    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:05:38 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 07:05:38 -0500    

Click here for diff

M doc/src/sgml/ref/pg_dump.sgml

Update C comment about O_DIRECT and fsync().

commit   : 7d23e0f803fc0af0ff7b317a504eba31a51ebade    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 06:46:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 06:46:44 -0500    

Click here for diff

M src/include/access/xlogdefs.h

Document that libpq's PQgetResult() should be called after a fatal error to fully process errors.

commit   : 06711de9d9d4e122d4e4c9b801b471e048281f48    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:55:13 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:55:13 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

Document that the parenthesized VACUUM syntax is deprecated, not the FREEZE functionality.

commit   : ad44d505917baf35994f3eabdb42657bf2342b99    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:34:09 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:34:09 -0500    

Click here for diff

M doc/src/sgml/ref/vacuum.sgml

Add comment to tools/git-external-diff.

commit   : dae1e5546cdff98d85215a461f108f71fd254441    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:06:31 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:06:31 -0500    

Click here for diff

M src/tools/git-external-diff

Change "TIP" to "HINT" to match backend message style, in pg_ctl -m fast suggestion.

commit   : f887294ccfad1545f8c94e7d486ffdd90a61132e    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:02:57 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 11 Mar 2011 05:02:57 -0500    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

Remove pg_dump -X options that are only in 9.1 and not needed for backward compatibility.

commit   : 72bd19dbddaf5786381377ad3da281572de721b5    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:58:18 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:58:18 -0500    

Click here for diff

M src/bin/pg_dump/pg_dump.c

Add C comment that new new pg_dump -X options are to be created.

commit   : c3462e413e8700b4710a6d23252fd095291c27e3    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:36:14 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:36:14 -0500    

Click here for diff

M src/bin/pg_dump/pg_dump.c

When a smart pg_ctl shutdown fails, mention -m fast as a tip.

commit   : 3f9cf6b336fb93f4e13943d9e873f5a4a167177a    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:04:00 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 22:04:00 -0500    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

Modify pg_test_fsync to match the behavior of git head in regards to O_DIRECT behavior.

commit   : 303b7fcd10a34d8c8b4c3e6e258faeaf107dcf92    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 20:25:41 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 20:25:41 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

Clarify C comment that O_SYNC/O_FSYNC are really the same settting, as opposed to O_DSYNC.

commit   : 5ca543fb2e2ca5becdb6505ac22aaf7218e842cf    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 20:02:52 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 20:02:52 -0500    

Click here for diff

M src/backend/access/transam/xlog.c

Reference doc "examples" section for pg_dump options that often need complex quoting, e.g. -t and -n.

commit   : 26174d5fd0dec01bbbc4e766ed32b9a50a019c29    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 19:40:23 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 19:40:23 -0500    

Click here for diff

M doc/src/sgml/ref/pg_dump.sgml

More wording improvements for disallowed SQL function commands.

commit   : 3aa6041db5706821295da34b47c60b18a0a34021    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:50:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:50:44 -0500    

Click here for diff

M doc/src/sgml/xfunc.sgml

Improve SQL function disallowed command wording.

commit   : 2fdd357cae8ac4dc472375301bde701b2bf76f54    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:47:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:47:44 -0500    

Click here for diff

M doc/src/sgml/xfunc.sgml

Clarify what commands are not allowed in SQL functions.

commit   : 678a0d286c2928aa85bcf25e5c3c633e88e44999    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:46:21 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:46:21 -0500    

Click here for diff

M doc/src/sgml/xfunc.sgml

Add proper git-external-diff script to src/tools.

commit   : 9d4625ad0b836538618e324b4ebbc3ba366447a1    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:06:13 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 18:06:13 -0500    

Click here for diff

A src/tools/git-external-diff

Revert addition of third argument to format_type().

commit   : 7564654adf07ec26b83c7effc7f54f7183e04519    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 17:30:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 17:30:18 -0500    

Click here for diff

Including collation in the behavior of that function promotes a world view  
we do not want.  Moreover, it was producing the wrong behavior for pg_dump  
anyway: what we want is to dump a COLLATE clause on attributes whose  
attcollation is different from the underlying type, and likewise for  
domains, and the function cannot do that for us.  Doing it the hard way  
in pg_dump is a bit more tedious but produces more correct output.  
  
In passing, fix initdb so that the initial entry in pg_collation is  
properly pinned.  It was droppable before :-(  

M doc/src/sgml/func.sgml
M src/backend/catalog/system_views.sql
M src/backend/utils/adt/format_type.c
M src/bin/initdb/initdb.c
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h

Make error handling of synchronous_standby_names consistent.

commit   : 551c07d84ae2f0d3b7dde68e52322edf9cb87ba5    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 16:24:52 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 16:24:52 -0500    

Click here for diff

It's not a good idea to kill the postmaster just because someone muffs  
this, and it's not consistent with what we do for other, similar GUCs.  
  
Fujii Masao, with a bit more hacking by me  

M src/backend/replication/syncrep.c

More synchronous replication typo fixes.

commit   : 2e019c8611654175780db488d81cc2dc8311f22e    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:56:18 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:56:18 -0500    

Click here for diff

Fujii Masao  

M src/backend/replication/syncrep.c
M src/include/storage/proc.h

More synchronous replication tweaks.

commit   : b8bb8dbf20e13087f8e57ff4c42e81776ae5e545    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:38:39 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:38:39 -0500    

Click here for diff

SyncRepRequested() must check not only the value of the  
synchronous_replication GUC but also whether max_wal_senders > 0.  
Otherwise, we might end up waiting for sync rep even when there's no  
possibility of a standby ever managing to connect.  There are some  
existing cross-checks to prevent this, but they're not quite sufficient:  
the user can start the server with max_wal_senders=0,  
synchronous_standby_names='', and synchronous_replication=off and then  
subsequent make synchronous_standby_names not empty using pg_ctl reload,  
and then SET synchronous_standby=on, leading to an indefinite hang.  
  
Along the way, rename the global variable for the synchronous_replication  
GUC to match the name of the GUC itself, for clarity.  
  
Report by Fujii Masao, though I didn't use his patch.  

M src/backend/replication/syncrep.c
M src/backend/utils/misc/guc.c
M src/include/replication/syncrep.h

Remove obsolete comment.

commit   : e397d2ee6474865becb8f99ac28586736788f1f2    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:00:20 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 15:00:20 -0500    

Click here for diff

In earlier versions of the sync rep patch, waiters removed themselves from  
the queue, but now walsender removes them before doing the wakeup.  
  
Report by Fujii Masao.  

M src/include/replication/walsender.h

Minor sync rep corrections.

commit   : 64360987953e450e53098e6b79d89c5b80dc7842    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:57:02 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:57:02 -0500    

Click here for diff

Fujii Masao, with a bit of additional wordsmithing by me.  

M src/backend/replication/syncrep.c
M src/backend/storage/ipc/shmqueue.c
M src/include/replication/syncrep.h

Emit a LOG message when pausing at the recovery target.

commit   : d16e290a8a52d76d01ef1d70f8c33336942a0870    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:37:14 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:37:14 -0500    

Click here for diff

Fujii Masao  

M src/backend/access/transam/xlog.c

Add missing index terms for recovery control functions.

commit   : 1c3b434a0897a727127b7c4083f2bfa2c9b690c3    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:29:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 14:29:53 -0500    

Click here for diff

Fujii Masao  

M doc/src/sgml/func.sgml

Use '=' when documenting long options.

commit   : ed0327495c4241fad55a61c0e5d54366c3ea076c    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 09:09:35 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Mar 2011 09:09:35 -0500    

Click here for diff

M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/ref/clusterdb.sgml
M doc/src/sgml/ref/createdb.sgml
M doc/src/sgml/ref/createlang.sgml
M doc/src/sgml/ref/createuser.sgml
M doc/src/sgml/ref/dropdb.sgml
M doc/src/sgml/ref/droplang.sgml
M doc/src/sgml/ref/dropuser.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/vacuumdb.sgml

Replication README updates.

commit   : fcb99609b60012bc2e828b8941d5db46f2625f4a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 08:59:59 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 10 Mar 2011 08:59:59 -0500    

Click here for diff

Fujii Masao  

M src/backend/replication/README

Fix bugs in the isolation tester flex rules.

commit   : 74a09d92101f36a5fe66f4f74253708931546e4c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Mar 2011 09:01:27 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Mar 2011 09:01:27 +0200    

Click here for diff

Tom Lane pointed out that it was giving a warning: "-s option given but  
default rule can be matched". That was because there was no rule to handle  
newline in a quoted string. I made that throw an error.  
  
Also, line number tracking was broken, giving incorrect line number on  
error. Fixed that too.  

M src/test/isolation/specscanner.l

commit   : 2d8de0a50b54cc0ed430ffa96dc8776dfe95d5ff    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 10 Mar 2011 15:05:33 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 10 Mar 2011 15:05:33 +0900    

Click here for diff

M contrib/auth_delay/auth_delay.c
M src/backend/replication/syncrep.c
M src/bin/pg_dump/pg_backup_directory.c
M src/include/catalog/pg_collation.h
M src/include/catalog/pg_foreign_table.h
M src/include/replication/basebackup.h
M src/include/replication/syncrep.h
M src/test/isolation/isolationtester.h

replication/repl_gram.h needs to be cleaned too ...

commit   : f6587019ed2c2123c00c18db2d1e857a6258ff85    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 00:12:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 00:12:38 -0500    

Click here for diff

M src/backend/Makefile

Fix some oversights in distprep and maintainer-clean targets.

commit   : 174f65ab00bb8de0f119a6a60d562b516ba71bba    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 00:03:26 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 10 Mar 2011 00:03:26 -0500    

Click here for diff

At least two recent commits have apparently imagined that a comment in  
a Makefile stating that something would be included in the distribution  
tarball was sufficient to make it so.  They hadn't bothered to hook  
into the upper maintainer-clean targets either.  Per bug #5923 from  
Charles Johnson, in which it emerged that the 9.1alpha4 tarballs are  
short a few files that should be there.  

M src/Makefile
M src/backend/Makefile
M src/test/isolation/Makefile

Mention gcc version in C comment.

commit   : 76fdee31c4ff74b7eae5965521a85d29381bcaec    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 23:40:39 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 23:40:39 -0500    

Click here for diff

M src/backend/replication/basebackup.c

Remove collation information from TypeName, where it does not belong.

commit   : a051ef699c3ed1f89088dd6bbc2574f13d0b20eb    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Mar 2011 22:38:52 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Mar 2011 22:38:52 -0500    

Click here for diff

The initial collations patch treated a COLLATE spec as part of a TypeName,  
following what can only be described as brain fade on the part of the SQL  
committee.  It's a lot more reasonable to treat COLLATE as a syntactically  
separate object, so that it can be added in only the productions where it  
actually belongs, rather than needing to reject it in a boatload of places  
where it doesn't belong (something the original patch mostly failed to do).  
In addition this change lets us meet the spec's requirement to allow  
COLLATE anywhere in the clauses of a ColumnDef, and it avoids unfriendly  
behavior for constructs such as "foo::type COLLATE collation".  
  
To do this, pull collation information out of TypeName and put it in  
ColumnDef instead, thus reverting most of the collation-related changes in  
parse_type.c's API.  I made one additional structural change, which was to  
use a ColumnDef as an intermediate node in AT_AlterColumnType AlterTableCmd  
nodes.  This provides enough room to get rid of the "transform" wart in  
AlterTableCmd too, since the ColumnDef can carry the USING expression  
easily enough.  
  
Also fix some other minor bugs that have crept in in the same areas,  
like failure to copy recently-added fields of ColumnDef in copyfuncs.c.  
  
While at it, document the formerly secret ability to specify a collation  
in ALTER TABLE ALTER COLUMN TYPE, ALTER TYPE ADD ATTRIBUTE, and  
ALTER TYPE ALTER ATTRIBUTE TYPE; and correct some misstatements about  
what the default collation selection will be when COLLATE is omitted.  
  
BTW, the three-parameter form of format_type() should go away too,  
since it just contributes to the confusion in this area; but I'll do  
that in a separate patch.  

M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/create_domain.sgml
M doc/src/sgml/ref/create_table.sgml
M src/backend/access/common/tupdesc.c
M src/backend/commands/collationcmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/parser/gram.y
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_type.c
M src/backend/parser/parse_utilcmd.c
M src/backend/utils/adt/ruleutils.c
M src/include/nodes/makefuncs.h
M src/include/nodes/parsenodes.h
M src/include/parser/parse_type.h
M src/pl/plpgsql/src/pl_comp.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/foreign_data.out

Document that server single-user mode does not do checkpoints or other background processing.

commit   : 01752f7bba627c0c38d594b27e50238015272828    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 20:19:59 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 20:19:59 -0500    

Click here for diff

M doc/src/sgml/ref/postgres-ref.sgml

Adjust the permissions required for COMMENT ON ROLE.

commit   : 49a08ca1e968860fe02fa3331cc0aba361d76e02    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Mar 2011 11:28:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Mar 2011 11:28:20 -0500    

Click here for diff

Formerly, any member of a role could change the role's comment, as of  
course could superusers; but holders of CREATEROLE privilege could not,  
unless they were also members.  This led to the odd situation that a  
CREATEROLE holder could create a role but then could not comment on it.  
It also seems a bit dubious to let an unprivileged user change his own  
comment, let alone those of group roles he belongs to.  So, change the  
rule to be "you must be superuser to comment on a superuser role, or  
hold CREATEROLE to comment on non-superuser roles".  This is the same  
as the privilege check for creating/dropping roles, and thus fits much  
better with the rule for other object types, namely that only the owner  
of an object can comment on it.  
  
In passing, clean up the documentation for COMMENT a little bit.  
  
Per complaint from Owen Jacobson and subsequent discussion.  

M doc/src/sgml/func.sgml
M doc/src/sgml/ref/comment.sgml
M src/backend/catalog/aclchk.c
M src/backend/catalog/objectaddress.c
M src/backend/commands/user.c
M src/include/utils/acl.h

Remove '=' from initdb switch syntax.

commit   : c290476cbd2e2d5f8f6c7c24ebaa5133ec37ecde    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 09:48:05 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 09:48:05 -0500    

Click here for diff

M doc/src/sgml/ref/initdb.sgml

Improve wording of initdb and pg_controldata manual pages.

commit   : 8cc55b1c0fbf9a2e01d14311716b59d19314126e    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 09:18:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Mar 2011 09:18:44 -0500    

Click here for diff

gabrielle <[email protected]>  

M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/pg_controldata.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M doc/src/sgml/ref/postgres-ref.sgml

Remove 's' from recovery_target_timeline's' from the release note.

commit   : 48ff3913d6ce42cd090d17ea6863be4698007afe    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 9 Mar 2011 20:00:11 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 9 Mar 2011 20:00:11 +0900    

Click here for diff

M doc/src/sgml/release-9.1.sgml

synchronous_standby_names is a string parameter.

commit   : 1144726d070746a857a13af271e2864961a5268f    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 9 Mar 2011 19:49:16 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 9 Mar 2011 19:49:16 +0900    

Click here for diff

M doc/src/sgml/config.sgml

Make alpha release notes more consistent as regards periods.

commit   : 26ed3fdb4553a0e52c8534292de0f39bfc2c5022    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 9 Mar 2011 00:06:02 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 9 Mar 2011 00:06:02 -0500    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Update alpha release notes for latest commits.

commit   : f14ae5f905282109c9a2571c2048c564004f24c5    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 8 Mar 2011 23:59:52 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 8 Mar 2011 23:59:52 -0500    

Click here for diff

M doc/src/sgml/release-9.1.sgml

A bit more editing for collation documentation.

commit   : c0dc44ebba0bbce430e71adb195ceec66417d40b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 22:50:15 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 22:50:15 -0500    

Click here for diff

M doc/src/sgml/syntax.sgml

Fix file descriptor leaks in pg_upgrade in failure code paths.

commit   : d367d41d662c859011724745fec592baf94b70fe    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 21:35:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 21:35:42 -0500    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c

Create "replication and recovery" section in alpha release notes.

commit   : 51c0124481213eab45db193929614070da7b60d1    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 8 Mar 2011 20:55:29 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 8 Mar 2011 20:55:29 -0500    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Assorted editing for collation documentation.

commit   : a612b17120fc011cefcdec6948b1cc8543529d06    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 17:10:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 17:10:34 -0500    

Click here for diff

I made a pass over this to familiarize myself with the feature, and found  
some things that could be improved.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/ref/create_collation.sgml
M doc/src/sgml/ref/drop_collation.sgml

Fix parallel make when running make install before make all

commit   : 4502c8e1c06164adb7be526096e91e04d1844d36    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 8 Mar 2011 23:49:59 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 8 Mar 2011 23:49:59 +0200    

Click here for diff

In addition to the  
  
all-foo-recurse: all-bar-recurse  
  
dependencies that constraint the order of the rule execution, we need  
  
install-foo-recurse: install-bar-recurse  
  
dependencies in case one runs make install without a make all first,  
as some people apparently do.  

M src/interfaces/Makefile
M src/interfaces/ecpg/Makefile

Add missing keywords to gram.y's unreserved_keywords list.

commit   : 3f7d24da16d32ad0fa5abf04b669e86a7d458160    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 16:43:02 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Mar 2011 16:43:02 -0500    

Click here for diff

We really need an automated check for this ... and did VALIDATE really  
need to become a keyword at all, rather than picking some other syntax  
using existing keywords?  

M src/backend/parser/gram.y

Ignore files built by coverage builds

commit   : a2f216547740819bdd79e05039c525350d7c3d0f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 8 Mar 2011 22:10:00 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 8 Mar 2011 22:10:00 +0200    

Click here for diff

M .gitignore

Fix overly strict assertion in SummarizeOldestCommittedSxact(). There's a race condition where SummarizeOldestCommittedSxact() is called even though another backend already cleared out all finished sxact entries. That's OK, RegisterSerializableTransactionInt() can just retry getting a news xact slot from the available-list when that happens.

commit   : 46c333a9638b329a3c8076d978f27c5b05c0d5f0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 21:01:29 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 21:01:29 +0200    

Click here for diff

Reported by YAMAMOTO Takashi, bug #5918.  

M src/backend/storage/lmgr/predicate.c

Don't throw a warning if vacuum sees PD_ALL_VISIBLE flag set on a page that contains newly-inserted tuples that according to our OldestXmin are not yet visible to everyone. The value returned by GetOldestXmin() is conservative, and it can move backwards on repeated calls, so if we see that contradiction between the PD_ALL_VISIBLE flag and status of tuples on the page, we have to assume it's because an earlier vacuum calculated a higher OldestXmin value, and all the tuples really are visible to everyone.

commit   : 93d888232e80e4d676e24fe93ae6d27459d966be    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 20:13:52 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 20:13:52 +0200    

Click here for diff

We have received several reports of this bug, with the "PD_ALL_VISIBLE flag  
was incorrectly set in relation ..." warning appearing in logs. We were  
finally able to hunt it down with David Gould's help to run extra diagnostics  
in an environment where this happened frequently.  
  
Also reword the warning, per Robert Haas' suggestion, to not imply that the  
PD_ALL_VISIBLE flag is necessarily at fault, as it might also be a symptom  
of corruption on a tuple header.  
  
Backpatch to 8.4, where the PD_ALL_VISIBLE flag was introduced.  

M src/backend/commands/vacuumlazy.c
M src/backend/storage/ipc/procarray.c

Adjust CHAR() doc mention of pattern matching issues for trailing spaces.

commit   : 915cd10c164be27dac0134efb16358f7d7564e8d    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 12:54:00 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 12:54:00 -0500    

Click here for diff

M doc/src/sgml/datatype.sgml

Document that char() ignores spaces in non-pattern comparisons, not in pattern comparisons such as LIKE and regex.

commit   : 7465ae06be4f1dbc90575d68d1ffc3351e1ca855    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 11:03:02 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 8 Mar 2011 11:03:02 -0500    

Click here for diff

M doc/src/sgml/datatype.sgml

Added new version of ecpg's parser test script which was written by Andy Colson <[email protected]>.

commit   : 4ff90d9945b2e33662b2a0af2cad69ae802f2b76    
  
author   : Michael Meskes <[email protected]>    
date     : Tue, 8 Mar 2011 11:27:32 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Tue, 8 Mar 2011 11:27:32 +0100    

Click here for diff

M src/interfaces/ecpg/preproc/check_rules.pl

Truncate predicate lock manager's SLRU lazily at checkpoint. That's safer than doing it aggressively whenever the tail-XID pointer is advanced, because this way we don't need to do it while holding SerializableXactHashLock.

commit   : 4cd3fb6e1244383fc9f77906e7162de0559ba354    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 12:07:29 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Mar 2011 12:07:29 +0200    

Click here for diff

This also fixes bug #5915 spotted by YAMAMOTO Takashi, and removes an  
obsolete comment spotted by Kevin Grittner.  

M src/backend/access/transam/xlog.c
M src/backend/storage/lmgr/predicate.c
M src/include/storage/predicate.h

Fix behavior when raising plpy.Fatal()

commit   : 804d13adfd2f66c70d8d95a606dde621b3213179    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 7 Mar 2011 23:01:54 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 7 Mar 2011 23:01:54 +0200    

Click here for diff

It should cause a elog(FATAL) error, and it fact it was simply causing  
a elog(ERROR).  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Report Python errors from iterators with PLy_elog

commit   : 8f76324352986287c04832f8e6450d4d2952a030    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 7 Mar 2011 22:53:32 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 7 Mar 2011 22:53:32 +0200    

Click here for diff

This improves reporting, as the error string now includes the actual  
Python exception. As a side effect, this no longer sets the errcode to  
ERRCODE_DATA_EXCEPTION, which might be considered a feature, as it's  
not documented and not clear why iterator errors should be treated  
differently.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Improve description of inquiry functions that accept regclass.

commit   : cfcdc99db67172d46a5e226375fa97e5c5a62267    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 16:21:26 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 16:21:26 -0500    

Click here for diff

Per a suggestion from Thom Brown, though this is not his proposed patch.  

M doc/src/sgml/func.sgml

Minor copy-editing in CREATE TRIGGER reference page.

commit   : f8c0af840d84086249647d4415bd35903bfc7933    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 16:00:36 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 16:00:36 -0500    

Click here for diff

Per suggestions from Thom Brown and Robert Haas.  

M doc/src/sgml/ref/create_trigger.sgml

If recovery_target_timeline is set to 'latest' and standby mode is enabled, periodically rescan the archive for new timelines, while waiting for new WAL segments to arrive. This allows you to set up a standby server that follows the TLI change if another standby server is promoted to master. Before this, you had to restart the standby server to make it notice the new timeline.

commit   : 1a4ab9ec23f0635a4c15b069df60b545814650e9    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 21:02:40 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 21:02:40 +0200    

Click here for diff

This patch only scans the archive for TLI changes, it won't follow a TLI  
change in streaming replication. That is much needed too, but it would be a  
much bigger patch than I dare to sneak in this late in the release cycle.  
  
There was discussion on improving the sanity checking of the WAL segments so  
that the system would notice more reliably if the new timeline isn't an  
ancestor of the current one, but that is not included in this patch.  
  
Reviewed by Fujii Masao.  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/recovery-config.sgml
M src/backend/access/transam/xlog.c

Reword alpha release note item on SSI.

commit   : bcf85e3f44a518eb7bb759541189efb6726fe9bc    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 7 Mar 2011 13:57:06 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 7 Mar 2011 13:57:06 -0500    

Click here for diff

Per Josh Berkus; some additional explanatory text by me.  

M doc/src/sgml/release-9.1.sgml

Synchronous replication doc corrections.

commit   : c74d3aceb99ea6c6d102109349b514e76e497592    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 7 Mar 2011 11:59:58 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 7 Mar 2011 11:59:58 -0500    

Click here for diff

Thom Brown  

M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml

commit   : 7193a90fc1e3ce0be7688c1452e813bd0ddc101b    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 11:17:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 7 Mar 2011 11:17:06 -0500    

Click here for diff

This fixes an oversight in commit 946045f04d11d246a834b917a2b8bc6e4f884a37  
of 2010-08-21, as reported by Itagaki Takahiro.  Also a couple of minor  
cosmetic adjustments.  

M src/backend/postmaster/pgstat.c

Document the DEFERRABLE option in SET TRANSACTION command.

commit   : faba108fe4f2491ebc2b7faf4343f952125cc661    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 10:42:49 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 10:42:49 +0200    

Click here for diff

Kevin Grittner  

M doc/src/sgml/ref/set_transaction.sgml

Begin error message with lower-case letter.

commit   : 97e3dacd84f185bff86485f54c665621222c576b    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 10:41:13 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 10:41:13 +0200    

Click here for diff

M src/backend/postmaster/postmaster.c

Silence compiler warning about undefined function when compiling without assertions.

commit   : baabf05196922164db80bdc45fd0660c8700f1f7    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 09:56:53 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Mar 2011 09:56:53 +0200    

Click here for diff

M src/backend/replication/syncrep.c

Tighten pg_upgrade check for pre-8.4 toast table name matching.

commit   : 05d93c38a791836eeceaf8edb0ea8cb19cdf2760    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 6 Mar 2011 21:57:02 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 6 Mar 2011 21:57:02 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Suppress some "variable might be clobbered by longjmp" warnings.

commit   : 4172bd88300524efd1728c247fbc1eff3c1ca6ed    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 21:15:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 21:15:48 -0500    

Click here for diff

Seen with an older gcc version.  I'm not sure these represent any real  
risk factor, but still a bit scary.  Anyway we have lots of other  
volatile-marked variables in this code, so a couple more won't hurt.  

M src/pl/plperl/Util.xs
M src/pl/plpython/plpython.c

Fix a couple more missing "static" markers.

commit   : dfe18f18d262df731378cbf38a4136f08ca119a5    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 20:14:01 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 20:14:01 -0500    

Click here for diff

M contrib/pg_upgrade/check.c

Add missing "static" marker to internal_ping().

commit   : 775464e8450677602833b1d11b919838e7b2b29a    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 20:04:29 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 20:04:29 -0500    

Click here for diff

Per testing with a compiler that doesn't like that.  

M src/interfaces/libpq/fe-connect.c

Dynamic array required within pg_stat_replication.

commit   : cae4974e3d4c0cb1237568b55a2cee4482d42f40    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 7 Mar 2011 00:26:30 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 7 Mar 2011 00:26:30 +0000    

Click here for diff

M src/backend/replication/walsender.c

Catversion increment for pg_stat_replication changes for syncrep

commit   : dcfe3f60c12880c52fd3cb9b5d51ff44c946dd6c    
  
author   : Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 23:44:44 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 23:44:44 +0000    

Click here for diff

M src/include/catalog/catversion.h

Add new files for syncrep missed in previous commit

commit   : 966fb05b588ab33a6c99c6a26308941e1b3a1188    
  
author   : Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 23:39:14 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 23:39:14 +0000    

Click here for diff

A src/backend/replication/syncrep.c
A src/include/replication/syncrep.h

Fix pg_dump's dump order for collations versus extensions.

commit   : f24fa9c1a511b24357ea4c1a2be0e70c73adadd7    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 18:26:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 18:26:18 -0500    

Click here for diff

Mixing them together alphabetically won't be nice.  Per my gripe of  
2011-02-12.  

M src/bin/pg_dump/pg_dump_sort.c

Efficient transaction-controlled synchronous replication. If a standby is broadcasting reply messages and we have named one or more standbys in synchronous_standby_names then allow users who set synchronous_replication to wait for commit, which then provides strict data integrity guarantees. Design avoids sending and receiving transaction state information so minimises bookkeeping overheads. We synchronize with the highest priority standby that is connected and ready to synchronize. Other standbys can be defined to takeover in case of standby failure.

commit   : a8a8a3e0965201df88bdfdff08f50e5c06c552b7    
  
author   : Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 22:49:16 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Sun, 6 Mar 2011 22:49:16 +0000    

Click here for diff

This version has very strict behaviour; more relaxed options  
may be added at a later date.  
  
Simon Riggs and Fujii Masao, with reviews by Yeb Havinga, Jaime  
Casanova, Heikki Linnakangas and Robert Haas, plus the assistance  
of many other design reviewers.  

M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/monitoring.sgml
M src/backend/access/transam/twophase.c
M src/backend/access/transam/xact.c
M src/backend/catalog/system_views.sql
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/postmaster.c
M src/backend/replication/Makefile
M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/backend/storage/ipc/shmqueue.c
M src/backend/storage/lmgr/proc.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/catalog/pg_proc.h
M src/include/replication/walsender.h
M src/include/storage/lwlock.h
M src/include/storage/proc.h
M src/include/storage/shmem.h
M src/test/regress/expected/rules.out

Fix incorrect access to pg_index.indcollation.

commit   : 149b2673c244b92b59411dd2292d6ddcfb03d5d4    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 12:10:50 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 6 Mar 2011 12:10:50 -0500    

Click here for diff

Since this field is after a variable-length field, it can't simply be  
accessed via the C struct for pg_index.  Fortunately, the relcache already  
did the dirty work of pulling the information out to where it can be  
accessed easily, so this is a one-line fix.  
  
Andres Freund  

M src/backend/access/index/indexam.c

Improve pg_upgrade relation name check logic for pre-8.4 servers.

commit   : a54ba23c087a23222a7c76b33c61cddad5278712    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 6 Mar 2011 06:34:58 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 6 Mar 2011 06:34:58 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Update new pg_upgrade comment about pre-8.4 TOAST tables.

commit   : 8f87dcd863c2fe2940129ea58343bc0e56cb290c    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 22:09:35 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 22:09:35 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Restructure pg_upgrade checks because pre-8.4 Postgres did not rename toast file names to match the new relfilenode.

commit   : 9e5bed2df1693a46dfaed862d7462ba2379f8f79    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 21:12:21 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 21:12:21 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Fix pg_upgrade to print the proper database name for file transfer failures.

commit   : f7b70dfc7649772cf35035754ae7e77f2533da1d    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 20:18:31 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 20:18:31 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Print clearer failure message when pg_upgrade fails due to a fatal error.

commit   : a3375becfaebde56f8e6260a3f77c467425fbe51    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 19:32:53 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 19:32:53 -0500    

Click here for diff

M contrib/pg_upgrade/util.c

Fix parallel gmake for extension directory addition in PL languages.

commit   : c15c1f1c15fc19d20c0699aeb312664f5529c87a    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 18:32:06 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 5 Mar 2011 18:32:06 -0500    

Click here for diff

M src/pl/plperl/GNUmakefile
M src/pl/plpgsql/src/Makefile
M src/pl/plpython/Makefile
M src/pl/tcl/Makefile

Add PL extension files to MSVC Install procedure.

commit   : a956b160261579ae2422b539ccf73d75684351fb    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sat, 5 Mar 2011 16:21:37 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sat, 5 Mar 2011 16:21:37 -0500    

Click here for diff

M src/tools/msvc/Install.pm

Adjust documentation about pg_pltemplate to reflect latest thinking.

commit   : 0b5d7345925dd0212d4509195a337f1912781af1    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 15:34:10 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 15:34:10 -0500    

Click here for diff

It's more likely that pg_pltemplate will go away in the future than  
that we'll add additional specialized infrastructure for it.  

M doc/src/sgml/catalogs.sgml

Make plpythonu language use plpython2 shared library directly.

commit   : bfd7f8cbb2ddf8c48ac310a80d33c951087c12c4    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 15:13:15 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 15:13:15 -0500    

Click here for diff

The original scheme for this was to symlink plpython.$DLSUFFIX to  
plpython2.$DLSUFFIX, but that doesn't work on Windows, and only  
accidentally failed to fail because of the way that CREATE LANGUAGE created  
or didn't create new C functions.  My changes of yesterday exposed the  
weakness of that approach.  To fix, get rid of the symlink and make  
pg_pltemplate show what's really going on.  

M doc/src/sgml/plpython.sgml
M src/include/catalog/catversion.h
M src/include/catalog/pg_pltemplate.h
M src/pl/plpython/Makefile
M src/tools/msvc/Mkvcbuild.pm

Convert createlang/droplang to use CREATE/DROP EXTENSION.

commit   : ba0c93a0f46ca70cae47a8817067c1e98482979f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 14:03:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 14:03:06 -0500    

Click here for diff

In createlang this is a one-line change.  In droplang there's a whole  
lot of cruft that can be discarded since the extension mechanism now  
manages removal of the language's support functions.  
  
Also, add deprecation notices to these two programs' reference pages,  
since per discussion we may toss them overboard altogether in a release  
or two.  

M doc/src/sgml/ref/createlang.sgml
M doc/src/sgml/ref/droplang.sgml
M src/bin/scripts/createlang.c
M src/bin/scripts/droplang.c

Remove one copy of duplicated alpha4 release note.

commit   : c0f2b2e256a3e98c2a066cee8623b7ab156b7f9c    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 13:00:54 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 13:00:54 -0500    

Click here for diff

Noted by Andy Colson  

M doc/src/sgml/release-9.1.sgml

Update of SQL feature conformance

commit   : 9650364b7b2fc5d676f87cca7b5f9ff991cdb7af    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 5 Mar 2011 16:50:03 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 5 Mar 2011 16:50:03 +0200    

Click here for diff

M src/backend/catalog/sql_features.txt

Add missing word.

commit   : f31e532492aa950c62c3ded32d07d1e42017e557    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 09:53:05 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 09:53:05 -0500    

Click here for diff

M doc/src/sgml/release-9.1.sgml

First cut at 9.1alpha4 release notes.

commit   : 5c44f38d3b63c5a11f58fe558adfe4d3cf4dcc39    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 09:36:19 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 09:36:19 -0500    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Remove emphasis from 9.1alpha3 items.

commit   : a4406da967093a9793db0fbceb6e226e318932b6    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 07:36:35 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 5 Mar 2011 07:36:35 -0500    

Click here for diff

In preparation for 9.1alpha4 release notes, where only the 9.1alpha4  
features will be emphasized.  

M doc/src/sgml/release-9.1.sgml

Update documentation to reflect that standard PLs are now extensions.

commit   : c2903fb3d2aeb0a7206945478ad28bc47bd6c6e8    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 01:08:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 5 Mar 2011 01:08:38 -0500    

Click here for diff

Recommend use of CREATE EXTENSION rather than plain CREATE LANGUAGE  
where relevant.  Encourage PL authors to provide extension wrappers  
for their PLs.  

M doc/src/sgml/installation.sgml
M doc/src/sgml/plhandler.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/ref/create_language.sgml
M doc/src/sgml/ref/drop_language.sgml
M doc/src/sgml/xplang.sgml

Create extension infrastructure for the core procedural languages.

commit   : 63b656b7bf39beb5b6095ab2b5e1e4e9d8c6a965    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 21:51:14 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 21:51:14 -0500    

Click here for diff

This mostly just involves creating control, install, and  
update-from-unpackaged scripts for them.  However, I had to adjust plperl  
and plpython to not share the same support functions between variants,  
because we can't put the same function into multiple extensions.  
  
catversion bump forced due to new contents of pg_pltemplate, and because  
initdb now installs plpgsql as an extension not a bare language.  
  
Add support for regression testing these as extensions not bare  
languages.  
  
Fix a couple of other issues that popped up while testing this: my initial  
hack at pg_dump binary-upgrade support didn't work right, and we don't want  
an extra schema permissions test after all.  
  
Documentation changes still to come, but I'm committing now to see  
whether the MSVC build scripts need work (likely they do).  

M src/backend/commands/extension.c
M src/bin/initdb/initdb.c
M src/bin/pg_dump/pg_dump.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_pltemplate.h
M src/pl/plperl/GNUmakefile
A src/pl/plperl/plperl–1.0.sql
A src/pl/plperl/plperl–unpackaged–1.0.sql
M src/pl/plperl/plperl.c
A src/pl/plperl/plperl.control
A src/pl/plperl/plperlu–1.0.sql
A src/pl/plperl/plperlu–unpackaged–1.0.sql
A src/pl/plperl/plperlu.control
M src/pl/plpgsql/src/Makefile
A src/pl/plpgsql/src/plpgsql–1.0.sql
A src/pl/plpgsql/src/plpgsql–unpackaged–1.0.sql
A src/pl/plpgsql/src/plpgsql.control
M src/pl/plpython/Makefile
M src/pl/plpython/expected/plpython_drop.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/plpython.c
A src/pl/plpython/plpython2u–1.0.sql
A src/pl/plpython/plpython2u–unpackaged–1.0.sql
A src/pl/plpython/plpython2u.control
A src/pl/plpython/plpython3u–1.0.sql
A src/pl/plpython/plpython3u–unpackaged–1.0.sql
A src/pl/plpython/plpython3u.control
A src/pl/plpython/plpythonu–1.0.sql
A src/pl/plpython/plpythonu–unpackaged–1.0.sql
A src/pl/plpython/plpythonu.control
M src/pl/plpython/sql/plpython_drop.sql
M src/pl/plpython/sql/plpython_test.sql
M src/pl/tcl/Makefile
A src/pl/tcl/pltcl–1.0.sql
A src/pl/tcl/pltcl–unpackaged–1.0.sql
A src/pl/tcl/pltcl.control
A src/pl/tcl/pltclu–1.0.sql
A src/pl/tcl/pltclu–unpackaged–1.0.sql
A src/pl/tcl/pltclu.control
M src/test/regress/pg_regress.c
M src/tools/msvc/vcregress.pl

Refactor seclabel.c to use the new check_object_ownership function.

commit   : efa415da8c0fb8c1c0bc50faebac430f8b917571    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Mar 2011 17:26:37 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Mar 2011 17:26:37 -0500    

Click here for diff

This avoids duplicate (and not-quite-matching) code, and makes the logic  
for SECURITY LABEL match COMMENT and ALTER EXTENSION ADD/DROP.  

M src/backend/commands/seclabel.c

Don't allow CREATE TABLE AS to create a column with invalid collation

commit   : b9cff97fdf486eca7e563a9696a7391048814d0f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 4 Mar 2011 23:39:44 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 4 Mar 2011 23:39:44 +0200    

Click here for diff

It is possible that an expression ends up with a collatable type but  
without a collation.  CREATE TABLE AS could then create a table based  
on that.  But such a column cannot be dumped with valid SQL syntax, so  
we disallow creating such a column.  
  
per test report from Noah Misch  

M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/commands/tablecmds.c
M src/include/catalog/heap.h
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Allow non-superusers to create (some) extensions.

commit   : 8d3b421f5f7b955e7ac7d156aa74ee6a6fe4e9f6    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 16:08:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 16:08:24 -0500    

Click here for diff

Remove the unconditional superuser permissions check in CREATE EXTENSION,  
and instead define a "superuser" extension property, which when false  
(not the default) skips the superuser permissions check.  In this case  
the calling user only needs enough permissions to execute the commands  
in the extension's installation script.  The superuser property is also  
enforced in the same way for ALTER EXTENSION UPDATE cases.  
  
In other ALTER EXTENSION cases and DROP EXTENSION, test ownership of  
the extension rather than superuserness.  ALTER EXTENSION ADD/DROP needs  
to insist on ownership of the target object as well; to do that without  
duplicating code, refactor comment.c's big switch for permissions checks  
into a separate function in objectaddress.c.  
  
I also removed the superuserness checks in pg_available_extensions and  
related functions; there's no strong reason why everybody shouldn't  
be able to see that info.  
  
Also invent an IF NOT EXISTS variant of CREATE EXTENSION, and use that  
in pg_dump, so that dumps won't fail for installed-by-default extensions.  
We don't have any of those yet, but we will soon.  
  
This is all per discussion of wrapping the standard procedural languages  
into extensions.  I'll make those changes in a separate commit; this is  
just putting the core infrastructure in place.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/ref/alter_extension.sgml
M doc/src/sgml/ref/create_extension.sgml
M doc/src/sgml/ref/drop_extension.sgml
M src/backend/catalog/aclchk.c
M src/backend/catalog/objectaddress.c
M src/backend/catalog/system_views.sql
M src/backend/commands/comment.c
M src/backend/commands/extension.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/bin/pg_dump/pg_dump.c
M src/include/catalog/catversion.h
M src/include/catalog/objectaddress.h
M src/include/catalog/pg_proc.h
M src/include/nodes/parsenodes.h
M src/include/utils/acl.h
M src/test/regress/expected/rules.out

When creating a collation, check that the locales can be loaded

commit   : 4442e1975d3c4c96a0b573b7abd864b0cbe26f9d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 4 Mar 2011 22:14:37 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 4 Mar 2011 22:14:37 +0200    

Click here for diff

This is the same check that would happen later when the collation is  
used, but it's friendlier to check the collation already when it is  
created.  

M src/backend/commands/collationcmds.c
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

In initialize_SSL, don't fail unnecessarily when home dir is unavailable.

commit   : bd58d9d883111ee84de4af480ebb018fe9b0bf27    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 11:38:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 4 Mar 2011 11:38:45 -0500    

Click here for diff

Instead, just act as though the certificate file(s) are not present.  
There is only one case where this need be a hard failure condition: when  
sslmode is verify-ca or verify-full, not having a root cert file is an  
error.  Change the logic so that we complain only in that case, and  
otherwise fall through cleanly.  This is how it used to behave pre-9.0,  
but my patch 4ed4b6c54e5fab24ab2624d80e26f7546edc88ad of 2010-05-26 broke  
the case.  Per report from Christian Kastner.  

M src/interfaces/libpq/fe-secure.c

You must hold a lock on the heap page when you call CheckForSerializableConflictOut(), because it can set hint bits.

commit   : ee3838b1d35cffec21ca40dbfc409ec40ddf3e28    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 4 Mar 2011 15:37:09 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 4 Mar 2011 15:37:09 +0200    

Click here for diff

YAMAMOTO Takashi  

M src/backend/access/heap/heapam.c
M src/backend/storage/lmgr/predicate.c

Add a comment explaining the recent fix for plpython breakage in commit 4c966d9.

commit   : 12bf602f3fe963a9d155778b9385186c3a0b5ed3    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 3 Mar 2011 19:41:54 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 3 Mar 2011 19:41:54 -0500    

Click here for diff

Mostly text supplied by Jan Urbański.  

M src/pl/plpython/plpython.c

Further refine patch for commenting operator implementation functions.

commit   : 908ab80286401bb20a519fa7dc7a837631f20369    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 15:55:47 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 15:55:47 -0500    

Click here for diff

Instead of manually maintaining the "implementation of XXX operator"  
comments in pg_proc.h, delete all those entries and let initdb create  
them via a join.  To let initdb figure out which name to use when there  
is a conflict, change the comments for deprecated operators to say they  
are deprecated --- which seems like a good thing to do anyway.  

M src/bin/initdb/initdb.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_proc.h
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/opr_sanity.sql

Fix citext's upgrade-from-unpackaged script to set its collation correctly.

commit   : 94be9e3f0ca9e7ced66168397eb586565bced9ca    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 13:22:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 13:22:18 -0500    

Click here for diff

Although there remains some debate about how CREATE TYPE should represent  
the collation property, this doesn't really affect what we need to do in  
citext's script, so go ahead and fix that.  

M contrib/citext/citext–unpackaged–1.0.sql

Run a portal's cleanup hook immediately when pushing it to DONE state.

commit   : 6252c4f9e201f619e5eebda12fa867acd4e4200e    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 13:03:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 13:03:34 -0500    

Click here for diff

This works around the problem noted by Yamamoto Takashi in bug #5906,  
that there were code paths whereby we could reach AtCleanup_Portals  
with a portal's cleanup hook still unexecuted.  The changes I made  
a few days ago were intended to prevent that from happening, and  
I think that on balance it's still a good thing to avoid, so I don't  
want to remove the Assert in AtCleanup_Portals.  Hence do this instead.  

M src/backend/tcop/pquery.c
M src/backend/utils/mmgr/portalmem.c
M src/include/utils/portal.h

Added new version of ecpg's parser generator script. This one was written by Andy Colson <[email protected]>.

commit   : 32fce70564999a90d48a27c4279a8908e90f3ece    
  
author   : Michael Meskes <[email protected]>    
date     : Thu, 3 Mar 2011 13:43:50 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Thu, 3 Mar 2011 13:43:50 +0100    

Click here for diff

M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/ecpg/preproc/README.parser
M src/interfaces/ecpg/preproc/ecpg.trailer
A src/interfaces/ecpg/preproc/parse2.pl

Add tab-completion for table name after JOIN.

commit   : 8e2d8b1497ac64142bb7df05e39a58ebf3e62bf6    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 3 Mar 2011 09:42:02 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 3 Mar 2011 09:42:02 +0200    

Click here for diff

Andrey Popp  

M src/bin/psql/tab-complete.c

commit   : 8c4164540b30434845be02f84973663bfeb231ab    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 01:43:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 01:43:38 -0500    

Click here for diff

Now that btree_gist contains a reference to isinf(), this is necessary  
at least on some platforms.  Per buildfarm.  

M contrib/btree_gist/Makefile

Mark operator implementation functions as such in their comments.

commit   : 94133a935414407920a47d06a6e22734c974c3b8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 01:33:19 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 3 Mar 2011 01:33:19 -0500    

Click here for diff

Historically, we've not had separate comments for built-in pg_operator  
entries, but relied on the comments for the underlying functions.  The  
trouble with this approach is that there isn't much of anything to suggest  
to users that they'd be better off using the operators instead.  So, move  
all the relevant comments into pg_operator, and give each underlying  
function a comment that just says "implementation of XXX operator".  
There are only about half a dozen cases where it seems reasonable to use  
the underlying function interchangeably with the operator; in these cases  
I left the same comment in place on the function as on the operator.  
  
While at it, establish a policy that every built-in function and operator  
entry should have a comment: there are now queries in the opr_sanity  
regression test that will complain if one doesn't.  This only required  
adding a dozen or two more entries than would have been there anyway.  
  
I also spent some time trying to eliminate gratuitous inconsistencies in  
the style of the comments, though it's hopeless to suppose that more won't  
creep in soon enough.  
  
Per my proposal of 2010-10-15.  

M src/bin/psql/describe.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_proc.h
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/opr_sanity.sql

Add collations to information_schema.usage_privileges

commit   : 091bda0188250c9802cebca066b4ca9e049616e6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 2 Mar 2011 23:10:41 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 2 Mar 2011 23:10:41 +0200    

Click here for diff

This is faked information like for domains.  

M doc/src/sgml/information_schema.sgml
M src/backend/catalog/information_schema.sql

Add 'collatable' to the Parameters section of CREATE TYPE.

commit   : 43bdf3583a9a5912e1800ab140b8ca495ae69d85    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 16:11:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 16:11:05 -0500    

Click here for diff

M doc/src/sgml/ref/create_type.sgml

Add KNNGIST support to contrib/btree_gist.

commit   : 8436489c81c23af637696ac69cdaafddcc907ee1    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 14:43:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 14:43:24 -0500    

Click here for diff

This extends GiST's support for nearest-neighbor searches to many of the  
standard data types.  
  
Teodor Sigaev  

M contrib/btree_gist/btree_cash.c
M contrib/btree_gist/btree_date.c
M contrib/btree_gist/btree_float4.c
M contrib/btree_gist/btree_float8.c
M contrib/btree_gist/btree_gist–1.0.sql
M contrib/btree_gist/btree_gist–unpackaged–1.0.sql
M contrib/btree_gist/btree_inet.c
M contrib/btree_gist/btree_int2.c
M contrib/btree_gist/btree_int4.c
M contrib/btree_gist/btree_int8.c
M contrib/btree_gist/btree_interval.c
M contrib/btree_gist/btree_macaddr.c
M contrib/btree_gist/btree_oid.c
M contrib/btree_gist/btree_time.c
M contrib/btree_gist/btree_ts.c
M contrib/btree_gist/btree_utils_num.c
M contrib/btree_gist/btree_utils_num.h
M contrib/btree_gist/expected/cash.out
M contrib/btree_gist/expected/date.out
M contrib/btree_gist/expected/float4.out
M contrib/btree_gist/expected/float8.out
M contrib/btree_gist/expected/int2.out
M contrib/btree_gist/expected/int4.out
M contrib/btree_gist/expected/int8.out
M contrib/btree_gist/expected/interval.out
M contrib/btree_gist/expected/time.out
M contrib/btree_gist/expected/timestamp.out
M contrib/btree_gist/expected/timestamptz.out
M contrib/btree_gist/sql/cash.sql
M contrib/btree_gist/sql/date.sql
M contrib/btree_gist/sql/float4.sql
M contrib/btree_gist/sql/float8.sql
M contrib/btree_gist/sql/int2.sql
M contrib/btree_gist/sql/int4.sql
M contrib/btree_gist/sql/int8.sql
M contrib/btree_gist/sql/interval.sql
M contrib/btree_gist/sql/time.sql
M contrib/btree_gist/sql/timestamp.sql
M contrib/btree_gist/sql/timestamptz.sql
M doc/src/sgml/btree-gist.sgml

Support for DragonFly BSD

commit   : 6094c242d1ee40a08f3138811425d7540e8269e4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 2 Mar 2011 21:15:28 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 2 Mar 2011 21:15:28 +0200    

Click here for diff

Mapped to NetBSD, the closest existing match.  (Even though DragonFly  
BSD is derived from FreeBSD, the shared library version numbering  
matches NetBSD, and the rest is mostly the same among all BSD  
variants.)  
  
per "Rumko"  

M configure
M configure.in

Fix erroneous documentation of the syntax of CREATE CONSTRAINT TRIGGER.

commit   : 2f6c8453cf3f38a70adbcb59489630cd5be92570    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 11:39:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 11:39:18 -0500    

Click here for diff

The grammar requires a specific ordering of the clauses, but the  
documentation showed a different order.  This error was introduced in  
commit b47953f9c69d48a9261bd643e3170017b93f6337, which merged the CREATE  
CONSTRAINT TRIGGER documentation into the CREATE TRIGGER page.  There is  
no code bug AFAICS.  

M doc/src/sgml/ref/create_trigger.sgml

Correct mistaken claims about EXPLAIN ANALYZE's handling of triggers.

commit   : 7e49330cad885a76441253da74b88e7d2f27c9f0    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 11:17:03 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Mar 2011 11:17:03 -0500    

Click here for diff

Time spent executing AFTER triggers is not included in the runtime of the  
associated ModifyTable node; in my patch of yesterday I confused queuing of  
these triggers with their actual execution.  Spotted by Marko Tiikkaja.  

M doc/src/sgml/perform.sgml

Fix plpython breakage detected on certain Fedora machines on buildfarm.

commit   : 4c966d920fb75a5d0366b887c2ef28e6d87c1eda    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 1 Mar 2011 18:59:31 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 1 Mar 2011 18:59:31 -0500    

Click here for diff

Patch from Jan Urbański.  

M src/pl/plpython/plpython.c

Additional PL/Python regression test expected file

commit   : 2f363590c17c0e02186efab5fa0b197b82a5b3ae    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 1 Mar 2011 23:35:18 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 1 Mar 2011 23:35:18 +0200    

Click here for diff

plpython_subtransaction test needs a separate expected file  
specifically for Python 2.5.  

M src/pl/plpython/expected/README
A src/pl/plpython/expected/plpython_subtransaction_5.out

Change pg_last_xlog_receive_location() not to move backwards. That makes it a lot more useful for determining which standby is most up-to-date, for example. There was long discussions on whether overwriting existing existing WAL makes sense to begin with, and whether we should do some more extensive variable renaming, but this change nevertheless seems quite uncontroversial.

commit   : 6eba5a7c57d1d61f46b6966026bf7bc07f8e087c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 1 Mar 2011 20:46:57 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 1 Mar 2011 20:46:57 +0200    

Click here for diff

Fujii Masao, reviewed by Jeff Janes, Robert Haas, Stephen Frost.  

M doc/src/sgml/func.sgml
M src/backend/replication/walreceiver.c
M src/backend/replication/walreceiverfuncs.c
M src/include/replication/walreceiver.h

Fix bugs in Serializable Snapshot Isolation.

commit   : 47ad79122bc099c1f0ea8a7ae413fcd8d45e26a6    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 1 Mar 2011 19:05:16 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 1 Mar 2011 19:05:16 +0200    

Click here for diff

Change the way UPDATEs are handled. Instead of maintaining a chain of  
tuple-level locks in shared memory, copy any existing locks on the old  
tuple to the new tuple at UPDATE. Any existing page-level lock needs to  
be duplicated too, as a lock on the new tuple. That was neglected  
previously.  
  
Store xmin on tuple-level predicate locks, to distinguish a lock on an old  
already-recycled tuple from a new tuple at the same physical location.  
Failure to distinguish them caused loops in the tuple-lock chains, as  
reported by YAMAMOTO Takashi. Although we don't use the chain representation  
of UPDATEs anymore, it seems like a good idea to store the xmin to avoid  
some false positives if no other reason.  
  
CheckSingleTargetForConflictsIn now correctly handles the case where a lock  
that's being held is not reflected in the local lock table. That happens  
if another backend acquires a lock on our behalf due to an UPDATE or a page  
split.  
  
PredicateLockPageCombine now retains locks for the page that is being  
removed, rather than removing them. This prevents a potentially dangerous  
false-positive inconsistency where the local lock table believes that a lock  
is held, but it is actually not.  
  
Dan Ports and Kevin Grittner  

M src/backend/access/nbtree/nbtree.c
M src/backend/storage/lmgr/predicate.c
M src/include/storage/lwlock.h
M src/include/storage/predicate_internals.h

Dump the COLLATABLE attribute in CREATE TYPE

commit   : 16143d64513e4dc3c72bad7ae98d3df0b5a23013    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 1 Mar 2011 18:45:34 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 1 Mar 2011 18:45:34 +0200    

Click here for diff

This was previously omitted by accident.  

M src/bin/pg_dump/pg_dump.c

Update discussion of EXPLAIN to reflect existence of ModifyTable nodes.

commit   : 09b49a8439fde63826f93f55430868cf2585644b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 1 Mar 2011 11:36:01 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 1 Mar 2011 11:36:01 -0500    

Click here for diff

Back-patch to 9.0, since this was changed then.  

M doc/src/sgml/perform.sgml

Include the target table in EXPLAIN output for ModifyTable nodes.

commit   : 97c4ee94adf15f7a0a39cbb5549159e2aa0679d1    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 1 Mar 2011 11:32:13 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 1 Mar 2011 11:32:13 -0500    

Click here for diff

Per discussion, this seems important for plans involving writable CTEs,  
since there can now be more than one ModifyTable node in the plan.  
  
To retain the same formatting as for target tables of scan nodes, we  
show only one target table, which will be the parent table in case of  
an UPDATE or DELETE on an inheritance tree.  Individual child tables  
can be determined by inspecting the child plan trees if needed.  

M src/backend/commands/explain.c

Avoid excessive Hot Standby feedback messages.

commit   : 59d6a7594288ebc909a24f3fc9e502f097bbe2ff    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 1 Mar 2011 11:32:23 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 1 Mar 2011 11:32:23 -0500    

Click here for diff

Without this patch, when wal_receiver_status_interval=0, indicating that no  
status messages should be sent, Hot Standby feedback messages are instead sent  
extremely frequently.  
  
Fujii Masao, with documentation changes by me.  

M doc/src/sgml/config.sgml
M src/backend/replication/walreceiver.c

Rearrange snapshot handling to make rule expansion more consistent.

commit   : c0b00760365c74308e9e0719c993eadfbcd090c2    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 28 Feb 2011 23:27:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 28 Feb 2011 23:27:18 -0500    

Click here for diff

With this patch, portals, SQL functions, and SPI all agree that there  
should be only a CommandCounterIncrement between the queries that are  
generated from a single SQL command by rule expansion.  Fetching a whole  
new snapshot now happens only between original queries.  This is equivalent  
to the existing behavior of EXPLAIN ANALYZE, and it was judged to be the  
best choice since it eliminates one source of concurrency hazards for  
rules.  The patch should also make things marginally faster by reducing the  
number of snapshot push/pop operations.  
  
The patch removes pg_parse_and_rewrite(), which is no longer used anywhere.  
There was considerable discussion about more aggressive refactoring of the  
query-processing functions exported by postgres.c, but for the moment  
nothing more has been done there.  
  
I also took the opportunity to refactor snapmgr.c's API slightly: the  
former PushUpdatedSnapshot() has been split into two functions.  
  
Marko Tiikkaja, reviewed by Steve Singer and Tom Lane  

M src/backend/catalog/pg_proc.c
M src/backend/commands/copy.c
M src/backend/commands/explain.c
M src/backend/executor/functions.c
M src/backend/executor/spi.c
M src/backend/tcop/postgres.c
M src/backend/tcop/pquery.c
M src/backend/utils/time/snapmgr.c
M src/include/tcop/tcopprot.h
M src/include/utils/snapmgr.h

Unbreak vpath builds broken by commit 474a42473adf9b18417242f1fc0691a857ec578b.

commit   : 57e9bda5ec6a032e1e6d51dad5e534a11669c6bf    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 28 Feb 2011 21:31:39 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 28 Feb 2011 21:31:39 -0500    

Click here for diff

M src/pl/plpython/Makefile

Rename pg_stat_replication.apply_location to replay_location.

commit   : 92c30fd2edee6da6e018f41a1d67b4ac2f8fcbdd    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 28 Feb 2011 12:48:46 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 28 Feb 2011 12:48:46 -0500    

Click here for diff

For consistency with pg_last_xlog_replay_location.  Per discussion.  

M src/backend/catalog/system_views.sql
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/test/regress/expected/rules.out

Fix regression tests after PL/Python custom SPI exceptions patch

commit   : 4b853c879d3c298b7ea7a09fcb74314bc54c37e4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 28 Feb 2011 19:43:36 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 28 Feb 2011 19:43:36 +0200    

Click here for diff

M src/pl/plpython/expected/plpython_unicode_3.out

PL/Python custom SPI exceptions

commit   : 474a42473adf9b18417242f1fc0691a857ec578b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 28 Feb 2011 18:41:10 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 28 Feb 2011 18:41:10 +0200    

Click here for diff

This provides a separate exception class for each error code that the  
backend defines, as well as the ability to get the SQLSTATE from the  
exception object.  
  
Jan Urbański, reviewed by Steve Singer  

M doc/src/sgml/plpython.sgml
M src/pl/plpython/.gitignore
M src/pl/plpython/Makefile
M src/pl/plpython/expected/plpython_error.out
M src/pl/plpython/expected/plpython_error_0.out
M src/pl/plpython/expected/plpython_subtransaction.out
M src/pl/plpython/expected/plpython_subtransaction_0.out
M src/pl/plpython/expected/plpython_test.out
A src/pl/plpython/generate-spiexceptions.pl
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_error.sql
M src/tools/msvc/Solution.pm

Add documentation for data-modifying statements in WITH clauses.

commit   : 0ef0b302040284a087c1bc90df5b115f0dea7764    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 28 Feb 2011 01:17:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 28 Feb 2011 01:17:18 -0500    

Click here for diff

Marko Tiikkaja, somewhat reworked by Tom  

M doc/src/sgml/queries.sgml
M doc/src/sgml/ref/select.sgml

Document that last vacuum statistics and counts are for non-FULL vacuums.

commit   : c11f1f714b6983e011cc4639cf669151d587e8c2    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 18:03:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 18:03:49 -0500    

Click here for diff

M doc/src/sgml/monitoring.sgml

PL/Python explicit subtransactions

commit   : 22690719ea5a89ccbcd04deb58c83d8d5f138df8    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 27 Feb 2011 17:09:56 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 27 Feb 2011 17:09:56 +0200    

Click here for diff

Adds a context manager, obtainable by plpy.subtransaction(), to run a  
group of statements in a subtransaction.  
  
Jan Urbański, reviewed by Steve Singer, additional scribbling by me  

M doc/src/sgml/plpython.sgml
M src/pl/plpython/Makefile
M src/pl/plpython/expected/README
A src/pl/plpython/expected/plpython_subtransaction.out
A src/pl/plpython/expected/plpython_subtransaction_0.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/plpython.c
A src/pl/plpython/sql/plpython_subtransaction.sql

Remove remaining expected file for Python 2.2

commit   : 438cdf6e4893311df4e94dc55b961a691908a530    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 27 Feb 2011 14:00:19 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 27 Feb 2011 14:00:19 +0200    

Click here for diff

We don't have complete expected coverage for Python 2.2 anyway, so it  
doesn't seem worth keeping this one around that no one appears to be  
updating anyway.  Visual inspection of the differences ought to be  
good enough for those few who care about this obsolete Python version.  

M src/pl/plpython/expected/README
D src/pl/plpython/expected/plpython_unicode_2.out

Refactor the executor's API to support data-modifying CTEs better.

commit   : a874fe7b4c890d1fe3455215a83ca777867beadd    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 27 Feb 2011 13:43:29 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 27 Feb 2011 13:43:29 -0500    

Click here for diff

The originally committed patch for modifying CTEs didn't interact well  
with EXPLAIN, as noted by myself, and also had corner-case problems with  
triggers, as noted by Dean Rasheed.  Those problems show it is really not  
practical for ExecutorEnd to call any user-defined code; so split the  
cleanup duties out into a new function ExecutorFinish, which must be called  
between the last ExecutorRun call and ExecutorEnd.  Some Asserts have been  
added to these functions to help verify correct usage.  
  
It is no longer necessary for callers of the executor to call  
AfterTriggerBeginQuery/AfterTriggerEndQuery for themselves, as this is now  
done by ExecutorStart/ExecutorFinish respectively.  If you really need to  
suppress that and do it for yourself, pass EXEC_FLAG_SKIP_TRIGGERS to  
ExecutorStart.  
  
Also, refactor portal commit processing to allow for the possibility that  
PortalDrop will invoke user-defined code.  I think this is not actually  
necessary just yet, since the portal-execution-strategy logic forces any  
non-pure-SELECT query to be run to completion before we will consider  
committing.  But it seems like good future-proofing.  

M contrib/auto_explain/auto_explain.c
M contrib/pg_stat_statements/pg_stat_statements.c
M src/backend/access/transam/xact.c
M src/backend/commands/copy.c
M src/backend/commands/discard.c
M src/backend/commands/explain.c
M src/backend/commands/extension.c
M src/backend/commands/portalcmds.c
M src/backend/commands/trigger.c
M src/backend/executor/README
M src/backend/executor/execMain.c
M src/backend/executor/execUtils.c
M src/backend/executor/functions.c
M src/backend/executor/spi.c
M src/backend/tcop/pquery.c
M src/backend/utils/mmgr/portalmem.c
M src/include/executor/executor.h
M src/include/nodes/execnodes.h
M src/include/utils/portal.h
M src/test/regress/expected/with.out
M src/test/regress/sql/with.sql

commit   : 67a5e727c8655496013b007d2fb6137fcc244b18    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 12:21:25 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 12:21:25 -0500    

Click here for diff

M src/backend/port/sysv_shmem.c

Fix verbose display of REPLICATION role attribute

commit   : b04137a2948a24dfa3b87222f07073eb9939b264    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 27 Feb 2011 12:35:31 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 27 Feb 2011 12:35:31 +0100    

Click here for diff

Josh Kupershmidt  

M src/bin/psql/describe.c

Fix markup for pg_options_to_table() to report the return column names, per suggestion from Andrew.

commit   : 721ea41f1413bee70839c957a08eca62799e274f    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 03:50:12 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 27 Feb 2011 03:50:12 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Increase the default for wal_sender_delay from 200ms to 1s. Now that WAL sender is immediately woken up by transaction commit, there's no need to wake up so aggressively.

commit   : be6668d6eff6a03455b48fa8ce1a397ff5bae788    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 26 Feb 2011 23:36:24 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 26 Feb 2011 23:36:24 +0200    

Click here for diff

M doc/src/sgml/config.sgml
M src/backend/replication/walsender.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample

Add a configure check for Python.h if building with python.

commit   : 42e5223648e7e56f8041bed329929dbd5529ea92    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sat, 26 Feb 2011 14:17:57 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sat, 26 Feb 2011 14:17:57 -0500    

Click here for diff

M configure
M configure.in

Document that pg_options_to_table() also works for pg_attribute.attoptions.

commit   : 58838a7a52a913c66084158f98f1f62349ee6335    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 12:47:29 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 12:47:29 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Fix doc patch --- pg_options_to_table() returns "setof record".

commit   : 86434afb11093ba4e2893b717858d8ce790f3e2e    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 12:26:25 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 12:26:25 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Table function support for PL/Python

commit   : bc411f25c14f65b459de5dbc96ac79e7741ef9ee    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 26 Feb 2011 16:53:11 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 26 Feb 2011 16:53:11 +0200    

Click here for diff

This allows functions with multiple OUT parameters returning both one  
or multiple records (RECORD or SETOF RECORD).  
  
Jan Urbański, reviewed by Hitoshi Harada  

M doc/src/sgml/plpython.sgml
M src/pl/plpython/Makefile
A src/pl/plpython/expected/plpython_composite.out
M src/pl/plpython/expected/plpython_record.out
M src/pl/plpython/expected/plpython_trigger.out
M src/pl/plpython/plpython.c
A src/pl/plpython/sql/plpython_composite.sql
M src/pl/plpython/sql/plpython_record.sql
M src/pl/plpython/sql/plpython_trigger.sql

Document pg_options_to_table() (not previously documented)

commit   : 772dcfe7c0b3c678c8aef11de2bf8a52150a56f1    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 01:55:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 26 Feb 2011 01:55:26 -0500    

Click here for diff

M doc/src/sgml/func.sgml

Fix order of shutdown processing when CTEs contain inter-references.

commit   : 000128bc7f591025d0c1ce539bb53c6ad00ab69c    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Feb 2011 23:53:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Feb 2011 23:53:34 -0500    

Click here for diff

We need ExecutorEnd to run the ModifyTable nodes to completion in  
reverse order of initialization, not forward order.  Easily done  
by constructing the list back-to-front.  

M src/backend/executor/nodeModifyTable.c
M src/test/regress/expected/with.out
M src/test/regress/sql/with.sql

Support data-modifying commands (INSERT/UPDATE/DELETE) in WITH.

commit   : 389af951552ff2209eae3e62fa147fef12329d4f    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 25 Feb 2011 18:56:23 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 25 Feb 2011 18:56:23 -0500    

Click here for diff

This patch implements data-modifying WITH queries according to the  
semantics that the updates all happen with the same command counter value,  
and in an unspecified order.  Therefore one WITH clause can't see the  
effects of another, nor can the outer query see the effects other than  
through the RETURNING values.  And attempts to do conflicting updates will  
have unpredictable results.  We'll need to document all that.  
  
This commit just fixes the code; documentation updates are waiting on  
author.  
  
Marko Tiikkaja and Hitoshi Harada  

M src/backend/commands/tablecmds.c
M src/backend/commands/view.c
M src/backend/executor/execMain.c
M src/backend/executor/execUtils.c
M src/backend/executor/nodeModifyTable.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/parser/analyze.c
M src/backend/parser/gram.y
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/tcop/pquery.c
M src/backend/tcop/utility.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/cache/plancache.c
M src/include/catalog/catversion.h
M src/include/executor/executor.h
M src/include/nodes/execnodes.h
M src/include/nodes/parsenodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/relation.h
M src/include/optimizer/planmain.h
M src/include/parser/parse_node.h
M src/include/parser/parse_relation.h
M src/include/utils/portal.h
M src/test/regress/expected/with.out
M src/test/regress/sql/with.sql

Update pageinspect--1.0.sql to match the upgrade script

commit   : 0056066d06067d2d7fc84b31937933b5724347d0    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 25 Feb 2011 19:39:02 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 25 Feb 2011 19:39:02 -0300    

Click here for diff

Per comment from Tom  

M contrib/pageinspect/pageinspect–1.0.sql

Fix pageinspect's heap_page_item to return infomasks as 32 bit values

commit   : a338d654614f897ccb58eaa8a6171abdb7dc8dff    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 25 Feb 2011 19:04:25 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 25 Feb 2011 19:04:25 -0300    

Click here for diff

HeapTupleHeader's t_infomask and t_infomask2 are defined as 16-bit  
unsigned integers, so when the 16th bit was set, heap_page_item was  
returning them as negative values, which was ugly.  
  
The change to pageinspect--unpackaged--1.0.sql allows a module upgraded  
from 9.0 to be cleanly updated from the previous definition.  

M contrib/pageinspect/heapfuncs.c
M contrib/pageinspect/pageinspect–unpackaged–1.0.sql

Named restore point improvements.

commit   : 79ad8fc5f857ed38057f482fc022bf157175c4d8    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 24 Feb 2011 18:58:38 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 24 Feb 2011 18:58:38 -0500    

Click here for diff

Emit a log message when creating a named restore point, and improve  
documentation for pg_create_restore_point().  
  
Euler Taveira de Oliveira, 	per suggestions from Thom Brown, with some  
additional wordsmithing by me.  

M doc/src/sgml/func.sgml
M src/backend/access/transam/xlog.c

More psql tab-completion for new commands.

commit   : 6079375431d5e55f2456b47521bb16e6e263d8a6    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 24 Feb 2011 21:05:40 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 24 Feb 2011 21:05:40 +0900    

Click here for diff

- ALTER FOREIGN DATA WRAPPER with HANDLER  
- ALTER TABLE VALIDATE CONSTRAINT  
- ALTER TYPE ADD VALUE  
- COPY with ENCODING and FORCE NOT NULL  
- CREATE FOREIGN DATA WRAPPER with HANDLER  
- CREATE TRIGGER ... INSTEAD OF  

M src/bin/psql/tab-complete.c

Add tab-completion for CREATE UNLOGGED TABLE in psql, and fix unexpected completion for DROP TEMP and UNIQUE.

commit   : 4191e16cbeafb9184dff37c3cbfe94b11a29d5f4    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 24 Feb 2011 10:13:27 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 24 Feb 2011 10:13:27 +0900    

Click here for diff

M src/bin/psql/tab-complete.c

Update wording about information schema and name which views potentially can have duplicates, per request from Tom.

commit   : 2c72d7042bc09bd8a1f2dc8ab288fec449760ba8    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 22 Feb 2011 23:31:45 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 22 Feb 2011 23:31:45 -0500    

Click here for diff

M doc/src/sgml/information_schema.sgml

Make the second words lowercase in psql's \d titles for unlogged tables.

commit   : 5a922f13eff66b3e437e823419d48d509d59a6be    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 23 Feb 2011 09:54:32 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 23 Feb 2011 09:54:32 +0900    

Click here for diff

M src/bin/psql/describe.c

Add a relkind field to RangeTblEntry to avoid some syscache lookups.

commit   : bdca82f44d0e0168dece56cbd53b54ba142f328f    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Feb 2011 19:23:23 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Feb 2011 19:23:23 -0500    

Click here for diff

The recent additions for FDW support required checking foreign-table-ness  
in several places in the parse/plan chain.  While it's not clear whether  
that would really result in a noticeable slowdown, it seems best to avoid  
any performance risk by keeping a copy of the relation's relkind in  
RangeTblEntry.  That might have some other uses later, anyway.  
Per discussion.  

M src/backend/catalog/dependency.c
M src/backend/commands/copy.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/print.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/plan/planner.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/ruleutils.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_class.h
M src/include/nodes/parsenodes.h

Add PL/Python functions for quoting strings

commit   : 1c51c7d5ffd407426f314b2cd317ef77f14efb1f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 22 Feb 2011 23:33:44 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 22 Feb 2011 23:33:44 +0200    

Click here for diff

Add functions plpy.quote_ident, plpy.quote_literal,  
plpy.quote_nullable, which wrap the equivalent SQL functions.  
  
To be able to propagate char * constness properly, make the argument  
of quote_literal_cstr() const char *.  This also makes it more  
consistent with quote_identifier().  
  
Jan Urbański, reviewed by Hitoshi Harada, some refinements by Peter  
Eisentraut  

M doc/src/sgml/plpython.sgml
M src/backend/utils/adt/quote.c
M src/include/utils/builtins.h
M src/pl/plpython/Makefile
A src/pl/plpython/expected/plpython_quote.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/plpython.c
A src/pl/plpython/sql/plpython_quote.sql

Fix a couple of unlogged tables goofs.

commit   : 3e6b305d9e2a4616bf69e31b0b21ebbb844ba50e    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 22 Feb 2011 14:42:45 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 22 Feb 2011 14:42:45 -0500    

Click here for diff

"SELECT ... INTO UNLOGGED tabname" works, but wasn't documented; CREATE  
UNLOGGED SEQUENCE and CREATE UNLOGGED VIEW failed an assertion, instead  
of throwing a sensible error.  
  
Latter issue reported by Itagaki Takahiro; patch review by Tom Lane.  

M doc/src/sgml/ref/select_into.sgml
M src/backend/commands/sequence.c
M src/backend/commands/view.c

Allow binary I/O of type "void".

commit   : 1ab9b012bdf1f106792fc523e21b9ca8299bb8ed    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 22 Feb 2011 13:08:22 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 22 Feb 2011 13:08:22 -0500    

Click here for diff

void_send is useful for the same reason that void_out doesn't throw error,  
namely that someone might do "select void_returning_func(...)"  from a  
client that prefers to operate in binary mode.  The void_recv function may  
or may not have any practical use, but we provide it for symmetry.  
  
Radosław Smogura  

M src/backend/utils/adt/pseudotypes.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_type.h
M src/include/utils/builtins.h

Reword information_schema duplicate constraint warning text.

commit   : edb382179d49105a236b54678a5a4020276df071    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 22 Feb 2011 09:06:18 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 22 Feb 2011 09:06:18 -0500    

Click here for diff

M doc/src/sgml/information_schema.sgml

Remove ExecRemoveJunk(), which is no longer used anywhere.

commit   : 2e852e541c84af85aa918762fc838fa44a399310    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 21 Feb 2011 21:41:08 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 21 Feb 2011 21:41:08 -0500    

Click here for diff

This was a leftover from the pre-8.1 design of junkfilters.  It doesn't  
seem to have any reason to live, since it's merely a combination of two  
easy function calls, and not a well-designed combination at that (it  
encourages callers to leak the result tuple).  

M src/backend/executor/execJunk.c
M src/include/executor/executor.h

Fix dangling-pointer problem in before-row update trigger processing.

commit   : a210be772047575331fb6b0ab7b72043f81452ba    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 21 Feb 2011 21:18:04 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 21 Feb 2011 21:18:04 -0500    

Click here for diff

ExecUpdate checked for whether ExecBRUpdateTriggers had returned a new  
tuple value by seeing if the returned tuple was pointer-equal to the old  
one.  But the "old one" was in estate->es_junkFilter's result slot, which  
would be scribbled on if we had done an EvalPlanQual update in response to  
a concurrent update of the target tuple; therefore we were comparing a  
dangling pointer to a live one.  Given the right set of circumstances we  
could get a false match, resulting in not forcing the tuple to be stored in  
the slot we thought it was stored in.  In the case reported by Maxim Boguk  
in bug #5798, this led to "cannot extract system attribute from virtual  
tuple" failures when trying to do "RETURNING ctid".  I believe there is a  
very-low-probability chance of more serious errors, such as generating  
incorrect index entries based on the original rather than the  
trigger-modified version of the row.  
  
In HEAD, change all of ExecBRInsertTriggers, ExecIRInsertTriggers,  
ExecBRUpdateTriggers, and ExecIRUpdateTriggers so that they continue to  
have similar APIs.  In the back branches I just changed  
ExecBRUpdateTriggers, since there is no bug in the ExecBRInsertTriggers  
case.  

M src/backend/commands/copy.c
M src/backend/commands/trigger.c
M src/backend/executor/nodeModifyTable.c
M src/include/commands/trigger.h

Move information_schema duplicate constraint note to the top of the information schema documentation because it affects several tables.

commit   : fee7802770669398359c369aee83277dcc58edd1    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 21 Feb 2011 20:14:02 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 21 Feb 2011 20:14:02 -0500    

Click here for diff

M doc/src/sgml/information_schema.sgml

Update docs about new role privileges reference, per Alvaro.

commit   : ede45e90dd1992bfd3e1e61ce87bad494b81f54d    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 21 Feb 2011 09:15:09 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 21 Feb 2011 09:15:09 -0500    

Click here for diff

M doc/src/sgml/user-manag.sgml

Fix pg_server_to_client, that was broken in the previous commit.

commit   : ca9cf85d54ec08f37edb37341ad8ee1f20211458    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Mon, 21 Feb 2011 16:26:58 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Mon, 21 Feb 2011 16:26:58 +0900    

Click here for diff

M src/backend/utils/mb/mbutils.c

Add ENCODING option to COPY TO/FROM and file_fdw. File encodings can be specified separately from client encoding. If not specified, client encoding is used for backward compatibility.

commit   : 3cba8240a195c4f323e3f934bfeab308434a9973    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Mon, 21 Feb 2011 14:08:04 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Mon, 21 Feb 2011 14:08:04 +0900    

Click here for diff

Cases when the encoding doesn't match client encoding are slower  
than matched cases because we don't have conversion procs for other  
encodings. Performance improvement would be be a future work.  
  
Original patch by Hitoshi Harada, and modified by me.  

M contrib/file_fdw/file_fdw.c
M doc/src/sgml/file-fdw.sgml
M doc/src/sgml/ref/copy.sgml
M src/backend/commands/copy.c
M src/backend/parser/gram.y
M src/backend/utils/mb/mbutils.c
M src/include/mb/pg_wchar.h
M src/test/regress/expected/copy2.out
M src/test/regress/sql/copy2.sql

Merge two documentation permission chapters into a single chapter.

commit   : 48d25bac9f024f36b43cbba58778adf9ad0207c6    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Feb 2011 22:20:57 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Feb 2011 22:20:57 -0500    

Click here for diff

M doc/src/sgml/ddl.sgml
M doc/src/sgml/user-manag.sgml

Minor logic fix for new levenshtein implementation.

commit   : 087bd179e63f199105dabc8be0c8aebd087a178e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 14:55:07 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 14:55:07 -0500    

Click here for diff

Alexander Korotkov  

M contrib/fuzzystrmatch/Makefile
M contrib/fuzzystrmatch/levenshtein.c

Add contrib/file_fdw foreign-data wrapper for reading files via COPY.

commit   : 7c5d0ae7078456bfeedb2103c45b9a32285c2631    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 14:06:59 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 14:06:59 -0500    

Click here for diff

This is both very useful in its own right, and an important test case  
for the core FDW support.  
  
This commit includes a small refactoring of copy.c to expose its option  
checking code as a separately callable function.  The original patch  
submission duplicated hundreds of lines of that code, which seemed pretty  
unmaintainable.  
  
Shigeru Hanada, reviewed by Itagaki Takahiro and Tom Lane  

M contrib/Makefile
M contrib/README
A contrib/file_fdw/.gitignore
A contrib/file_fdw/Makefile
A contrib/file_fdw/data/agg.bad
A contrib/file_fdw/data/agg.csv
A contrib/file_fdw/data/agg.data
A contrib/file_fdw/expected/.gitignore
A contrib/file_fdw/file_fdw–1.0.sql
A contrib/file_fdw/file_fdw.c
A contrib/file_fdw/file_fdw.control
A contrib/file_fdw/input/file_fdw.source
A contrib/file_fdw/output/file_fdw.source
A contrib/file_fdw/sql/.gitignore
M doc/src/sgml/contrib.sgml
A doc/src/sgml/file-fdw.sgml
M doc/src/sgml/filelist.sgml
M src/backend/commands/copy.c
M src/include/commands/copy.h

Implement an API to let foreign-data wrappers actually be functional.

commit   : bb742407947ad1cbf19355d24282380d576e7654    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 00:17:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 20 Feb 2011 00:17:18 -0500    

Click here for diff

This commit provides the core code and documentation needed.  A contrib  
module test case will follow shortly.  
  
Shigeru Hanada, Jan Urbanski, Heikki Linnakangas  

M doc/src/sgml/ddl.sgml
A doc/src/sgml/fdwhandler.sgml
M doc/src/sgml/filelist.sgml
M doc/src/sgml/postgres.sgml
M doc/src/sgml/ref/create_foreign_data_wrapper.sgml
M doc/src/sgml/ref/create_foreign_table.sgml
M src/backend/commands/explain.c
M src/backend/executor/Makefile
M src/backend/executor/execAmi.c
M src/backend/executor/execMain.c
M src/backend/executor/execProcnode.c
A src/backend/executor/nodeForeignscan.c
M src/backend/foreign/foreign.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/README
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/plancat.c
M src/backend/parser/analyze.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/utils/fmgr/fmgr.c
M src/include/commands/explain.h
A src/include/executor/nodeForeignscan.h
M src/include/fmgr.h
A src/include/foreign/fdwapi.h
M src/include/foreign/foreign.h
M src/include/nodes/execnodes.h
M src/include/nodes/nodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/relation.h
M src/include/optimizer/cost.h
M src/include/optimizer/pathnode.h
M src/test/regress/expected/foreign_data.out

Adjust documentation wording of window function ORDER BY to not mention avg() because it was inaccurate.

commit   : d5813488a4ccc78ec3a4ad0d5da4e6e844af75e8    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 20 Feb 2011 00:01:08 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 20 Feb 2011 00:01:08 -0500    

Click here for diff

M doc/src/sgml/advanced.sgml

Documentation update for UTF16 surrogate pairs in UTF8 encoding.

commit   : 8c0f1e2762a896e3af890b14babd3409fa49e641    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 19:00:19 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 19:00:19 -0500    

Click here for diff

Marko Kreen  

M doc/src/sgml/syntax.sgml

Document that an SQL-standard-compliant query that expects a unique row from information_schema.referential_constraints might return several in Postgres because we allow duplicate-named constraints in the same schema.

commit   : e07ae21f7ec2260c17136a7afaa4dbca405d9c24    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 18:21:03 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 18:21:03 -0500    

Click here for diff

M doc/src/sgml/information_schema.sgml

Invalidate PL/Python functions with composite type argument when the type changes.

commit   : b05186f8a403c7dcd1bd974948273f8c00edb127    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 19 Feb 2011 16:52:24 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 19 Feb 2011 16:52:24 +0200    

Click here for diff

The invalidation will cause the type information to be refetched, and  
everything will work.  
  
Jan Urbański, reviewed by Alex Hunsaker  

M src/pl/plpython/expected/plpython_types.out
M src/pl/plpython/expected/plpython_types_3.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_types.sql

Initialize variable to quiet compiler.

commit   : 964b46d00ec2222c1273bec3ead369f3e167d482    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 08:14:32 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 19 Feb 2011 08:14:32 -0500    

Click here for diff

M src/pl/plperl/plperl.c

Set psql client encoding from locale by default

commit   : 02e14562a806a96f38120c96421d39dfa7394192    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 19 Feb 2011 08:54:58 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 19 Feb 2011 08:54:58 +0200    

Click here for diff

Add a new libpq connection option client_encoding (which includes the  
existing PGCLIENTENCODING environment variable), which besides an  
encoding name accepts a special value "auto" that tries to determine  
the encoding from the locale in the client's environment, using the  
mechanisms that have been in use in initdb.  
  
psql sets this new connection option to "auto" when running from a  
terminal and not overridden by setting PGCLIENTENCODING.  
  
original code by Heikki Linnakangas, with subsequent contributions by  
Jaime Casanova, Peter Eisentraut, Stephen Frost, Ibrar Ahmed  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/startup.c
M src/interfaces/libpq/.gitignore
M src/interfaces/libpq/Makefile
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/fe-protocol2.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/libpq-int.h

Create the catalog infrastructure for foreign-data-wrapper handlers.

commit   : 327e0250716f12fe94b62669d25e572b40a8fba5    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 19 Feb 2011 00:06:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 19 Feb 2011 00:06:18 -0500    

Click here for diff

Add a fdwhandler column to pg_foreign_data_wrapper, plus HANDLER options  
in the CREATE FOREIGN DATA WRAPPER and ALTER FOREIGN DATA WRAPPER commands,  
plus pg_dump support for same.  Also invent a new pseudotype fdw_handler  
with properties similar to language_handler.  
  
This is split out of the "FDW API" patch for ease of review; it's all stuff  
we will certainly need, regardless of any other details of the FDW API.  
FDW handler functions will not actually get called yet.  
  
In passing, fix some omissions and infelicities in foreigncmds.c.  
  
Shigeru Hanada, Jan Urbanski, Heikki Linnakangas  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
M doc/src/sgml/ref/create_foreign_data_wrapper.sgml
M src/backend/commands/foreigncmds.c
M src/backend/foreign/foreign.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/utils/adt/pseudotypes.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/psql/describe.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_foreign_data_wrapper.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_type.h
M src/include/foreign/foreign.h
M src/include/nodes/parsenodes.h
M src/include/utils/builtins.h
M src/test/regress/expected/foreign_data.out
M src/test/regress/sql/foreign_data.sql

Improve text search prefix doc addition.

commit   : 4077980d67a2f27b88a6bc7531da31cae0ed0fb1    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 18 Feb 2011 23:23:52 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 18 Feb 2011 23:23:52 -0500    

Click here for diff

M doc/src/sgml/datatype.sgml

Document that text search comparisons happen after text search configuration rules.

commit   : 5bba4948eb835413cc4a5ca1e2f7255ce4c78e69    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 18 Feb 2011 22:39:17 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 18 Feb 2011 22:39:17 -0500    

Click here for diff

Erik Rijkers  

M doc/src/sgml/datatype.sgml

Un-break building with BTREE_BUILD_STATS.

commit   : 82220e883236c214d670c3f14d943690aa78bc17    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 14:05:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 14:05:42 -0500    

Click here for diff

This has been broken for awhile, but not clear it's worth back-patching.  
  
Euler Taveira de Oliveira  

M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsort.c

Fix parallel pg_restore to handle comments on POST_DATA items correctly.

commit   : 4cff100d7378b65ded116c5a9960584c351e5fa9    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 13:11:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 13:11:45 -0500    

Click here for diff

The previous coding would try to process all SECTION_NONE items in the  
initial sequential-restore pass, which failed if they were dependencies of  
not-yet-restored items.  Fix by postponing such items into the parallel  
processing pass once we have skipped any non-PRE_DATA item.  
  
Back-patch into 9.0; the original parallel-restore coding in 8.4 did not  
have this bug, so no need to change it.  
  
Report and diagnosis by Arnd Hannemann.  

M src/bin/pg_dump/pg_backup_archiver.c

One more hack to make contrib upgrades from 9.0 match fresh 9.1 installs.

commit   : 472f608e436a41865b795c999bda3369725fa097    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 11:55:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 18 Feb 2011 11:55:57 -0500    

Click here for diff

intarray and tsearch2 both reference core support functions in their GIN  
opclasses, and the signatures of those functions changed for 9.1.  We added  
backwards-compatible pg_proc entries for the functions in order to allow  
9.0 dump files to be restored at all, but that hack leaves the opclasses  
pointing at pg_proc entries different from what they'd point to if the  
contrib modules were installed fresh in 9.1.  To forestall any possibility  
of future problems, fix the opclasses to match fresh installs via the  
expedient of direct UPDATEs on pg_amproc in the update-from-unpackaged  
scripts.  (Yech ... but the alternatives are worse, or require far more  
effort than seems justified right now.)  
  
Note: updating pg_amproc is sufficient because there will be no pg_depend  
entries corresponding to these dependencies, since the referenced functions  
are all pinned.  

M contrib/intarray/intarray–unpackaged–1.0.sql
M contrib/tsearch2/tsearch2–unpackaged–1.0.sql

Use $INDENT instead of `which` to find the indent binary

commit   : a5dfc94c9a2e6c0c7e0ed97d22ebff37cf7d9038    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 18 Feb 2011 12:47:48 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 18 Feb 2011 12:47:48 -0300    

Click here for diff

Per discussion after my commit o yesterday.  

M src/tools/pgindent/pgindent

Make a hard state change from catchup to streaming mode. More useful state change for monitoring purposes, plus a required change for synchronous replication patch.

commit   : bc76695c4c44e21aed94ee2bea81c4cdcedf1390    
  
author   : Simon Riggs <[email protected]>    
date     : Fri, 18 Feb 2011 15:07:26 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Fri, 18 Feb 2011 15:07:26 +0000    

Click here for diff

M src/backend/replication/walsender.c

Separate messages for standby replies and hot standby feedback. Allow messages to be sent at different times, and greatly reduce the frequency of hot standby feedback. Refactor to allow additional message types.

commit   : 06828c5febf3a8f9e94bce5bd84634ce990d299f    
  
author   : Simon Riggs <[email protected]>    
date     : Fri, 18 Feb 2011 11:31:49 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Fri, 18 Feb 2011 11:31:49 +0000    

Click here for diff

M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/include/replication/walprotocol.h

Properly initialize variables

commit   : 45a6d79b1764a78301ef008f4561b5e176352331    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 18 Feb 2011 11:59:57 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 18 Feb 2011 11:59:57 +0100    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Applied a patch by Zoltán Böszörményi that makes ecpg's parser accept dynamic cursornames even in WHERE CURRENT OF clauses.

commit   : bc423879cc2db964231f1d4c912961f3e35a6ece    
  
author   : Michael Meskes <[email protected]>    
date     : Fri, 18 Feb 2011 11:16:16 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Fri, 18 Feb 2011 11:16:16 +0100    

Click here for diff

M src/backend/parser/gram.y
M src/interfaces/ecpg/preproc/ecpg.addons

Fix an uninitialized field in DR_copy.

commit   : 5c63982af2a5d2da90259e878efb43f16ee13ce3    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Fri, 18 Feb 2011 14:29:40 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Fri, 18 Feb 2011 14:29:40 +0900    

Click here for diff

Shigeru HANADA  

M src/backend/commands/copy.c

Add transaction-level advisory locks.

commit   : 62c7bd31c8878dd45c9b9b2429ab7a12103f3590    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Fri, 18 Feb 2011 14:04:34 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Fri, 18 Feb 2011 14:04:34 +0900    

Click here for diff

They share the same locking namespace with the existing session-level  
advisory locks, but they are automatically released at the end of the  
current transaction and cannot be released explicitly via unlock  
functions.  
  
Marko Tiikkaja, reviewed by me.  

M doc/src/sgml/func.sgml
M doc/src/sgml/mvcc.sgml
M src/backend/storage/lmgr/README
M src/backend/storage/lmgr/lock.c
M src/backend/storage/lmgr/proc.c
M src/backend/utils/adt/lockfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/storage/lock.h
M src/include/utils/builtins.h
A src/test/regress/expected/advisory_lock.out
M src/test/regress/parallel_schedule
M src/test/regress/serial_schedule
A src/test/regress/sql/advisory_lock.sql

Convert Postgres arrays to Perl arrays on PL/perl input arguments

commit   : 87bb2ade2ce646083f39d5ab3e3307490211ad04    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 22:11:50 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 22:11:50 -0300    

Click here for diff

More generally, arrays are turned in Perl array references, and row and  
composite types are turned into Perl hash references.  This is done  
recursively, in a way that's natural to every Perl programmer.  
  
To avoid a backwards compatibility hit, the string representation of  
each structure is also available if the function requests it.  
  
Authors: Alexey Klyukin and Alex Hunsaker.  
Some code cleanups by me.  

M doc/src/sgml/plperl.sgml
M src/pl/plperl/GNUmakefile
M src/pl/plperl/Util.xs
M src/pl/plperl/expected/plperl.out
A src/pl/plperl/expected/plperl_array.out
M src/pl/plperl/expected/plperl_trigger.out
M src/pl/plperl/expected/plperl_util.out
M src/pl/plperl/plc_perlboot.pl
M src/pl/plperl/plperl.c
M src/pl/plperl/plperl.h
M src/pl/plperl/sql/plperl.sql
A src/pl/plperl/sql/plperl_array.sql
M src/pl/plperl/sql/plperl_trigger.sql
M src/pl/plperl/sql/plperl_util.sql

pgindent run on plperl.c

commit   : f7b51d175a02a3b6589f091ca732959618844232    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 16:40:13 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 16:40:13 -0300    

Click here for diff

M src/pl/plperl/plperl.c

Use $INDENT rather than indent throughout the pgindent code

commit   : c4d124365b9b535e8c98e4568ade3e0c15b11810    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 16:37:47 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 17 Feb 2011 16:37:47 -0300    

Click here for diff

This allows the user to change the path to be used more easily.  
Also, change URL in README.  

M src/tools/pgindent/README
M src/tools/pgindent/pgindent

Fix tsmatchsel() to account properly for null rows.

commit   : 52b60530f257b1591d8b72264cd6c0dd9aabfd46    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 19:00:49 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 19:00:49 -0500    

Click here for diff

ts_typanalyze.c computes MCE statistics as fractions of the non-null rows,  
which seems fairly reasonable, and anyway changing it in released versions  
wouldn't be a good idea.  But then ts_selfuncs.c has to account for that.  
Failure to do so results in overestimates in columns with a significant  
fraction of null documents.  Back-patch to 8.4 where this stuff was  
introduced.  
  
Jesper Krogh  

M src/backend/tsearch/ts_selfuncs.c
M src/include/catalog/pg_statistic.h

Fix upgrade of contrib/xml2 from 9.0.

commit   : de623f33353c96657651f9c3a6c8756616c610e4    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 18:11:28 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 18:11:28 -0500    

Click here for diff

Update script was being sloppy about two functions that have been changed  
since 9.0.  

M contrib/xml2/xml2–unpackaged–1.0.sql
M contrib/xml2/xml2.control

Fix upgrade of contrib/intarray and contrib/unaccent from 9.0.

commit   : 0024e348989254d48dc4afe9beab98a6994a791e    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 17:45:09 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 17:45:09 -0500    

Click here for diff

Take care of a couple of discrepancies between what you get from a fresh  
install and what the first-draft update-from-unpackaged scripts produced.  

M contrib/intarray/intarray–unpackaged–1.0.sql
M contrib/unaccent/unaccent–unpackaged–1.0.sql

Fix upgrade of contrib/btree_gist from 9.0.

commit   : ec65a79db2a423a156cda8e862d34052d7175a86    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 16:37:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 16:37:34 -0500    

Click here for diff

The initial version of the update-from-unpackaged script neglected to  
include the <> operators that were added to the opclasses during 9.1.  
To make this script produce the same final state as the regular install  
script, use the same ALTER OPERATOR FAMILY trick as in pg_trgm.  

M contrib/btree_gist/btree_gist–1.0.sql
M contrib/btree_gist/btree_gist–unpackaged–1.0.sql

Add client_hostname field to pg_stat_activity.

commit   : 4a25bc145ad5d05da6f01c00bae0f576e9e17115    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 16:03:28 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 16:03:28 -0500    

Click here for diff

Peter Eisentraut, reviewed by Steve Singer, Alvaro Herrera, and me.  

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/pgstat.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/pgstat.h
M src/test/regress/expected/rules.out

Prevent possible compiler warnings.

commit   : a3e8486dffc413506b14eae9dc5d423f6ae8324a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 16:00:23 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 16:00:23 -0500    

Click here for diff

Simon Riggs reports that rnode.dbNode and rnode.spcNode were  
generating unused variable warnings on gcc 4.4.3 with CFLAGS=-O1  

M src/backend/utils/adt/dbsize.c

Typo fix

commit   : 4f2cfc5bb4c404c24d589339d29c210321f4b4d7    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 15:57:03 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 15:57:03 -0500    

Click here for diff

Erik Rijkers  

M doc/src/sgml/ecpg.sgml

Fix contrib/pg_trgm to have smoother updates from 9.0.

commit   : 4eb49db7ae634fab9af7437b2e7b6388dfd83bd3    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 15:03:30 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 17 Feb 2011 15:03:30 -0500    

Click here for diff

Take care of some loose ends in the update-from-unpackaged script, and  
apply some ugly hacks to ensure that it produces the same catalog state  
as the fresh-install script.  Per discussion, this seems like a safer  
plan than having two different catalog states that both call themselves  
"pg_trgm 1.0", even if it's not immediately clear that the subtle  
differences would ever matter.  
  
Also, fix the stub function gin_extract_trgm() so that it works instead  
of just bleating.  Needed because this function will get called during a  
regular dump and reload, if there are any indexes using its opclass.  
The user won't have an opportunity to update the extension till later,  
so telling him to do so is unhelpful.  

M contrib/pg_trgm/pg_trgm–1.0.sql
M contrib/pg_trgm/pg_trgm–unpackaged–1.0.sql
M contrib/pg_trgm/trgm_gin.c

Remove doc mention about read committed in upsert example.

commit   : 3472a2b0565ad0302e5ea47e49a95305c2b07f64    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 14:24:14 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 14:24:14 -0500    

Click here for diff

M doc/src/sgml/plpgsql.sgml

Document that plpgsql upsert example can fail if insert triggers return unique exception, or if not used in read committed transaction mode.

commit   : f87712d208f7dbe447cd27e92a99f49fd19afe94    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 13:36:36 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 13:36:36 -0500    

Click here for diff

M doc/src/sgml/plpgsql.sgml

In documentation example, use concat_values() instead of concat() because concat() is a built-in function.

commit   : 732808c087a84feed4749ab1e8a63ceeefcf449f    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 12:37:13 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 17 Feb 2011 12:37:13 -0500    

Click here for diff

Erik Rijkers  

M doc/src/sgml/xfunc.sgml

Add some words of caution to elog.c.

commit   : f196738534baa95badd9d8f1debb5822240ebc6b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 10:29:42 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 10:29:42 -0500    

Click here for diff

Stephen Frost, somewhat rewritten by me  

M src/backend/utils/error/elog.c

Typo fixes.

commit   : 9408783aefee9d58dd9daf53c8d6b24ab226f05b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 08:07:31 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 08:07:31 -0500    

Click here for diff

Thom Brown  

M doc/src/sgml/sepgsql.sgml

Remove rule to build sepgsql-regtest.pp.

commit   : 24bc6b3db3579f4c480c6d0f81f7e50f1e6c0180    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 06:39:13 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 17 Feb 2011 06:39:13 -0500    

Click here for diff

Instead, document how to build it manually.  
  
Per discussion.  KaiGai Kohei, with some wordsmithing by me.  

M contrib/sepgsql/Makefile
M doc/src/sgml/sepgsql.sgml

Fix blatantly uninitialized variable in recent commit.

commit   : 93016983d1e8f3aeb508f1be8daf5ca5de5c5b61    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 19:53:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 19:53:20 -0500    

Click here for diff

Doesn't anybody around here pay attention to compiler warnings?  

M src/backend/replication/walsender.c

Fix bogus test for hypothetical indexes in get_actual_variable_range().

commit   : a2095f7fb5a57ea1794f25d029756d9a140fd429    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 19:24:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 19:24:45 -0500    

Click here for diff

That function was supposing that indexoid == 0 for a hypothetical index,  
but that is not likely to be true in any non-toy implementation of an index  
adviser, since assigning a fake OID is the only way to know at EXPLAIN time  
which hypothetical index got selected.  Fix by adding a flag to  
IndexOptInfo to mark hypothetical indexes.  Back-patch to 9.0 where  
get_actual_variable_range() was added.  
  
Gurjeet Singh  

M src/backend/nodes/outfuncs.c
M src/backend/optimizer/util/plancat.c
M src/backend/utils/adt/selfuncs.c
M src/include/nodes/relation.h

Add backwards-compatible declarations of some core GIN support functions.

commit   : 6595dd04d136d5c97ae05fc580572c8f00042143    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 17:24:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 17:24:06 -0500    

Click here for diff

These are needed to support reloading dumps of 9.0 installations containing  
contrib/intarray or contrib/tsearch2.  Since not only regular dump/reload  
but binary upgrade would fail, it seems worth the trouble to carry these  
stubs for awhile.  Note that the contrib opclasses referencing these  
functions will still work fine, since GIN doesn't actually pay any  
attention to the declared signature of a support function.  

M contrib/intarray/intarray–unpackaged–1.0.sql
M src/backend/access/gin/ginarrayproc.c
M src/backend/utils/adt/tsginidx.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/tsearch/ts_utils.h
M src/include/utils/builtins.h

Also process psqlrc when running psql -l

commit   : b15fabf997fb3cd5e0680a6ad7576377774aae07    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 23:14:38 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 23:14:38 +0200    

Click here for diff

This was previously not very useful, but with many people customizing  
the linestyle, it is nice for a consistent appearance.  

M src/bin/psql/startup.c

Better support for thread-support flag detection with clang

commit   : f0053845326e9eba290c78162ef355558cd2fc46    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 23:06:36 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 23:06:36 +0200    

Click here for diff

When testing the stderr produced by various thread-support flags, also  
run a compilation in addition to a link, because clang warns on  
certain flags when compiling but not when linking.  

M config/acx_pthread.m4
M configure

Fix for warnings-free compilation with Python 3.2

commit   : 66d6b4cb54eb3b192c8f9087592e53c53c20cf06    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 22:19:29 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 16 Feb 2011 22:19:29 +0200    

Click here for diff

The first argument of PyEval_EvalCode() was changed from PyCodeObject*  
to PyObject* because of PEP 384.  

M src/pl/plpython/plpython.c

In pg_upgrade, no need to initialize global struct values; they are always zeros. Also no need to free memory before we exit.

commit   : 497e65f822ff33ed964d1c891ee6de0d97d0b2a6    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 16 Feb 2011 15:16:57 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 16 Feb 2011 15:16:57 -0500    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h

Hot Standby feedback for avoidance of cleanup conflicts on standby. Standby optionally sends back information about oldestXmin of queries which is then checked and applied to the WALSender's proc->xmin. GetOldestXmin() is modified slightly to agree with GetSnapshotData(), so that all backends on primary include WALSender within their snapshots. Note this does nothing to change the snapshot xmin on either master or standby. Feedback piggybacks on the standby reply message. vacuum_defer_cleanup_age is no longer used on standby, though parameter still exists on primary, since some use cases still exist.

commit   : bca8b7f16a3e720794cb0afbdb3733be4f8d9c2c    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 16 Feb 2011 19:29:37 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 16 Feb 2011 19:29:37 +0000    

Click here for diff

Simon Riggs, review comments from Fujii Masao, Heikki Linnakangas, Robert Haas  

M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M src/backend/access/transam/xlog.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/backend/storage/ipc/procarray.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/access/xlog.h
M src/include/replication/walprotocol.h
M src/include/replication/walreceiver.h

Make a no-op ALTER EXTENSION UPDATE give just a NOTICE, not ERROR.

commit   : 65076269ea54a8cd6e39f066a208c7d13aceac0a    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 12:39:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 12:39:45 -0500    

Click here for diff

This seems a bit more user-friendly.  

M src/backend/commands/extension.c

Cleanup ClusterInfo initialization in pg_upgrade

commit   : b4a7e5980b2919d4d2a849d046a8e3a77e06fdb7    
  
author   : Alvaro Herrera <[email protected]>    
date     : Wed, 16 Feb 2011 14:06:17 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Wed, 16 Feb 2011 14:06:17 -0300    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h

WAL receiver shouldn't try to send a reply when dying.

commit   : 3a087369c0ea858e56c8af5072de91778a644383    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 16 Feb 2011 10:24:50 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 16 Feb 2011 10:24:50 -0500    

Click here for diff

Per report from, and discussion with, Fujii Masao.  

M src/backend/replication/walreceiver.c

Add FOREACH IN ARRAY looping to plpgsql.

commit   : 6e02755b22ea62775c906d29b87b55b38ab70bd2    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 01:52:04 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 16 Feb 2011 01:52:04 -0500    

Click here for diff

(I'm not entirely sure that we've finished bikeshedding the syntax details,  
but the functionality seems OK.)  
  
Pavel Stehule, reviewed by Stephen Frost and Tom Lane  

M doc/src/sgml/plpgsql.sgml
M src/backend/utils/adt/arrayfuncs.c
M src/include/utils/array.h
M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/pl_funcs.c
M src/pl/plpgsql/src/pl_scanner.c
M src/pl/plpgsql/src/plpgsql.h
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

pg_ctl promote

commit   : 4695da5ae97bbb58d274887fd68edbe88d03ebcb    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 21:28:48 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 21:28:48 -0500    

Click here for diff

Fujii Masao, reviewed by Robert Haas, Stephen Frost, and Magnus Hagander.  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/backend/access/transam/xlog.c
M src/backend/postmaster/postmaster.c
M src/bin/pg_ctl/pg_ctl.c
M src/include/access/xlog.h

Export the external file reader used in COPY FROM as APIs. They are expected to be used by extension modules like file_fdw. There are no user-visible changes.

commit   : 8ddc05fb01ee2c423bf5613426726351e860d4b4    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 16 Feb 2011 11:19:11 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 16 Feb 2011 11:19:11 +0900    

Click here for diff

Itagaki Takahiro  
Reviewed and tested by Kevin Grittner and Noah Misch.  

M src/backend/commands/copy.c
M src/include/commands/copy.h

Fix bug in 9.1 pg_upgrade processing of old/new relations; adjust debug output.

commit   : 1cc19cc358c23e3c4e04f9f38776b625d5e13965    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Feb 2011 19:01:33 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Feb 2011 19:01:33 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Fix corner case for binary upgrade: extension functions in pg_catalog.

commit   : 89c29c033154b717b16db2ee3c87bdec4393b0d4    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 18:09:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 18:09:41 -0500    

Click here for diff

Normally, pg_dump summarily excludes functions in pg_catalog from  
consideration.  However, some extensions may create functions in pg_catalog  
(adminpack already does that, and extensions for procedural languages will  
likely do it too).  In binary-upgrade mode, we have to dump such functions,  
or the extension will be incomplete after upgrading.  Per experimentation  
with adminpack.  

M src/bin/pg_dump/pg_dump.c

Make pg_upgrade compile again

commit   : 8b2557553c6eeba97d9ebf6f048369cabd25c2b6    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 15 Feb 2011 19:52:32 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 15 Feb 2011 19:52:32 -0300    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c

Add CheckTableNotInUse calls in DROP TABLE and DROP INDEX.

commit   : eff027c43288d15307676b1bd4736ab11f34c407    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 15:49:54 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 15:49:54 -0500    

Click here for diff

Recent releases had a check on rel->rd_refcnt in heap_drop_with_catalog,  
but failed to cover the possibility of pending trigger events at DROP time.  
(Before 8.4 we didn't even check the refcnt.)  When the trigger events were  
eventually fired, you'd get "could not open relation with OID nnn" errors,  
as in recent report from strk.  Better to throw a suitable error when the  
DROP is attempted.  
  
Also add a similar check in DROP INDEX.  
  
Back-patch to all supported branches.  

M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/interfaces/ecpg/test/expected/sql-fetch.stderr

Adjust pg_upgrade error message, array freeing, and add error check.

commit   : fe8f15d5d2f42ad1ce6a0114c12fd3da0f14dd4a    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 15 Feb 2011 15:00:07 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 15 Feb 2011 15:00:07 -0500    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/relfilenode.c

Bring hstore's comment into line with style of other contrib comments.

commit   : f5fc1de501d03f6399670dd16989c5925b9191d2    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 14:21:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 14:21:45 -0500    

Click here for diff

All the other ones that are primarily a new datatype say "data type for  
<purpose>", so make this one similar.  

M contrib/hstore/hstore.control

Fix obsolete comment.

commit   : 887dd041a65006deeaf514f78e4a5012dc6f7f7c    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 13:27:03 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 15 Feb 2011 13:27:03 -0500    

Click here for diff

Comment about MaxAllocSize was not updated when the TOAST-header macros  
were replaced in 8.3 "varvarlena" changes.  Per report from Frederik Ramm.  

M src/include/utils/memutils.h

Assorted corrections to the patch to add WAL receiver replies.

commit   : 883a9659faf6e49e314b264ca32ed7645068a409    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 12:02:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 12:02:53 -0500    

Click here for diff

Per reports from Fujii Masao.  

M doc/src/sgml/config.sgml
M src/backend/replication/walsender.c

Rename max_predicate_locks_per_transaction.

commit   : 6a77e9385eb46829ce80971bc655df9f3ef00d9a    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 08:00:04 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 15 Feb 2011 08:00:04 -0500    

Click here for diff

The new name, max_pred_locks_per_transaction, is shorter.  
  
Kevin Grittner, per discussion.  

M doc/src/sgml/config.sgml
M src/backend/storage/lmgr/predicate.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample

Allow make check in PL directories

commit   : 2fd77060a2db814146cf1f6cf77755a4b4fd9a80    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 14 Feb 2011 21:52:32 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 14 Feb 2011 21:52:32 +0200    

Click here for diff

Also add make check-world target, and refactor pg_regress invocation  
code in makefiles a bit.  

M GNUmakefile.in
M Makefile
M src/Makefile.global.in
M src/makefiles/pgxs.mk
M src/pl/plperl/.gitignore
M src/pl/plperl/GNUmakefile
M src/pl/plpython/.gitignore
M src/pl/plpython/Makefile
M src/pl/tcl/.gitignore
M src/pl/tcl/Makefile
M src/test/regress/GNUmakefile
M src/test/regress/pg_regress.c

Avoid a few more SET DATA TYPE table rewrites.

commit   : 0d90dc16f87bd991d7eb9f536ca46acef7586d95    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 14 Feb 2011 23:17:35 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 14 Feb 2011 23:17:35 -0500    

Click here for diff

When the new type is an unconstrained domain over the old type, we don't  
need to rewrite the table.  
  
Noah Misch and Robert Haas  

M doc/src/sgml/ref/alter_table.sgml
M src/backend/commands/tablecmds.c

Delete stray word from comment.

commit   : 8e1124eeeb128ef87045debfeb8f24cd6dbab874    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 14 Feb 2011 22:37:37 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 14 Feb 2011 22:37:37 -0500    

Click here for diff

M src/backend/commands/tablecmds.c

Rethink naming of contrib/intagg extension.

commit   : 74883d33730ecb69e6f4142deb8c5882af127b32    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 20:59:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 20:59:42 -0500    

Click here for diff

Initially it was called int_aggregate after the old SQL file, but since  
the documentation just says "intagg" and that's also the directory name,  
let's conform to that instead.  

M contrib/intagg/Makefile
D contrib/intagg/int_aggregate–unpackaged–1.0.sql
R095 contrib/intagg/int_aggregate–1.0.sql contrib/intagg/intagg–1.0.sql
A contrib/intagg/intagg–unpackaged–1.0.sql
R079 contrib/intagg/int_aggregate.control contrib/intagg/intagg.control

Additional required docs for pg_constraint catalog entry

commit   : 0ff1b7350984b9e4055e9d3a37d3b875c0663ac4    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:59:29 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:59:29 +0000    

Click here for diff

Noted by Bernd Helmle  

M doc/src/sgml/catalogs.sgml

PITR can stop at a named restore point when recovery target = time though must not update the last transaction timestamp. Plus comment and message cleanup for recent named restore point.

commit   : 5c588be729399af5cb8ec66901e3b578936823a3    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:51:39 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:51:39 +0000    

Click here for diff

Fujii Masao, minor changes by me  

M src/backend/access/transam/xlog.c

commit   : 01ff8dd7560f2647dccc3d70f713dd6b27bf843e    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 19:45:46 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 19:45:46 -0500    

Click here for diff

Untested, but we'll soon see if the buildfarm likes this.  

M src/tools/msvc/Install.pm

commit   : 555353c0c59ada35ae59c8a76186e98d123fa8b3    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 16:07:00 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 16:07:00 -0500    

Click here for diff

The original design of pg_available_extensions did not consider the  
possibility of version-specific control files.  Split it into two views:  
pg_available_extensions shows information that is generic about an  
extension, while pg_available_extension_versions shows all available  
versions together with information that could be version-dependent.  
Also, add an SRF pg_extension_update_paths() to assist in checking that  
a collection of update scripts provide sane update path sequences.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/extend.sgml
M src/backend/catalog/system_views.sql
M src/backend/commands/extension.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h
M src/test/regress/expected/rules.out

Small improvements to external-projects documentation.

commit   : cee103da14f470d29c47827b810da44cdab2a0d2    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 12:32:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 12:32:42 -0500    

Click here for diff

M doc/src/sgml/external-projects.sgml

Add version-sensitive SQL for psql when constraints NOT VALID Bug report and fix by Andres Freund

commit   : f0b8a79c4bea7bfa89245ee03abf994b027da411    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:08:15 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 15 Feb 2011 00:08:15 +0000    

Click here for diff

M src/bin/psql/describe.c

Fix obsolete references to old-style contrib installation methods.

commit   : f1fb4b0e63a677cdc86de667c75142b88a4edb65    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 01:10:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 14 Feb 2011 01:10:44 -0500    

Click here for diff

M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/contrib.sgml
M doc/src/sgml/dict-int.sgml
M doc/src/sgml/dict-xsyn.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/pgstatstatements.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/test-parser.sgml
M doc/src/sgml/tsearch2.sgml
M doc/src/sgml/unaccent.sgml

Remove no-longer-needed special case hacks in MSVC build scripts.

commit   : 2ee69ff65de6e8626784d4a263953158ef480ab4    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 23:42:13 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 23:42:13 -0500    

Click here for diff

M src/tools/msvc/Install.pm
M src/tools/msvc/Mkvcbuild.pm

More fixups for "unpackaged" conversion scripts.

commit   : de06cfe834dfff283deddfe1eb2945ba8a4fde2a    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 23:33:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 23:33:18 -0500    

Click here for diff

M contrib/sslinfo/sslinfo–unpackaged–1.0.sql
M contrib/xml2/xml2–unpackaged–1.0.sql

Assorted fixups for "unpackaged" conversion scripts.

commit   : 3b61e57f3c352ab97c6514898d46480b5725ebb9    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 22:53:00 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 22:53:00 -0500    

Click here for diff

From first pass of testing.  Notably, there seems to be no need for  
adminpack--unpackaged--1.0.sql because none of the objects that the  
old module creates would ever be dumped by pg_dump anyway (they are  
all in pg_catalog).  

M contrib/adminpack/Makefile
D contrib/adminpack/adminpack–unpackaged–1.0.sql
M contrib/fuzzystrmatch/fuzzystrmatch–unpackaged–1.0.sql
M contrib/pg_trgm/pg_trgm–unpackaged–1.0.sql
M contrib/tsearch2/tsearch2.control

Avoid use of CREATE OR REPLACE FUNCTION in extension installation files.

commit   : 029fac2264101919b65fb6319bb994f941969471    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 21:24:14 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 21:24:14 -0500    

Click here for diff

It was never terribly consistent to use OR REPLACE (because of the lack of  
comparable functionality for data types, operators, etc), and  
experimentation shows that it's now positively pernicious in the extension  
world.  We really want a failure to occur if there are any conflicts, else  
it's unclear what the extension-ownership state of the conflicted object  
ought to be.  Most of the time, CREATE EXTENSION will fail anyway because  
of conflicts on other object types, but an extension defining only  
functions can succeed, with bad results.  

M contrib/adminpack/adminpack–1.0.sql
M contrib/btree_gin/btree_gin–1.0.sql
M contrib/btree_gist/btree_gist–1.0.sql
M contrib/chkpass/chkpass–1.0.sql
M contrib/citext/citext–1.0.sql
M contrib/cube/cube–1.0.sql
M contrib/dblink/dblink–1.0.sql
M contrib/dict_int/dict_int–1.0.sql
M contrib/dict_xsyn/dict_xsyn–1.0.sql
M contrib/earthdistance/earthdistance–1.0.sql
M contrib/fuzzystrmatch/fuzzystrmatch–1.0.sql
M contrib/hstore/hstore–1.0.sql
M contrib/intagg/int_aggregate–1.0.sql
M contrib/intarray/intarray–1.0.sql
M contrib/isn/isn–1.0.sql
M contrib/lo/lo–1.0.sql
M contrib/ltree/ltree–1.0.sql
M contrib/pageinspect/pageinspect–1.0.sql
M contrib/pg_buffercache/pg_buffercache–1.0.sql
M contrib/pg_freespacemap/pg_freespacemap–1.0.sql
M contrib/pg_trgm/pg_trgm–1.0.sql
M contrib/pgcrypto/pgcrypto–1.0.sql
M contrib/pgrowlocks/pgrowlocks–1.0.sql
M contrib/pgstattuple/pgstattuple–1.0.sql
M contrib/seg/seg–1.0.sql
M contrib/spi/autoinc–1.0.sql
M contrib/spi/insert_username–1.0.sql
M contrib/spi/moddatetime–1.0.sql
M contrib/spi/refint–1.0.sql
M contrib/spi/timetravel–1.0.sql
M contrib/sslinfo/sslinfo–1.0.sql
M contrib/tablefunc/tablefunc–1.0.sql
M contrib/test_parser/test_parser–1.0.sql
M contrib/tsearch2/tsearch2–1.0.sql
M contrib/unaccent/unaccent–1.0.sql
M contrib/uuid-ossp/uuid-ossp–1.0.sql
M contrib/xml2/xml2–1.0.sql

Convert contrib modules to use the extension facility.

commit   : 629b3af27d5c2bc9d6e16b22b943ad651d4ecb56    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 20:06:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 20:06:41 -0500    

Click here for diff

This isn't fully tested as yet, in particular I'm not sure that the  
"foo--unpackaged--1.0.sql" scripts are OK.  But it's time to get some  
buildfarm cycles on it.  
  
sepgsql is not converted to an extension, mainly because it seems to  
require a very nonstandard installation process.  
  
Dimitri Fontaine and Tom Lane  

D contrib/adminpack/.gitignore
M contrib/adminpack/Makefile
R097 contrib/adminpack/adminpack.sql.in contrib/adminpack/adminpack–1.0.sql
A contrib/adminpack/adminpack–unpackaged–1.0.sql
A contrib/adminpack/adminpack.control
D contrib/adminpack/uninstall_adminpack.sql
M contrib/btree_gin/.gitignore
M contrib/btree_gin/Makefile
R099 contrib/btree_gin/btree_gin.sql.in contrib/btree_gin/btree_gin–1.0.sql
A contrib/btree_gin/btree_gin–unpackaged–1.0.sql
A contrib/btree_gin/btree_gin.control
M contrib/btree_gin/expected/install_btree_gin.out
M contrib/btree_gin/sql/install_btree_gin.sql
D contrib/btree_gin/uninstall_btree_gin.sql
M contrib/btree_gist/.gitignore
M contrib/btree_gist/Makefile
R099 contrib/btree_gist/btree_gist.sql.in contrib/btree_gist/btree_gist–1.0.sql
A contrib/btree_gist/btree_gist–unpackaged–1.0.sql
A contrib/btree_gist/btree_gist.control
M contrib/btree_gist/expected/init.out
M contrib/btree_gist/sql/init.sql
D contrib/btree_gist/uninstall_btree_gist.sql
D contrib/chkpass/.gitignore
M contrib/chkpass/Makefile
R088 contrib/chkpass/chkpass.sql.in contrib/chkpass/chkpass–1.0.sql
A contrib/chkpass/chkpass–unpackaged–1.0.sql
A contrib/chkpass/chkpass.control
D contrib/chkpass/uninstall_chkpass.sql
M contrib/citext/.gitignore
M contrib/citext/Makefile
R099 contrib/citext/citext.sql.in contrib/citext/citext–1.0.sql
A contrib/citext/citext–unpackaged–1.0.sql
A contrib/citext/citext.control
M contrib/citext/expected/citext.out
M contrib/citext/expected/citext_1.out
M contrib/citext/sql/citext.sql
D contrib/citext/uninstall_citext.sql
M contrib/cube/.gitignore
M contrib/cube/Makefile
R098 contrib/cube/cube.sql.in contrib/cube/cube–1.0.sql
A contrib/cube/cube–unpackaged–1.0.sql
A contrib/cube/cube.control
M contrib/cube/expected/cube.out
M contrib/cube/expected/cube_1.out
M contrib/cube/expected/cube_2.out
M contrib/cube/sql/cube.sql
D contrib/cube/uninstall_cube.sql
M contrib/dblink/.gitignore
M contrib/dblink/Makefile
R097 contrib/dblink/dblink.sql.in contrib/dblink/dblink–1.0.sql
A contrib/dblink/dblink–unpackaged–1.0.sql
A contrib/dblink/dblink.control
M contrib/dblink/expected/dblink.out
M contrib/dblink/sql/dblink.sql
D contrib/dblink/uninstall_dblink.sql
M contrib/dict_int/.gitignore
M contrib/dict_int/Makefile
R080 contrib/dict_int/dict_int.sql.in contrib/dict_int/dict_int–1.0.sql
A contrib/dict_int/dict_int–unpackaged–1.0.sql
A contrib/dict_int/dict_int.control
M contrib/dict_int/expected/dict_int.out
M contrib/dict_int/sql/dict_int.sql
D contrib/dict_int/uninstall_dict_int.sql
M contrib/dict_xsyn/.gitignore
M contrib/dict_xsyn/Makefile
R080 contrib/dict_xsyn/dict_xsyn.sql.in contrib/dict_xsyn/dict_xsyn–1.0.sql
A contrib/dict_xsyn/dict_xsyn–unpackaged–1.0.sql
A contrib/dict_xsyn/dict_xsyn.control
M contrib/dict_xsyn/expected/dict_xsyn.out
M contrib/dict_xsyn/sql/dict_xsyn.sql
D contrib/dict_xsyn/uninstall_dict_xsyn.sql
M contrib/earthdistance/.gitignore
M contrib/earthdistance/Makefile
R093 contrib/earthdistance/earthdistance.sql.in contrib/earthdistance/earthdistance–1.0.sql
A contrib/earthdistance/earthdistance–unpackaged–1.0.sql
A contrib/earthdistance/earthdistance.control
M contrib/earthdistance/expected/earthdistance.out
M contrib/earthdistance/sql/earthdistance.sql
D contrib/earthdistance/uninstall_earthdistance.sql
D contrib/fuzzystrmatch/.gitignore
M contrib/fuzzystrmatch/Makefile
R090 contrib/fuzzystrmatch/fuzzystrmatch.sql.in contrib/fuzzystrmatch/fuzzystrmatch–1.0.sql
A contrib/fuzzystrmatch/fuzzystrmatch–unpackaged–1.0.sql
A contrib/fuzzystrmatch/fuzzystrmatch.control
D contrib/fuzzystrmatch/uninstall_fuzzystrmatch.sql
M contrib/hstore/.gitignore
M contrib/hstore/Makefile
M contrib/hstore/expected/hstore.out
R099 contrib/hstore/hstore.sql.in contrib/hstore/hstore–1.0.sql
A contrib/hstore/hstore–unpackaged–1.0.sql
A contrib/hstore/hstore.control
M contrib/hstore/sql/hstore.sql
D contrib/hstore/uninstall_hstore.sql
M contrib/intagg/Makefile
R087 contrib/intagg/int_aggregate.sql contrib/intagg/int_aggregate–1.0.sql
A contrib/intagg/int_aggregate–unpackaged–1.0.sql
A contrib/intagg/int_aggregate.control
D contrib/intagg/uninstall_int_aggregate.sql
M contrib/intarray/.gitignore
M contrib/intarray/Makefile
M contrib/intarray/expected/_int.out
R098 contrib/intarray/_int.sql.in contrib/intarray/intarray–1.0.sql
A contrib/intarray/intarray–unpackaged–1.0.sql
A contrib/intarray/intarray.control
M contrib/intarray/sql/_int.sql
D contrib/intarray/uninstall__int.sql
D contrib/isn/.gitignore
M contrib/isn/Makefile
R099 contrib/isn/isn.sql.in contrib/isn/isn–1.0.sql
A contrib/isn/isn–unpackaged–1.0.sql
A contrib/isn/isn.control
D contrib/isn/uninstall_isn.sql
D contrib/lo/.gitignore
M contrib/lo/Makefile
R082 contrib/lo/lo.sql.in contrib/lo/lo–1.0.sql
A contrib/lo/lo–unpackaged–1.0.sql
A contrib/lo/lo.control
D contrib/lo/uninstall_lo.sql
M contrib/ltree/.gitignore
M contrib/ltree/Makefile
M contrib/ltree/expected/ltree.out
R099 contrib/ltree/ltree.sql.in contrib/ltree/ltree–1.0.sql
A contrib/ltree/ltree–unpackaged–1.0.sql
A contrib/ltree/ltree.control
M contrib/ltree/sql/ltree.sql
D contrib/ltree/uninstall_ltree.sql
D contrib/pageinspect/.gitignore
M contrib/pageinspect/Makefile
R094 contrib/pageinspect/pageinspect.sql.in contrib/pageinspect/pageinspect–1.0.sql
A contrib/pageinspect/pageinspect–unpackaged–1.0.sql
A contrib/pageinspect/pageinspect.control
D contrib/pageinspect/uninstall_pageinspect.sql
D contrib/pg_buffercache/.gitignore
M contrib/pg_buffercache/Makefile
R073 contrib/pg_buffercache/pg_buffercache.sql.in contrib/pg_buffercache/pg_buffercache–1.0.sql
A contrib/pg_buffercache/pg_buffercache–unpackaged–1.0.sql
A contrib/pg_buffercache/pg_buffercache.control
D contrib/pg_buffercache/uninstall_pg_buffercache.sql
D contrib/pg_freespacemap/.gitignore
M contrib/pg_freespacemap/Makefile
R082 contrib/pg_freespacemap/pg_freespacemap.sql.in contrib/pg_freespacemap/pg_freespacemap–1.0.sql
A contrib/pg_freespacemap/pg_freespacemap–unpackaged–1.0.sql
A contrib/pg_freespacemap/pg_freespacemap.control
D contrib/pg_freespacemap/uninstall_pg_freespacemap.sql
D contrib/pg_stat_statements/.gitignore
M contrib/pg_stat_statements/Makefile
R085 contrib/pg_stat_statements/pg_stat_statements.sql.in contrib/pg_stat_statements/pg_stat_statements–1.0.sql
A contrib/pg_stat_statements/pg_stat_statements–unpackaged–1.0.sql
A contrib/pg_stat_statements/pg_stat_statements.control
D contrib/pg_stat_statements/uninstall_pg_stat_statements.sql
M contrib/pg_test_fsync/Makefile
M contrib/pg_trgm/.gitignore
M contrib/pg_trgm/Makefile
M contrib/pg_trgm/expected/pg_trgm.out
R097 contrib/pg_trgm/pg_trgm.sql.in contrib/pg_trgm/pg_trgm–1.0.sql
A contrib/pg_trgm/pg_trgm–unpackaged–1.0.sql
A contrib/pg_trgm/pg_trgm.control
M contrib/pg_trgm/sql/pg_trgm.sql
D contrib/pg_trgm/uninstall_pg_trgm.sql
M contrib/pg_upgrade/Makefile
M contrib/pg_upgrade_support/Makefile
M contrib/pgcrypto/.gitignore
M contrib/pgcrypto/Makefile
M contrib/pgcrypto/expected/init.out
R097 contrib/pgcrypto/pgcrypto.sql.in contrib/pgcrypto/pgcrypto–1.0.sql
A contrib/pgcrypto/pgcrypto–unpackaged–1.0.sql
A contrib/pgcrypto/pgcrypto.control
M contrib/pgcrypto/sql/init.sql
D contrib/pgcrypto/uninstall_pgcrypto.sql
D contrib/pgrowlocks/.gitignore
M contrib/pgrowlocks/Makefile
R072 contrib/pgrowlocks/pgrowlocks.sql.in contrib/pgrowlocks/pgrowlocks–1.0.sql
A contrib/pgrowlocks/pgrowlocks–unpackaged–1.0.sql
A contrib/pgrowlocks/pgrowlocks.control
D contrib/pgrowlocks/uninstall_pgrowlocks.sql
D contrib/pgstattuple/.gitignore
M contrib/pgstattuple/Makefile
R092 contrib/pgstattuple/pgstattuple.sql.in contrib/pgstattuple/pgstattuple–1.0.sql
A contrib/pgstattuple/pgstattuple–unpackaged–1.0.sql
A contrib/pgstattuple/pgstattuple.control
D contrib/pgstattuple/uninstall_pgstattuple.sql
M contrib/seg/.gitignore
M contrib/seg/Makefile
M contrib/seg/expected/seg.out
M contrib/seg/expected/seg_1.out
R098 contrib/seg/seg.sql.in contrib/seg/seg–1.0.sql
A contrib/seg/seg–unpackaged–1.0.sql
A contrib/seg/seg.control
M contrib/seg/sql/seg.sql
D contrib/seg/uninstall_seg.sql
D contrib/spi/.gitignore
M contrib/spi/Makefile
A contrib/spi/autoinc–1.0.sql
A contrib/spi/autoinc–unpackaged–1.0.sql
A contrib/spi/autoinc.control
D contrib/spi/autoinc.sql.in
A contrib/spi/insert_username–1.0.sql
A contrib/spi/insert_username–unpackaged–1.0.sql
A contrib/spi/insert_username.control
D contrib/spi/insert_username.sql.in
A contrib/spi/moddatetime–1.0.sql
A contrib/spi/moddatetime–unpackaged–1.0.sql
A contrib/spi/moddatetime.control
D contrib/spi/moddatetime.sql.in
R061 contrib/spi/refint.sql.in contrib/spi/refint–1.0.sql
A contrib/spi/refint–unpackaged–1.0.sql
A contrib/spi/refint.control
R072 contrib/spi/timetravel.sql.in contrib/spi/timetravel–1.0.sql
A contrib/spi/timetravel–unpackaged–1.0.sql
A contrib/spi/timetravel.control
D contrib/sslinfo/.gitignore
M contrib/sslinfo/Makefile
R089 contrib/sslinfo/sslinfo.sql.in contrib/sslinfo/sslinfo–1.0.sql
A contrib/sslinfo/sslinfo–unpackaged–1.0.sql
A contrib/sslinfo/sslinfo.control
D contrib/sslinfo/uninstall_sslinfo.sql
M contrib/tablefunc/.gitignore
M contrib/tablefunc/Makefile
M contrib/tablefunc/expected/tablefunc.out
M contrib/tablefunc/sql/tablefunc.sql
R094 contrib/tablefunc/tablefunc.sql.in contrib/tablefunc/tablefunc–1.0.sql
A contrib/tablefunc/tablefunc–unpackaged–1.0.sql
A contrib/tablefunc/tablefunc.control
D contrib/tablefunc/uninstall_tablefunc.sql
M contrib/test_parser/.gitignore
M contrib/test_parser/Makefile
M contrib/test_parser/expected/test_parser.out
M contrib/test_parser/sql/test_parser.sql
R083 contrib/test_parser/test_parser.sql.in contrib/test_parser/test_parser–1.0.sql
A contrib/test_parser/test_parser–unpackaged–1.0.sql
A contrib/test_parser/test_parser.control
D contrib/test_parser/uninstall_test_parser.sql
M contrib/tsearch2/.gitignore
M contrib/tsearch2/Makefile
M contrib/tsearch2/expected/tsearch2.out
M contrib/tsearch2/expected/tsearch2_1.out
M contrib/tsearch2/sql/tsearch2.sql
R099 contrib/tsearch2/tsearch2.sql.in contrib/tsearch2/tsearch2–1.0.sql
A contrib/tsearch2/tsearch2–unpackaged–1.0.sql
A contrib/tsearch2/tsearch2.control
D contrib/tsearch2/uninstall_tsearch2.sql
M contrib/unaccent/.gitignore
M contrib/unaccent/Makefile
M contrib/unaccent/expected/unaccent.out
M contrib/unaccent/sql/unaccent.sql
R084 contrib/unaccent/unaccent.sql.in contrib/unaccent/unaccent–1.0.sql
A contrib/unaccent/unaccent–unpackaged–1.0.sql
A contrib/unaccent/unaccent.control
D contrib/unaccent/uninstall_unaccent.sql
D contrib/uuid-ossp/.gitignore
M contrib/uuid-ossp/Makefile
D contrib/uuid-ossp/uninstall_uuid-ossp.sql
R090 contrib/uuid-ossp/uuid-ossp.sql.in contrib/uuid-ossp/uuid-ossp–1.0.sql
A contrib/uuid-ossp/uuid-ossp–unpackaged–1.0.sql
A contrib/uuid-ossp/uuid-ossp.control
M contrib/xml2/.gitignore
M contrib/xml2/Makefile
M contrib/xml2/expected/xml2.out
M contrib/xml2/expected/xml2_1.out
M contrib/xml2/sql/xml2.sql
D contrib/xml2/uninstall_pgxml.sql
R093 contrib/xml2/pgxml.sql.in contrib/xml2/xml2–1.0.sql
A contrib/xml2/xml2–unpackaged–1.0.sql
A contrib/xml2/xml2.control

Support replacing MODULE_PATHNAME during extension script file execution.

commit   : e693e97d754ed6812ea115170afeae4bf8797d3f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 13:38:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 13:38:05 -0500    

Click here for diff

This avoids the need to find a way to make PGXS' .sql.in-to-.sql rule  
insert the right thing.  We'll just deprecate use of that hack for  
extensions.  

M doc/src/sgml/extend.sgml
M src/backend/commands/extension.c

Change the naming convention for extension files to use double dashes.

commit   : 27d5d7ab10086d833e3df251951cf63c392b8bca    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 13:03:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 13 Feb 2011 13:03:41 -0500    

Click here for diff

This allows us to have an unambiguous rule for deconstructing the names  
of script files and secondary control files, without having to forbid  
extension and version names from containing any dashes.  We do have to  
forbid them from containing double dashes or leading/trailing dashes,  
but neither restriction is likely to bother anyone in practice.  
Per discussion, this seems like a better solution overall than the  
original design.  

M doc/src/sgml/extend.sgml
M src/backend/commands/extension.c

Clarify documentation for libpq's PQescapeBytea to mention the new hex format.

commit   : 5569ae52ae206b3e35411df435884cf848ae0494    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 09:29:01 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 09:29:01 -0500    

Click here for diff

Modify PQescapeStringConn() docs to be consisent with other escaping  
functions.  
  
Add mention problems with pre-9.0 versions of libpq using not understanding  
bytea hex format to the 9.0 release notes.  
  
Backpatch to 9.0 docs.  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/release-9.0.sgml

Back out libpq doc change; not ready yet.

commit   : cebbaa1d5d2729c1b9dde0b472b4b034ef2f44b0    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 00:17:55 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 00:17:55 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml
M doc/src/sgml/release-9.0.sgml

Fix reverse 'if' test in path_is_relative_and_below_cwd(), per Tom.

commit   : 8e7af608722a25376d31c40e4bd9916e932bc3ca    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 00:14:08 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 13 Feb 2011 00:14:08 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml
M doc/src/sgml/release-9.0.sgml
M src/port/path.c

Refactor ALTER EXTENSION UPDATE to have cleaner multi-step semantics.

commit   : 6c2e734f0a07e57c2837543416f5987ec91d0839    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 12 Feb 2011 16:40:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 12 Feb 2011 16:40:41 -0500    

Click here for diff

This change causes a multi-step update sequence to behave exactly as if the  
updates had been commanded one at a time, including updating the "requires"  
dependencies afresh at each step.  The initial implementation took the  
shortcut of examining only the final target version's "requires" and  
changing the catalog entry but once.  But on reflection that's a bad idea,  
since it could lead to executing old update scripts under conditions  
different than they were designed/tested for.  Better to expend a few extra  
cycles and avoid any surprises.  
  
In the same spirit, if a CREATE EXTENSION FROM operation involves applying  
a series of update files, it will act as though the CREATE had first been  
done using the initial script's target version and then the additional  
scripts were invoked with ALTER EXTENSION UPDATE.  
  
I also removed the restriction about not changing encoding in secondary  
control files.  The new rule is that a script is assumed to be in whatever  
encoding the control file(s) specify for its target version.  Since this  
reimplementation causes us to read each intermediate version's control  
file, there's no longer any uncertainty about which encoding setting would  
get applied.  

M doc/src/sgml/extend.sgml
M src/backend/commands/extension.c

Properly handle Win32 paths of 'E:abc', which can be either absolute or relative, by creating a function path_is_relative_and_below_cwd() to check for specific requirements. It is unclear if this fixes a security problem or not but the new code is more robust.

commit   : 0de0cc150af46122238f2fe03605bf14e1a7c276    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 12 Feb 2011 09:47:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 12 Feb 2011 09:47:51 -0500    

Click here for diff

M contrib/adminpack/adminpack.c
M src/backend/utils/adt/genfile.c
M src/include/port.h
M src/port/path.c

DDL support for collations

commit   : b313bca0afce3ab9dab0a77c64c0982835854b9a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 12 Feb 2011 15:54:13 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 12 Feb 2011 15:54:13 +0200    

Click here for diff

- collowner field  
- CREATE COLLATION  
- ALTER COLLATION  
- DROP COLLATION  
- COMMENT ON COLLATION  
- integration with extensions  
- pg_dump support for the above  
- dependency management  
- psql tab completion  
- psql \dO command  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/ref/allfiles.sgml
A doc/src/sgml/ref/alter_collation.sgml
M doc/src/sgml/ref/alter_extension.sgml
M doc/src/sgml/ref/comment.sgml
A doc/src/sgml/ref/create_collation.sgml
A doc/src/sgml/ref/drop_collation.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/reference.sgml
M src/backend/catalog/Makefile
M src/backend/catalog/aclchk.c
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/objectaddress.c
A src/backend/catalog/pg_collation.c
M src/backend/catalog/pg_shdepend.c
M src/backend/catalog/pg_type.c
M src/backend/commands/Makefile
M src/backend/commands/alter.c
A src/backend/commands/collationcmds.c
M src/backend/commands/comment.c
M src/backend/commands/dbcommands.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/bin/initdb/initdb.c
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dump_sort.c
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/dependency.h
M src/include/catalog/pg_collation.h
A src/include/catalog/pg_collation_fn.h
M src/include/catalog/pg_type_fn.h
A src/include/commands/collationcmds.h
M src/include/commands/dbcommands.h
M src/include/nodes/parsenodes.h
M src/include/parser/kwlist.h
M src/include/utils/acl.h
M src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/sql/collate.linux.utf8.sql

Teach ALTER TABLE .. SET DATA TYPE to avoid some table rewrites.

commit   : d31e2a495b6f2127afc31b4da2e5f4e89aa2cdfe    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 12 Feb 2011 08:27:55 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 12 Feb 2011 08:27:55 -0500    

Click here for diff

When the old type is binary coercible to the new type and the using  
clause does not change the column contents, we can avoid a full table  
rewrite, though any indexes on the affected columns will still need  
to be rebuilt.  This applies, for example, when changing a varchar  
column to be of type text.  
  
The prior coding assumed that the set of operations that force a  
rewrite is identical to the set of operations that must be propagated  
to tables making use of the affected table's rowtype.  This is  
no longer true: even though the tuples in those tables wouldn't  
need to be modified, the data type change invalidate indexes built  
using those composite type columns.  Indexes on the table we're  
actually modifying can be invalidated too, of course, but the  
existing machinery is sufficient to handle that case.  
  
Along the way, add some debugging messages that make it possible  
to understand what operations ALTER TABLE is actually performing  
in these cases.  
  
Noah Misch and Robert Haas  

M doc/src/sgml/ref/alter_table.sgml
M src/backend/catalog/index.c
M src/backend/commands/tablecmds.c

Clean up installation directory choices for extensions.

commit   : 24d1280c4d75038f130495a25844c60d6810faab    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Feb 2011 22:53:43 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Feb 2011 22:53:43 -0500    

Click here for diff

Arrange for the control files to be in $SHAREDIR/extension not  
$SHAREDIR/contrib, since we're generally trying to deprecate the term  
"contrib" and this is a once-in-many-moons opportunity to get rid of it in  
install paths.  Fix PGXS to install the $EXTENSION file into that directory  
no matter what MODULEDIR is set to; a nondefault MODULEDIR should only  
affect the script and secondary extension files.  Fix the control file  
directory parameter to be interpreted relative to $SHAREDIR, to avoid a  
surprising disconnect between how you specify that and what you set  
MODULEDIR to.  
  
Per discussion with David Wheeler.  

M doc/src/sgml/extend.sgml
M doc/src/sgml/ref/create_extension.sgml
M src/backend/commands/extension.c
M src/makefiles/pgxs.mk

Add support for multiple versions of an extension and ALTER EXTENSION UPDATE.

commit   : 1214749901fc3c66732cfd9f276b989635c01360    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 11 Feb 2011 21:25:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 11 Feb 2011 21:25:20 -0500    

Click here for diff

This follows recent discussions, so it's quite a bit different from  
Dimitri's original.  There will probably be more changes once we get a bit  
of experience with it, but let's get it in and start playing with it.  
  
This is still just core code.  I'll start converting contrib modules  
shortly.  
  
Dimitri Fontaine and Tom Lane  

M contrib/pg_upgrade_support/pg_upgrade_support.c
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/ref/alter_extension.sgml
M doc/src/sgml/ref/create_extension.sgml
M src/backend/commands/extension.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/tab-complete.c
M src/include/catalog/pg_extension.h
M src/include/commands/extension.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h

Fix comment recently obsoleted

commit   : 60141eefaf28e4ff5e406952740423dd6fd16266    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 11 Feb 2011 19:42:15 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 11 Feb 2011 19:42:15 -0300    

Click here for diff

M src/backend/parser/parse_type.c

Allow tab-completion of :variable even as first word on a line.

commit   : 5917574539732a6e521a6dc260fcd7c9a258d89e    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 16:57:58 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 16:57:58 -0500    

Click here for diff

Christoph Berg  

M src/bin/psql/tab-complete.c

Typo fixes. receivedUpto should be capitalized consistently.

commit   : d309acf201ab2c5bbd1f6a5d51e4a8060eb6a63c    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 11:55:12 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 11:55:12 -0500    

Click here for diff

M src/backend/replication/README
M src/backend/replication/walreceiver.c

Tweak find_composite_type_dependencies API a bit more.

commit   : 2c20ba1fd284423e4652f2f6855d257339245e97    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 08:47:38 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 11 Feb 2011 08:47:38 -0500    

Click here for diff

Per discussion with Noah Misch, the previous coding, introduced by  
my commit 65377e0b9c0e0397b1598b38b6a7fb8b6f740d39 on 2011-02-06,  
was really an abuse of RELKIND_COMPOSITE_TYPE, since the caller in  
typecmds.c is actually passing the name of a domain.  So go back  
having a type name argument, but make the first argument a Relation  
rather than just a string so we can tell whether it's a table or  
a foreign table and emit the proper error message.  

M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/include/commands/tablecmds.h

Fix isolation tester Makefile so that it runs in a VPATH build

commit   : 61cf7bcdf76a2a32d2400a116c8da48d5fd4d3a2    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 10 Feb 2011 19:47:57 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 10 Feb 2011 19:47:57 -0300    

Click here for diff

M src/test/isolation/Makefile
M src/test/isolation/README

Extend "ALTER EXTENSION ADD object" to permit "DROP object" as well.

commit   : 01467d3e4f51fe304c0160c9895484ad696d1e87    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 10 Feb 2011 17:36:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 10 Feb 2011 17:36:44 -0500    

Click here for diff

Per discussion, this is something we should have sooner rather than later,  
and it doesn't take much additional code to support it.  

M doc/src/sgml/ref/alter_extension.sgml
M src/backend/catalog/pg_depend.c
M src/backend/commands/extension.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/bin/psql/tab-complete.c
M src/include/catalog/dependency.h
M src/include/commands/extension.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h

Fix the isolation tester compilation on VPATH builds

commit   : 289d7306555b2446d145c7e098c91b6ca20bd54c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 10 Feb 2011 19:30:57 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 10 Feb 2011 19:30:57 -0300    

Click here for diff

M src/test/isolation/Makefile

Fix "variable not used" warnings when USE_WIDE_UPPER_LOWER is not defined.

commit   : 135724ec357f9b9c8800567444724c72da2cc6be    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Feb 2011 16:57:25 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Feb 2011 16:57:25 -0500    

Click here for diff

M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/wparser_def.c

Update comment

commit   : ff81aa3eda4d754cd341ab0e4e78790ed4a6d250    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 10 Feb 2011 22:49:46 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 10 Feb 2011 22:49:46 +0200    

Click here for diff

It was still claiming that the keyword list is in keywords.c, when it  
is now in kwlist.h.  

M src/backend/parser/gram.y

Fix pg_get_encoding_from_locale() function call parameters to match prototype for cases where there is no multi-language support.

commit   : 2432d10bf243ad0ca9b5ccc2816e4e38e1d80b5e    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 10 Feb 2011 15:39:41 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 10 Feb 2011 15:39:41 -0500    

Click here for diff

M src/port/chklocale.c

Send status updates back from standby server to master, indicating how far the standby has written, flushed, and applied the WAL. At the moment, this is for informational purposes only, the values are only shown in pg_stat_replication system view, but in the future they will also be needed for synchronous replication.

commit   : b186523fd97ce02ffbb7e21d5385a047deeef4f6    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Feb 2011 21:00:29 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Feb 2011 21:00:29 +0200    

Click here for diff

Extracted from Simon riggs' synchronous replication patch by Robert Haas, with  
some tweaking by me.  

M doc/src/sgml/config.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/protocol.sgml
M src/backend/access/transam/xlog.c
M src/backend/catalog/system_views.sql
M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/access/xlog.h
M src/include/catalog/pg_proc.h
M src/include/replication/walprotocol.h
M src/include/replication/walreceiver.h
M src/include/replication/walsender.h
M src/test/regress/expected/rules.out

Track last time for statistics reset on databases and bgwriter

commit   : 4c468b37a281941afd3bf61c782b20def8c17047    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 10 Feb 2011 15:09:35 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 10 Feb 2011 15:09:35 +0100    

Click here for diff

Tracks one counter for each database, which is reset whenever  
the statistics for any individual object inside the database is  
reset, and one counter for the background writer.  
  
Tomas Vondra, reviewed by Greg Smith  

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/pgstat.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/pgstat.h
M src/test/regress/expected/rules.out

Use NOWAIT when including WAL in base backup

commit   : a2e61ec31999228a3bb66a6a86f9e75beb6bb155    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 10 Feb 2011 12:10:13 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 10 Feb 2011 12:10:13 +0100    

Click here for diff

Avoids warning and waiting for the last segment to be  
archived, which isn't necessary when we're including the  
required WAL in the backup itself.  

M src/bin/pg_basebackup/pg_basebackup.c

Allocate all entries in the serializable xid hash up-front, so that you don't run out of shared memory when you try to assign an xid to a transaction.

commit   : cecb5901b8bb8b9eba140cda96e0d9a83607e6fa    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Feb 2011 12:00:53 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 10 Feb 2011 12:00:53 +0200    

Click here for diff

Kevin Grittner  

M src/backend/storage/lmgr/predicate.c

Use correct name and URL for MinGW-w64, error noticed by Gurjeet Singh.

commit   : 2ad0348677aebe36260b30fee22892e6519ee7d8    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 10 Feb 2011 04:47:32 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 10 Feb 2011 04:47:32 -0500    

Click here for diff

M doc/src/sgml/install-windows.sgml
M doc/src/sgml/installation.sgml

Fix improper matching of resjunk column names for FOR UPDATE in subselect.

commit   : e617f0d7e4084f85104361568ef5f865ebfa0005    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 23:27:07 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 23:27:07 -0500    

Click here for diff

Flattening of subquery range tables during setrefs.c could lead to the  
rangetable indexes in PlanRowMark nodes not matching up with the column  
names previously assigned to the corresponding resjunk ctid (resp. tableoid  
or wholerow) columns.  Typical symptom would be either a "cannot extract  
system attribute from virtual tuple" error or an Assert failure.  This  
wasn't a problem before 9.0 because we didn't support FOR UPDATE below the  
top query level, and so the final flattening could never renumber an RTE  
that was relevant to FOR UPDATE.  Fix by using a plan-tree-wide unique  
number for each PlanRowMark to label the associated resjunk columns, so  
that the number need not change during flattening.  
  
Per report from David Johnston (though I'm darned if I can see how this got  
past initial testing of the relevant code).  Back-patch to 9.0.  

M src/backend/executor/execMain.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/include/nodes/execnodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/relation.h

Fix typo in the documentation.

commit   : 5478f991c9f73066d27d75b31876f9977af61db5    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 10 Feb 2011 10:58:18 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 10 Feb 2011 10:58:18 +0900    

Click here for diff

by Kevin Grittner  

M doc/src/sgml/mvcc.sgml

Fix pg_upgrade to handle extensions.

commit   : caddcb8f4b96ce48b612e7c987ecde654d624616    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 19:17:33 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 19:17:33 -0500    

Click here for diff

This follows my proposal of yesterday, namely that we try to recreate the  
previous state of the extension exactly, instead of allowing CREATE  
EXTENSION to run a SQL script that might create some entirely-incompatible  
on-disk state.  In --binary-upgrade mode, pg_dump won't issue CREATE  
EXTENSION at all, but instead uses a kluge function provided by  
pg_upgrade_support to recreate the pg_extension row (and extension-level  
pg_depend entries) without creating any member objects.  The member objects  
are then restored in the same way as if they weren't members, in particular  
using pg_upgrade's normal hacks to preserve OIDs that need to be preserved.  
Then, for each member object, ALTER EXTENSION ADD is issued to recreate the  
pg_depend entry that marks it as an extension member.  
  
In passing, fix breakage in pg_upgrade's enum-type support: somebody didn't  
fix it when the noise word VALUE got added to ALTER TYPE ADD.  Also,  
rationalize parsetree representation of COMMENT ON DOMAIN and fix  
get_object_address() to allow OBJECT_DOMAIN.  

M contrib/pg_upgrade/function.c
M contrib/pg_upgrade_support/pg_upgrade_support.c
M src/backend/catalog/objectaddress.c
M src/backend/commands/comment.c
M src/backend/commands/extension.c
M src/backend/parser/gram.y
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/include/commands/extension.h

Information schema views for collation support

commit   : 2e2d56fea97f43cf8c40a87143bc10356e4ed4d4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 9 Feb 2011 23:26:48 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 9 Feb 2011 23:26:48 +0200    

Click here for diff

Add the views character_sets, collations, and  
collation_character_set_applicability.  

M doc/src/sgml/information_schema.sgml
M src/backend/catalog/information_schema.sql
M src/include/catalog/catversion.h

Rethink order of operations for dumping extension member objects.

commit   : 183d3cff850eee12357b8b4a8c5e62362ba5d8cc    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 14:05:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 14:05:34 -0500    

Click here for diff

My original idea of doing extension member identification during  
getDependencies() didn't work correctly: we have to mark member tables as  
not-to-be-dumped rather earlier than that, else their subsidiary objects  
like indexes get dumped anyway.  Rearrange code to mark them early enough.  

M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h

Implement "ALTER EXTENSION ADD object".

commit   : 5bc178b89f3ab93fb3845a941769c212f5eeaf1a    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 11:55:32 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 9 Feb 2011 11:55:32 -0500    

Click here for diff

This is an essential component of making the extension feature usable;  
first because it's needed in the process of converting an existing  
installation containing "loose" objects of an old contrib module into  
the extension-based world, and second because we'll have to use it  
in pg_dump --binary-upgrade, as per recent discussion.  
  
Loosely based on part of Dimitri Fontaine's ALTER EXTENSION UPGRADE  
patch.  

M doc/src/sgml/extend.sgml
M doc/src/sgml/ref/alter_extension.sgml
M src/backend/commands/extension.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/include/commands/extension.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h

Remove more SGML tabs.

commit   : 70802e0dbef0af4bf73ce25489b8be6e40eca2be    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Feb 2011 08:16:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Feb 2011 08:16:49 -0500    

Click here for diff

M doc/src/sgml/recovery-config.sgml

Remove tabs in SGML file.

commit   : ee4b67fcff9cce85812639b3a0ef14f5bcf85f99    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 9 Feb 2011 08:15:38 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 9 Feb 2011 08:15:38 -0500    

Click here for diff

M doc/src/sgml/recovery-config.sgml

Fix allocation of RW-conflict pool in the new predicate lock manager, and also take the RW-conflict pool into account in the PredicateLockShmemSize() estimate.

commit   : 036bb15872fa52f6f403ca22d36a8652bbaf9d3c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 9 Feb 2011 12:15:08 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 9 Feb 2011 12:15:08 +0200    

Click here for diff

M src/backend/storage/lmgr/predicate.c

Implement NOWAIT option for BASE_BACKUP command

commit   : 3144c33a2f764610d7ad56f1b82e9716d0d65447    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 9 Feb 2011 10:59:53 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 9 Feb 2011 10:59:53 +0100    

Click here for diff

Specifying this option makes the server not wait for the  
xlog to be archived, or emit a warning that it can't,  
instead leaving the responsibility with the client.  
  
This is useful when the log is being streamed using  
the streaming protocol in parallel with the backup,  
without having log archiving enabled.  

M doc/src/sgml/protocol.sgml
M src/backend/access/transam/xlog.c
M src/backend/replication/basebackup.c
M src/backend/replication/repl_gram.y
M src/backend/replication/repl_scanner.l
M src/include/access/xlog.h

Suppress some compiler warnings in recent commits.

commit   : 375e5b0a687570eb41fb9e9fda9e5d6992fccffa    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 18:12:17 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 18:12:17 -0500    

Click here for diff

Older versions of gcc tend to throw "variable might be clobbered by  
`longjmp' or `vfork'" warnings whenever a variable is assigned in more than  
one place and then used after the end of a PG_TRY block.  That's reasonably  
easy to work around in execute_extension_script, and the overhead of  
unconditionally saving/restoring the GUC variables seems unlikely to be a  
serious concern.  
  
Also clean up logic in ATExecValidateConstraint to make it easier to read  
and less likely to provoke "variable might be used uninitialized in this  
function" warnings.  

M src/backend/commands/extension.c
M src/backend/commands/tablecmds.c

Fix merge conflict.

commit   : 0bc0bd07d41169d6de513967615ad9cb3d0f322e    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 16:22:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 16:22:20 -0500    

Click here for diff

M src/test/regress/expected/sanity_check.out

Core support for "extensions", which are packages of SQL objects.

commit   : d9572c4e3b474031060189050e14ef384b94e001    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 16:08:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 8 Feb 2011 16:08:41 -0500    

Click here for diff

This patch adds the server infrastructure to support extensions.  
There is still one significant loose end, namely how to make it play nice  
with pg_upgrade, so I am not yet committing the changes that would make  
all the contrib modules depend on this feature.  
  
In passing, fix a disturbingly large amount of breakage in  
AlterObjectNamespace() and callers.  
  
Dimitri Fontaine, reviewed by Anssi Kääriäinen,  
Itagaki Takahiro, Tom Lane, and numerous others  

M doc/src/sgml/acronyms.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/ref/allfiles.sgml
A doc/src/sgml/ref/alter_extension.sgml
M doc/src/sgml/ref/comment.sgml
A doc/src/sgml/ref/create_extension.sgml
A doc/src/sgml/ref/drop_extension.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/reference.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/xfunc.sgml
M src/backend/catalog/Makefile
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/catalog/objectaddress.c
M src/backend/catalog/pg_conversion.c
M src/backend/catalog/pg_depend.c
M src/backend/catalog/pg_namespace.c
M src/backend/catalog/pg_operator.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/system_views.sql
M src/backend/commands/Makefile
M src/backend/commands/alter.c
M src/backend/commands/cluster.c
M src/backend/commands/comment.c
M src/backend/commands/conversioncmds.c
A src/backend/commands/extension.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/proclang.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/typecmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/rewrite/rewriteDefine.c
M src/backend/tcop/utility.c
M src/backend/utils/adt/genfile.c
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dump_sort.c
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/dependency.h
M src/include/catalog/indexing.h
A src/include/catalog/pg_extension.h
M src/include/catalog/pg_proc.h
M src/include/commands/alter.h
M src/include/commands/conversioncmds.h
M src/include/commands/defrem.h
A src/include/commands/extension.h
M src/include/commands/typecmds.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/parser/kwlist.h
M src/include/utils/builtins.h
M src/makefiles/pgxs.mk
M src/test/regress/expected/rules.out
M src/test/regress/expected/sanity_check.out

Per-column collation support

commit   : 414c5a2ea65cbd38d79ffdf9b1fde7cc75c134e0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 8 Feb 2011 23:04:18 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 8 Feb 2011 23:04:18 +0200    

Click here for diff

This adds collation support for columns and domains, a COLLATE clause  
to override it per expression, and B-tree index support.  
  
Peter Eisentraut  
reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch  

M config/c-library.m4
M configure
M configure.in
M contrib/btree_gin/btree_gin.c
M contrib/btree_gist/btree_text.c
M contrib/btree_gist/btree_utils_var.c
M contrib/citext/citext.c
M contrib/citext/citext.sql.in
M contrib/ltree/lquery_op.c
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/indices.sgml
M doc/src/sgml/ref/create_domain.sgml
M doc/src/sgml/ref/create_index.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_type.sgml
M doc/src/sgml/regress.sgml
M doc/src/sgml/syntax.sgml
M src/backend/access/common/scankey.c
M src/backend/access/common/tupdesc.c
M src/backend/access/gin/ginutil.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/bootstrap/bootstrap.c
M src/backend/catalog/Makefile
M src/backend/catalog/genbki.pl
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/namespace.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/system_views.sql
M src/backend/catalog/toasting.c
M src/backend/commands/analyze.c
M src/backend/commands/dbcommands.c
M src/backend/commands/functioncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/seclabel.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/executor/execQual.c
M src/backend/executor/execTuples.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeFunctionscan.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeMergeAppend.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeSort.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/plancat.c
M src/backend/optimizer/util/predtest.c
M src/backend/parser/analyze.c
M src/backend/parser/gram.y
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_param.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_type.c
M src/backend/parser/parse_utilcmd.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/format_type.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/like.c
M src/backend/utils/adt/oracle_compat.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/varchar.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/relcache.c
M src/backend/utils/cache/syscache.c
M src/backend/utils/errcodes.txt
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/fmgr/funcapi.c
M src/backend/utils/mb/mbutils.c
M src/backend/utils/sort/tuplesort.c
M src/bin/initdb/initdb.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/describe.c
M src/include/access/skey.h
M src/include/access/tupdesc.h
M src/include/catalog/catversion.h
M src/include/catalog/index.h
M src/include/catalog/indexing.h
M src/include/catalog/namespace.h
M src/include/catalog/pg_attribute.h
M src/include/catalog/pg_class.h
A src/include/catalog/pg_collation.h
M src/include/catalog/pg_index.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_type.h
M src/include/catalog/pg_type_fn.h
M src/include/commands/vacuum.h
M src/include/fmgr.h
M src/include/mb/pg_wchar.h
M src/include/nodes/makefuncs.h
M src/include/nodes/nodeFuncs.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/nodes/pg_list.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/relation.h
M src/include/optimizer/subselect.h
M src/include/parser/parse_agg.h
M src/include/parser/parse_coerce.h
M src/include/parser/parse_node.h
M src/include/parser/parse_type.h
M src/include/parser/parsetree.h
M src/include/pg_config.h.in
M src/include/port.h
M src/include/utils/builtins.h
M src/include/utils/formatting.h
M src/include/utils/lsyscache.h
M src/include/utils/pg_locale.h
M src/include/utils/rel.h
M src/include/utils/selfuncs.h
M src/include/utils/syscache.h
M src/include/utils/tuplesort.h
M src/pl/plpgsql/src/pl_comp.c
M src/port/chklocale.c
M src/test/regress/GNUmakefile
A src/test/regress/expected/collate.linux.utf8.out
M src/test/regress/expected/sanity_check.out
A src/test/regress/sql/collate.linux.utf8.sql

Fix typo, by Kevin Grittner.

commit   : 1703f0e8da2e8e3eccb6e12879c011ba106f8a62    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 21:47:38 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 21:47:38 +0200    

Click here for diff

M doc/src/sgml/mvcc.sgml

Continue long tradition of bumping the catalog version a little late.

commit   : 7a7d36ec3363d10e0450209a9b451d86a2328b47    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 19:44:50 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 19:44:50 +0000    

Click here for diff

M src/include/catalog/catversion.h

Named restore points in recovery. Users can record named points, then new recovery.conf parameter recovery_target_name allows PITR to specify named points as recovery targets.

commit   : c016ce728139be95bb0dc7c4e5640507334c2339    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 19:39:08 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 19:39:08 +0000    

Click here for diff

Jaime Casanova, reviewed by Euler Taveira de Oliveira, plus minor edits  

M doc/src/sgml/backup.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/recovery-config.sgml
M src/backend/access/transam/recovery.conf.sample
M src/backend/access/transam/xlog.c
M src/include/access/xlog.h
M src/include/access/xlog_internal.h
M src/include/catalog/pg_control.h
M src/include/catalog/pg_proc.h

Basic Recovery Control functions for use in Hot Standby. Pause, Resume, Status check functions only. Also, new recovery.conf parameter to pause_at_recovery_target, default on.

commit   : 8c6e3adbf792c2bba448e88cbf2c8e03fb802e73    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 18:30:22 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 18:30:22 +0000    

Click here for diff

Simon Riggs, reviewed by Fujii Masao  

M doc/src/sgml/func.sgml
M doc/src/sgml/recovery-config.sgml
M src/backend/access/transam/xlog.c
M src/include/access/xlog_internal.h
M src/include/catalog/pg_proc.h

UINT64_MAX isn't defined on MSVC.

commit   : f9f9d696a9c51cb26c24bb28760e6bb1edd0e995    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 18:14:26 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 18:14:26 +0200    

Click here for diff

M src/include/storage/predicate_internals.h

Remove rare corner case for data loss when triggering standby server. If the standby was streaming when trigger file arrives, check also in the archive for additional WAL files. This is a corner case since it is unlikely that we would trigger a failover while the master is still available and sending data to standby, while at the same time running in archive mode and also while the streaming standby has fallen behind archive. Someone would eventually be unlucky; we must plug all gaps however small.

commit   : faa0550572583f51dba25611ab0f1d1c31de559b    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 14:38:02 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 14:38:02 +0000    

Click here for diff

Fujii Masao  

M src/backend/access/transam/xlog.c

Extend ALTER TABLE to allow Foreign Keys to be added without initial validation. FK constraints that are marked NOT VALID may later be VALIDATED, which uses an ShareUpdateExclusiveLock on constraint table and RowShareLock on referenced table. Significantly reduces lock strength and duration when adding FKs. New state visible from psql.

commit   : 722bf7017bbe796decc79c1fde03e7a83dae9ada    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 12:23:20 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 8 Feb 2011 12:23:20 +0000    

Click here for diff

Simon Riggs, with reviews from Marko Tiikkaja and Robert Haas  

M doc/src/sgml/ref/alter_table.sgml
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/pg_constraint.c
M src/backend/commands/tablecmds.c
M src/backend/commands/trigger.c
M src/backend/commands/typecmds.c
M src/backend/parser/gram.y
M src/backend/utils/adt/ri_triggers.c
M src/bin/psql/describe.c
M src/include/catalog/pg_constraint.h
M src/include/nodes/parsenodes.h
M src/include/parser/kwlist.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Fix copy-pasto in description of pg_serial, and silence compiler warning about uninitialized field you get on some compilers.

commit   : 7202ad7b8dd07864092be70287fe971ec72a3fbc    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 09:03:08 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 09:03:08 +0200    

Click here for diff

M doc/src/sgml/storage.sgml
M src/backend/storage/lmgr/predicate.c

Avoid having autovacuum workers wait for relation locks.

commit   : 32896c40ca766146312b28a5a0eb3f66ca0300ed    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 7 Feb 2011 22:04:29 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 7 Feb 2011 22:04:29 -0500    

Click here for diff

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.  

M doc/src/sgml/config.sgml
M src/backend/commands/analyze.c
M src/backend/commands/vacuum.c
M src/backend/postmaster/autovacuum.c
M src/include/nodes/parsenodes.h

Oops, forgot to bump catversion in the Serializable Snapshot Isolation patch.

commit   : 47082fa875179ae629edb26807ab3f38a775280b    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 00:24:23 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 8 Feb 2011 00:24:23 +0200    

Click here for diff

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.  

M doc/src/sgml/storage.sgml
M src/include/catalog/catversion.h

Implement genuine serializable isolation level.

commit   : dafaa3efb75ce1aae2e6dbefaf6f3a889dea0d21    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Feb 2011 23:46:51 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 7 Feb 2011 23:46:51 +0200    

Click here for diff

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  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/lobj.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/ref/begin.sgml
M doc/src/sgml/ref/lock.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/select.sgml
M doc/src/sgml/ref/set_transaction.sgml
M doc/src/sgml/ref/start_transaction.sgml
M doc/src/sgml/spi.sgml
M src/backend/access/heap/heapam.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/transam/twophase.c
M src/backend/access/transam/twophase_rmgr.c
M src/backend/access/transam/varsup.c
M src/backend/access/transam/xact.c
M src/backend/commands/variable.c
M src/backend/executor/nodeBitmapHeapscan.c
M src/backend/executor/nodeSeqscan.c
M src/backend/parser/gram.y
M src/backend/storage/ipc/ipci.c
M src/backend/storage/ipc/shmem.c
M src/backend/storage/ipc/shmqueue.c
M src/backend/storage/lmgr/Makefile
M src/backend/storage/lmgr/README
A src/backend/storage/lmgr/README-SSI
M src/backend/storage/lmgr/lwlock.c
A src/backend/storage/lmgr/predicate.c
M src/backend/tcop/utility.c
M src/backend/utils/adt/lockfuncs.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/backend/utils/resowner/resowner.c
M src/backend/utils/time/snapmgr.c
M src/bin/initdb/initdb.c
M src/bin/pg_dump/pg_dump.c
M src/include/access/heapam.h
M src/include/access/relscan.h
M src/include/access/twophase_rmgr.h
M src/include/access/xact.h
M src/include/catalog/pg_am.h
M src/include/commands/variable.h
M src/include/storage/lwlock.h
A src/include/storage/predicate.h
A src/include/storage/predicate_internals.h
M src/include/storage/shmem.h
A src/test/isolation/.gitignore
A src/test/isolation/Makefile
A src/test/isolation/README
A src/test/isolation/expected/classroom-scheduling.out
A src/test/isolation/expected/multiple-row-versions.out
A src/test/isolation/expected/partial-index.out
A src/test/isolation/expected/project-manager.out
A src/test/isolation/expected/receipt-report.out
A src/test/isolation/expected/referential-integrity.out
A src/test/isolation/expected/ri-trigger.out
A src/test/isolation/expected/simple-write-skew.out
A src/test/isolation/expected/temporal-range-integrity.out
A src/test/isolation/expected/total-cash.out
A src/test/isolation/expected/two-ids.out
A src/test/isolation/isolation_main.c
A src/test/isolation/isolation_schedule
A src/test/isolation/isolationtester.c
A src/test/isolation/isolationtester.h
A src/test/isolation/specparse.y
A src/test/isolation/specs/classroom-scheduling.spec
A src/test/isolation/specs/multiple-row-versions.spec
A src/test/isolation/specs/partial-index.spec
A src/test/isolation/specs/project-manager.spec
A src/test/isolation/specs/receipt-report.spec
A src/test/isolation/specs/referential-integrity.spec
A src/test/isolation/specs/ri-trigger.spec
A src/test/isolation/specs/simple-write-skew.spec
A src/test/isolation/specs/temporal-range-integrity.spec
A src/test/isolation/specs/total-cash.spec
A src/test/isolation/specs/two-ids.spec
A src/test/isolation/specscanner.l
M src/test/regress/expected/prepared_xacts.out
M src/test/regress/expected/prepared_xacts_1.out
M src/test/regress/expected/transactions.out
M src/test/regress/sql/prepared_xacts.sql
M src/test/regress/sql/transactions.sql
M src/tools/pgindent/typedefs.list

Fix a comment for MergeAttributes. We forgot to adjust it when we changed relistemp to relpersistence.

commit   : c18f51da17d8cf01d62218e0404e18ba246bde54    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Mon, 7 Feb 2011 16:51:39 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Mon, 7 Feb 2011 16:51:39 +0900    

Click here for diff

M src/backend/commands/tablecmds.c

Supply now required HeUTF8 macro for plperl where it's missing, per buildfarm results.

commit   : c852e95b0bcbe708ba64b9499e50b9cc98bd7b71    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 6 Feb 2011 21:36:56 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 6 Feb 2011 21:36:56 -0500    

Click here for diff

M src/pl/plperl/plperl.h

Fix error messages for FreeFile in COPY command. They are extracted from COPY API patch.

commit   : fb7355e0cedfadd437c30c73cfb71af7ff8933b1    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Mon, 7 Feb 2011 10:46:56 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Mon, 7 Feb 2011 10:46:56 +0900    

Click here for diff

suggested by Noah Misch  

M src/backend/commands/copy.c

remove tags.

commit   : ad762426333aac5bd8e1ceac753bebe4a6411c28    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 18:32:27 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 18:32:27 -0500    

Click here for diff

M doc/src/sgml/advanced.sgml
M doc/src/sgml/array.sgml
M doc/src/sgml/backup.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/tsearch2.sgml

Force strings passed to and from plperl to be in UTF8 encoding.

commit   : 50d89d422f9c68a52a6964e5468e8eb4f90b1d95    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 6 Feb 2011 17:29:26 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 6 Feb 2011 17:29:26 -0500    

Click here for diff

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.  

M doc/src/sgml/plperl.sgml
M src/pl/plperl/SPI.xs
M src/pl/plperl/Util.xs
M src/pl/plperl/plperl.c
A src/pl/plperl/plperl_helpers.h

Adjust libpq docs to be clearer about 'hostaddr' usage by rewording and using an itemized list.

commit   : 5ed45ac09c604555740e7365a722b641f3bce498    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 12:04:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 12:04:42 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

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.

commit   : 97116ca4170b974d734cea364789c389b30e6ce1    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 10:46:15 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 6 Feb 2011 10:46:15 -0500    

Click here for diff

M src/backend/tsearch/wparser_def.c
M src/tools/pgindent/README

IDENTIFY_SYSTEM now returns 3 fields, not 2

commit   : cedd6515ba68f46dd7e75a65d4c98330ced0ba7a    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 6 Feb 2011 07:46:14 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 6 Feb 2011 07:46:14 +0100    

Click here for diff

M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

Tighten ALTER FOREIGN TABLE .. SET DATA TYPE checks.

commit   : 65377e0b9c0e0397b1598b38b6a7fb8b6f740d39    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 6 Feb 2011 00:26:27 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 6 Feb 2011 00:26:27 -0500    

Click here for diff

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.  

M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/include/commands/tablecmds.h
M src/test/regress/expected/foreign_data.out
M src/test/regress/sql/foreign_data.sql

Add C comment about why older compilers complain about basebackup.c's longjump.

commit   : 51dbc87dff5c32bfe627ec7b22c575c263de8251    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 23:27:45 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 23:27:45 -0500    

Click here for diff

M src/backend/replication/basebackup.c

Attempt to unbreak MSVC builds after pipe.c move.

commit   : 895ad83d702ed821f72ec7bdf1fba3db7da9d9d7    
  
author   : Andrew Dunstan <[email protected]>    
date     : Fri, 4 Feb 2011 20:49:39 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Fri, 4 Feb 2011 20:49:39 -0500    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm

Add doc comment that installation.sgml can't use xrefs.

commit   : 8e6ae3d79c16ad8876c34f2cff8d667ca1cffb09    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 17:30:22 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 17:30:22 -0500    

Click here for diff

M doc/src/sgml/installation.sgml

Clarify comment in ATRewriteTable().

commit   : 9e7e1172a53054dc14574e42865ea8213bc06371    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 16:14:54 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 16:14:54 -0500    

Click here for diff

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.  

M src/backend/commands/tablecmds.c

Move pipe.c into the backend.

commit   : b1e65c32168a2b64276a57be8c4dc5a63d33e12d    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 15:52:21 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 15:52:21 -0500    

Click here for diff

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

M src/backend/port/Makefile
R096 src/port/pipe.c src/backend/port/pipe.c
M src/port/Makefile

In docs, move PQrequestCancel() deprecation mention up to match other libpq doc mentions.

commit   : b157a1d5554d6dfbd13fb605f08d51ce17532375    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 14:23:01 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 4 Feb 2011 14:23:01 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

Avoid including postgres.h in frontend compiles of src/port.

commit   : 8201aea90c2b171808c65836fcce4f29b22a9dbb    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 13:11:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 13:11:53 -0500    

Click here for diff

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

M src/port/dirent.c
M src/port/pipe.c
M src/port/win32error.c

Update ALTER TABLE docs to mention using VACUUM FULL for rewrites.

commit   : edad08ba545b43261b4d54d65122b45c9b5ee801    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 13:08:56 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 13:08:56 -0500    

Click here for diff

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.  

M doc/src/sgml/ref/alter_table.sgml

Use $(MAKE) rather than make.

commit   : 6f59a5e5dd73ec2c448dd7038accf5aaba6dc04b    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 09:48:32 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 09:48:32 -0500    

Click here for diff

Per buildfarm.  

M src/port/Makefile

Make handling of errcodes.h more consistent with other generated headers.

commit   : 356f2cbbb42811596820c94aaec2e32ad1ec58d8    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 09:28:06 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 09:28:06 -0500    

Click here for diff

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.  

M src/Makefile
M src/backend/Makefile
M src/backend/utils/Makefile
M src/include/Makefile
M src/port/Makefile
M src/tools/msvc/clean.bat

Attempt to un-break the documentation build again

commit   : afb6dee1e3b93af05e35873c19c068e8ac7eb74b    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 4 Feb 2011 15:23:34 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 4 Feb 2011 15:23:34 +0100    

Click here for diff

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

M doc/src/sgml/installation.sgml

Unbreak 'configure' followed immediately by 'make install'.

commit   : b87811ee273360c45d92b0e7bb7e67670312c221    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 07:03:19 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 07:03:19 -0500    

Click here for diff

More fallout from ddfe26f6441c24660595c5efe5fd0bd3974cdc5c.  
  
Report by Fujii Masao.  

M src/Makefile

Use single quotes when there are backslashes in the filename

commit   : 39fbec73b0dd15df8955baad57685082ec0cef8f    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 4 Feb 2011 10:52:25 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 4 Feb 2011 10:52:25 +0100    

Click here for diff

In the hope of unbreaking the buildfarm  

M src/tools/msvc/Solution.pm

Unbreak the VPATH build.

commit   : dde9684d65ed66656f765d3fd97f2e522a189132    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 00:07:08 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 4 Feb 2011 00:07:08 -0500    

Click here for diff

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

M src/backend/utils/Makefile
M src/pl/plpgsql/src/Makefile

commit   : b8a0467e10a41d32ecf889d40de81223e0439c5b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 22:38:02 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 22:38:02 -0500    

Click here for diff

M src/backend/utils/errcodes.txt

Avoid maintaining three separate copies of the error codes list.

commit   : ddfe26f6441c24660595c5efe5fd0bd3974cdc5c    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 22:32:49 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 22:32:49 -0500    

Click here for diff

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.  

M doc/src/sgml/.gitignore
M doc/src/sgml/Makefile
M doc/src/sgml/errcodes.sgml
M doc/src/sgml/filelist.sgml
A doc/src/sgml/generate-errcodes-table.pl
M src/Makefile
M src/backend/Makefile
M src/backend/utils/.gitignore
M src/backend/utils/Makefile
A src/backend/utils/errcodes.txt
A src/backend/utils/generate-errcodes.pl
M src/include/Makefile
M src/include/utils/.gitignore
D src/include/utils/errcodes.h
M src/pl/plpgsql/src/.gitignore
M src/pl/plpgsql/src/Makefile
A src/pl/plpgsql/src/generate-plerrcodes.pl
D src/pl/plpgsql/src/plerrcodes.h
M src/tools/msvc/Solution.pm
M src/tools/msvc/builddoc.bat

ALTER TABLE sometimes takes only ShareUpdateExclusiveLock.

commit   : 7212c77d0cabcc468fec0b9cd7f2413b64b77050    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 15:14:27 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 15:14:27 -0500    

Click here for diff

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

M doc/src/sgml/mvcc.sgml

In docs, PL is Procedural Language, not Programming Language.

commit   : df63aac678343cec522bc58588b70ab1374a6c93    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 3 Feb 2011 11:54:07 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 3 Feb 2011 11:54:07 -0500    

Click here for diff

Satoshi Nagayasu  

M doc/src/sgml/acronyms.sgml

Simplify code used in is_absolute_path() macro; also add comment about 'E:abc' Win32 path handling.

commit   : 35b0a6b205c25d592b966aa17d3c6f9e5a88eb62    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 3 Feb 2011 10:46:31 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 3 Feb 2011 10:46:31 -0500    

Click here for diff

M src/include/port.h
M src/port/path.c

Include more status information in walsender results

commit   : 76129e7f14b4605db0a046e13abef0e255ffe007    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 3 Feb 2011 13:46:23 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 3 Feb 2011 13:46:23 +0100    

Click here for diff

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.  

M doc/src/sgml/protocol.sgml
M src/backend/replication/basebackup.c
M src/backend/replication/walsender.c
M src/bin/pg_basebackup/pg_basebackup.c

Fix typo.

commit   : f001cb38b67b0f2f5f4cfd1e32f86866da8c8693    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 3 Feb 2011 11:24:47 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 3 Feb 2011 11:24:47 +0100    

Click here for diff

Thom Brown  

M doc/src/sgml/ref/create_user_mapping.sgml

Further sepgsql documentation cleanup.

commit   : 4c4daf671074cc64290e9255c14365b55bf7a47b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 00:23:44 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 3 Feb 2011 00:23:44 -0500    

Click here for diff

M doc/src/sgml/sepgsql.sgml

sepgsql doc fix

commit   : 4ff9dec1386b714f6c26a52ca6880b14e94dd1db    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:47:45 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:47:45 -0500    

Click here for diff

KaiGai Kohei  

M doc/src/sgml/sepgsql.sgml

Minor sepgsql regression test fixes.

commit   : 87d967f70f4866c17404f6a9b8062f892ed31e08    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:46:51 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:46:51 -0500    

Click here for diff

M contrib/sepgsql/.gitignore
M contrib/sepgsql/expected/dml.out
M contrib/sepgsql/sql/dml.sql

Various sepgsql corrections.

commit   : c7689ee73346d198177dee538501bb1148c8cebb    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:39:43 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 23:39:43 -0500    

Click here for diff

KaiGai Kohei  

M contrib/sepgsql/dml.c
M contrib/sepgsql/expected/dml.out
M contrib/sepgsql/expected/label.out
M contrib/sepgsql/expected/misc.out
M contrib/sepgsql/hooks.c
M contrib/sepgsql/label.c
M contrib/sepgsql/launcher
M contrib/sepgsql/proc.c
M contrib/sepgsql/relation.c
M contrib/sepgsql/schema.c
M contrib/sepgsql/selinux.c
M contrib/sepgsql/sql/label.sql

Rename function to first_path_var_separator() to clarify it works with path variables, not directory paths.

commit   : 426227850be145b52cb610455000fc005df5ce4e    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 22:49:54 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 22:49:54 -0500    

Click here for diff

M src/backend/utils/fmgr/dfmgr.c
M src/include/port.h
M src/port/exec.c
M src/port/path.c

Clearify macro IS_PATH_VAR_SEP in path.c so it is clear this is a path variable, not a directory path.

commit   : bffb638d16999ee7d3c8796e77dd87ac82719c7d    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 22:28:14 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 22:28:14 -0500    

Click here for diff

M src/port/path.c

Log restartpoints in the same fashion as checkpoints.

commit   : 0af695fd43b6889613a4035e3cdfcc0fc1b7936a    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 21:08:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 2 Feb 2011 21:08:53 -0500    

Click here for diff

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.  

M doc/src/sgml/config.sgml
M src/backend/access/transam/xlog.c

Repair multiple breakage in Windows-specific code for appending '.exe'.

commit   : cd7d748d51df3c5dedcc49a3603e6fa9c050f237    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Feb 2011 20:26:43 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Feb 2011 20:26:43 -0500    

Click here for diff

M contrib/pg_upgrade/exec.c

Clean up missed change to plpython expected files.

commit   : 907855ac759a221f95b502cd7cbf2ec851fe9523    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 2 Feb 2011 20:16:27 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 2 Feb 2011 20:16:27 -0500    

Click here for diff

M src/pl/plpython/expected/plpython_unicode_3.out

Mark all GUC variables with <varname> markup, rather than <literal>.

commit   : 03c25dd900d97c0868ad20b925a78d41ec603578    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 18:06:38 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 18:06:38 -0500    

Click here for diff

M doc/src/sgml/datetime.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/maintenance.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/pg_dump.sgml

Fix wrong verb in pg_upgrade text message, per Haas.

commit   : 2b6e2dee7805ec5b477af00c01c54c208bf106eb    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 16:53:12 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 16:53:12 -0500    

Click here for diff

M contrib/pg_upgrade/check.c

Simplify pg_upgrade checking of executable permissions.

commit   : 9d220fc17eafcbc99fcea7bdbbb246fee473eac7    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 15:40:20 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 2 Feb 2011 15:40:20 -0500    

Click here for diff

M contrib/pg_upgrade/exec.c

Wrap PL/Python SPI calls into subtransactions

commit   : 0c5933d0104c1788479592a84cca53da357381f9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 2 Feb 2011 22:06:10 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 2 Feb 2011 22:06:10 +0200    

Click here for diff

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  

M doc/src/sgml/plpython.sgml
M src/pl/plpython/expected/plpython_error.out
M src/pl/plpython/expected/plpython_error_0.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_error.sql

Add comment on why we're passing a useless 'false' to the plperl function compiler.

commit   : c73fe72e2735d20aa132640d8fab4e0eca1ced95    
  
author   : Andrew Dunstan <[email protected]>    
date     : Wed, 2 Feb 2011 12:45:42 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Wed, 2 Feb 2011 12:45:42 -0500    

Click here for diff

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

M src/pl/plperl/plperl.c

Document that CREATE VIEW that uses "*" for the column list will not auto-add columns later added to the base table.

commit   : 5a6ba62be5364dbf973fd9b8631fd60acda03440    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 17:17:34 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 17:17:34 -0500    

Click here for diff

M doc/src/sgml/ref/create_view.sgml

Properly capitalize hyphenated words in documentation titles.

commit   : d56d246e70184692408cd6a444e6824ae8491587    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 17:00:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 17:00:26 -0500    

Click here for diff

M doc/src/sgml/backup.sgml
M doc/src/sgml/biblio.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/dfunc.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/lobj.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/nls.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/release-9.1.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/syntax.sgml
M doc/src/sgml/xaggr.sgml
M doc/src/sgml/xfunc.sgml
M doc/src/sgml/xoper.sgml
M doc/src/sgml/xtypes.sgml

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.

commit   : 7106f74e2a6feb31c022dd98e7d93ab656dc079d    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 16:43:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 16:43:51 -0500    

Click here for diff

M doc/src/sgml/config.sgml

Add validator to PL/Python

commit   : 15f55cc38a82dfa3d7898a7c30a303b1b3e87dc3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 1 Feb 2011 22:53:40 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 1 Feb 2011 22:53:40 +0200    

Click here for diff

Jan Urbański, reviewed by Hitoshi Harada  

M src/include/catalog/catversion.h
M src/include/catalog/pg_pltemplate.h
M src/pl/plpython/expected/README
M src/pl/plpython/expected/plpython_error.out
A src/pl/plpython/expected/plpython_error_0.out
M src/pl/plpython/expected/plpython_record.out
M src/pl/plpython/expected/plpython_types.out
M src/pl/plpython/expected/plpython_types_3.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_error.sql

Document that effective cache size does not assume data remains in the cache between queries.

commit   : 6c6e6f7fd3ffa984a202b910ef3237e26f9d3c2e    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 15:23:35 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 15:23:35 -0500    

Click here for diff

M doc/src/sgml/config.sgml

Document that Slony can do upgrades easier _because_ it supports replication between different Postgres major versions.

commit   : e8cdc238cfa3fda4185fe6a9826dbdf0a107f789    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 15:21:22 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 15:21:22 -0500    

Click here for diff

M doc/src/sgml/runtime.sgml

Clarify pg_upgrade install instructions, per suggestion from Robert Haas.

commit   : 902aae5ec58f71b8d9f7efb5ed474d0f5439439d    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 13:57:43 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 13:57:43 -0500    

Click here for diff

M doc/src/sgml/pgupgrade.sgml

Add missing period "." in pg_upgrade documentation.

commit   : d2888d1ca36c266900eeea95401269c782074251    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 13:53:04 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 13:53:04 -0500    

Click here for diff

M doc/src/sgml/pgupgrade.sgml

Add pg_upgrade comment for why we can't use template1 inheritance for the support functions.

commit   : 2bb87a61a84ab74b7ba820aac787443a78897bf4    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 12:22:34 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 1 Feb 2011 12:22:34 -0500    

Click here for diff

M contrib/pg_upgrade/pg_upgrade.c

Set up PLPerl trigger data using C code instead of Perl code.

commit   : ef19dc6d39dd2490ff61489da55d95d6941140bf    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 1 Feb 2011 09:43:25 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 1 Feb 2011 09:43:25 -0500    

Click here for diff

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.  

M src/pl/plperl/plperl.c

Undefine setlocale() macro on Win32

commit   : 5273f2143416f6340f6ee876facfa6f7a87453a0    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 1 Feb 2011 13:19:18 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 1 Feb 2011 13:19:18 +0100    

Click here for diff

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  

M src/include/port.h

Re-classify ERRCODE_DATABASE_DROPPED to 57P04

commit   : 56b21b7ae38bc1efb701e7ebfd208e2e194e7998    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 1 Feb 2011 08:44:01 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 1 Feb 2011 08:44:01 +0000    

Click here for diff

M doc/src/sgml/errcodes.sgml
M src/backend/tcop/postgres.c
M src/include/utils/errcodes.h
M src/pl/plpgsql/src/plerrcodes.h

Fix wrong error reports in 'number of array dimensions exceeds the maximum allowed' messages, that have reported one-less dimensions.

commit   : 0c707aa4583a5584f4c3f4ad1697bb206ed0d65a    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 1 Feb 2011 15:21:32 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 1 Feb 2011 15:21:32 +0900    

Click here for diff

Alexey Klyukin  

M src/backend/executor/execQual.c
M src/backend/utils/adt/arrayfuncs.c
M src/pl/plpgsql/src/pl_exec.c

commit   : 03282bfa8973f3a77ca3e7c14847a5a11d07d6a2    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 1 Feb 2011 14:26:17 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 1 Feb 2011 14:26:17 +0900    

Click here for diff

Thom Brown  

M doc/src/sgml/config.sgml

Improve docs for pg_authid encryption description with better markup and a mention of unencrypted passwords.

commit   : 00dd340210ed67900e03703eb088fdd5ab12c099    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 22:53:58 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 22:53:58 -0500    

Click here for diff

M doc/src/sgml/catalogs.sgml

In pg_authid.rolpassword docs, make "md5" appear as a literal.

commit   : 2dbed56c5a86d45a66f41e6a8a16295bbfe46646    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 22:28:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 22:28:42 -0500    

Click here for diff

M doc/src/sgml/catalogs.sgml

Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.

commit   : 6e2f3ae8842392c46ccc91a9ce4bba92296890cb    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 31 Jan 2011 21:33:55 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 31 Jan 2011 21:33:55 -0500    

Click here for diff

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  

M contrib/pg_trgm/expected/pg_trgm.out
M contrib/pg_trgm/pg_trgm.sql.in
M contrib/pg_trgm/sql/pg_trgm.sql
M contrib/pg_trgm/trgm.h
M contrib/pg_trgm/trgm_gin.c
M contrib/pg_trgm/trgm_gist.c
M contrib/pg_trgm/trgm_op.c
M contrib/pg_trgm/uninstall_pg_trgm.sql
M doc/src/sgml/pgtrgm.sgml

Fix pg_upgrade to create pg_authid restore functions in the 'postgres' database, not in the os-user database, per report from Magnus.

commit   : 6238473adb119a5a11061e40e159e8c5187fe492    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 20:15:43 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 20:15:43 -0500    

Click here for diff

M contrib/pg_upgrade/pg_upgrade.c

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.

commit   : 9e95c9ad558bafa26efbab50f77929de4ade5f90    
  
author   : Simon Riggs <[email protected]>    
date     : Tue, 1 Feb 2011 00:20:53 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Tue, 1 Feb 2011 00:20:53 +0000    

Click here for diff

Tatsuo Ishii, edits by me, review by Robert Haas  

M doc/src/sgml/errcodes.sgml
M src/backend/tcop/postgres.c
M src/include/utils/errcodes.h
M src/pl/plpgsql/src/plerrcodes.h

Remove spurious word, spotted by Thom Brown.

commit   : 44df84df72b5eb43384bc7288713c2f80db7273d    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 22:51:51 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 22:51:51 +0200    

Click here for diff

M doc/src/sgml/ref/pg_basebackup.sgml

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).

commit   : 49450f01eca39308989cf668f60b7c345e72fc7b    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 15:21:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 15:21:51 -0500    

Click here for diff

M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/runtime.sgml

Fix SGML markup for upgrade doc addition.

commit   : ff20fbd6c21929cd5c78f154c8364ce746de9c03    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 14:58:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 14:58:49 -0500    

Click here for diff

M doc/src/sgml/runtime.sgml

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

commit   : 8585ad36254199ca63700707ee78890da1755e4d    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 31 Jan 2011 19:20:23 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 31 Jan 2011 19:20:23 +0000    

Click here for diff

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

M src/backend/storage/ipc/standby.c

Update docs on building for Windows to accomodate current reality.

commit   : 51be78b09a83b8d533e4a9f81cf9a7f2edde6654    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 31 Jan 2011 13:40:45 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 31 Jan 2011 13:40:45 -0500    

Click here for diff

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.  

M doc/src/sgml/install-windows.sgml
M doc/src/sgml/installation.sgml

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.

commit   : c5ba11f8fb1701441b96a755ea410b96bfe36170    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 12:32:03 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 31 Jan 2011 12:32:03 -0500    

Click here for diff

M doc/src/sgml/backup.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/runtime.sgml

Fix typo

commit   : 32866837f005fcfdd1e1289f08a89a7c519da000    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 18:29:38 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 18:29:38 +0200    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

Support multiple concurrent pg_basebackup backups.

commit   : 997b48ed96c476650f87ca75d65c9fc1f6273f5a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 18:13:01 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 31 Jan 2011 18:13:01 +0200    

Click here for diff

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.  

M doc/src/sgml/backup.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M src/backend/access/transam/xlog.c
M src/backend/replication/basebackup.c
M src/include/access/xlog.h

Fix typo

commit   : 48c9de80283d4bbdf9bec2f2f929b23f1676f8f9    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 30 Jan 2011 20:34:05 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 30 Jan 2011 20:34:05 -0500    

Click here for diff

M src/include/port/win32.h

Enable building with the Mingw64 compiler.

commit   : 91812df4ed0facfb90bec3f9430dd5a97d56f695    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 30 Jan 2011 19:56:46 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 30 Jan 2011 19:56:46 -0500    

Click here for diff

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.  

M config/ac_func_accept_argtypes.m4
M configure
M src/include/c.h
M src/include/port.h
M src/include/port/win32.h
M src/include/port/win32/sys/socket.h
M src/port/getaddrinfo.c
M src/test/regress/resultmap

Make reduce_outer_joins() smarter about semijoins.

commit   : 9688c4e6f1516d2fc0db5d200112c4d91538878d    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 30 Jan 2011 17:04:31 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 30 Jan 2011 17:04:31 -0500    

Click here for diff

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.  

M src/backend/optimizer/prep/prepjointree.c

Add option to include WAL in base backup

commit   : 507069de6dbe18c2163f27fbc780673eef8c5622    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 30 Jan 2011 21:30:09 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 30 Jan 2011 21:30:09 +0100    

Click here for diff

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  

M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M src/backend/replication/basebackup.c
M src/backend/replication/repl_gram.y
M src/backend/replication/repl_scanner.l
M src/backend/replication/walsender.c
M src/bin/pg_basebackup/pg_basebackup.c
M src/include/replication/walsender.h

Properly capitalize documentation headings; some only had initial-word capitalization.

commit   : 5d5678d7c3b336a5aacf15d66ac3ebccaab929f2    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 29 Jan 2011 13:00:18 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 29 Jan 2011 13:00:18 -0500    

Click here for diff

M doc/src/sgml/adminpack.sgml
M doc/src/sgml/auth-delay.sgml
M doc/src/sgml/auto-explain.sgml
M doc/src/sgml/backup.sgml
M doc/src/sgml/btree-gin.sgml
M doc/src/sgml/btree-gist.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/diskusage.sgml
M doc/src/sgml/docguide.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/install-windows.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/nls.sgml
M doc/src/sgml/perform.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgbench.sgml
M doc/src/sgml/pgbuffercache.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgfreespacemap.sgml
M doc/src/sgml/pgrowlocks.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/pgstatstatements.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/problems.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/regress.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/release-old.sgml
M doc/src/sgml/rules.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/sepgsql.sgml
M doc/src/sgml/sourcerepo.sgml
M doc/src/sgml/sources.sgml
M doc/src/sgml/syntax.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/xml2.sgml

Make installation.sgml build standalone again.

commit   : 6f489dca65e97d92fb01ee6811ece4e215d186ca    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 29 Jan 2011 12:51:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 29 Jan 2011 12:51:44 -0500    

Click here for diff

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.  

M doc/src/sgml/installation.sgml

Use GSSAPI library for SSPI auth, when native SSPI is not available

commit   : 4ea1a273fbc20b29ba4aacd3c21030bd62296d7d    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 29 Jan 2011 17:06:55 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 29 Jan 2011 17:06:55 +0100    

Click here for diff

This allows non-Windows clients to connect to a Windows  
server with SSPI authentication.  
  
Christian Ullrich, largely modified by me  

M src/interfaces/libpq/fe-auth.c

Try to avoid running with a full fsync request queue.

commit   : 7f242d880b5b5d9642675517466d31373961cf98    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 29 Jan 2011 08:08:41 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 29 Jan 2011 08:08:41 -0500    

Click here for diff

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  

M src/backend/postmaster/bgwriter.c
M src/backend/storage/smgr/md.c

Copy-edit a paragraph in the contrib/seg documentation.

commit   : b2826ad52d72195317a13c2074a5cd002c98a338    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 28 Jan 2011 14:34:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 28 Jan 2011 14:34:42 -0500    

Click here for diff

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.  

M doc/src/sgml/seg.sgml

commit   : 20a0f97273e765598420b261685764b40810c812    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 18:42:12 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 18:42:12 -0500    

Click here for diff

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.  

M doc/src/sgml/catalogs.sgml

Update release notes.

commit   : 43054624979de3205fbc432f15defd4b9d5922e9    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 17:45:37 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 17:45:37 -0500    

Click here for diff

Security: CVE-2010-4015  

M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml

Prevent buffer overrun while parsing an integer in a "query_int" value.

commit   : 7ccb6dc2d3e266a551827bb99179708580f72431    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 17:41:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 17:41:41 -0500    

Click here for diff

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  

M contrib/intarray/_int_bool.c

Don't include <asm/ia64regs.h> unnecessarily.

commit   : 0ac8c8df85951a6c4815f5e8e0491b6bba4534b7    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 16:27:27 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 16:27:27 -0500    

Click here for diff

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.  

M src/backend/tcop/postgres.c

Update release notes for releases 9.0.3, 8.4.7, 8.3.14, and 8.2.20.

commit   : 29d442199ac978b2272d1d96648585943f499fe6    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 16:09:39 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 16:09:39 -0500    

Click here for diff

M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml

commit   : 1e4baa5c9652bb2ad2c312dc1e2d717c59cee003    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 27 Jan 2011 20:20:08 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 27 Jan 2011 20:20:08 +0200    

Click here for diff

M src/bin/psql/help.c

Improve grammar and spelling in durability discussion.

commit   : 85f345bec2d7f2ccb67b98b06342c86372ecf3b1    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 12:48:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 27 Jan 2011 12:48:57 -0500    

Click here for diff

M doc/src/sgml/perform.sgml

Update non-durable docs about non-synchronous-commit allowing transaction loss for a _database_ crash.

commit   : b34ee30115fb6b8da8c3024705bd4ba0339212c1    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 27 Jan 2011 12:06:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 27 Jan 2011 12:06:26 -0500    

Click here for diff

M doc/src/sgml/perform.sgml

Restore ALTER TABLE .. ADD COLUMN w/DEFAULT restriction.

commit   : a40b1e0bf32b1da46c1baa9bc7da87f207cd37d8    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 27 Jan 2011 08:35:34 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 27 Jan 2011 08:35:34 -0500    

Click here for diff

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.  

M src/backend/commands/tablecmds.c
M src/test/regress/expected/rowtypes.out
M src/test/regress/sql/rowtypes.sql

Restructure streaming docs so streaming seems more integrated in the paragraphs, per suggestion from Dan Birken.

commit   : 81c48aeaa8fd34f90ab6d6f1d56564d34ac4aa59    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 19:54:41 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 19:54:41 -0500    

Click here for diff

M doc/src/sgml/high-availability.sgml

Change inv_truncate() to not repeat its systable_getnext_ordered() scan.

commit   : 7ab6f2da23516e48174f3f144ee9ef19bdc287fb    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 26 Jan 2011 19:33:50 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 26 Jan 2011 19:33:50 -0500    

Click here for diff

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.  

M src/backend/storage/large_object/inv_api.c

Use -Wformat-security when available

commit   : 8b6f5f25102f9e2503ce18af77b6fd547a2192ca    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:23:48 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:23:48 +0200    

Click here for diff

M configure
M configure.in

autoreconf

commit   : 6fe5e4e63ee274e66c36dce999978a3fee8cf4c6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:03:55 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:03:55 +0200    

Click here for diff

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.  

M configure
M src/include/pg_config.h.in

Do not prefix error messages with the string "PL/Python: "

commit   : 5829738868f8d87263b6d31675e08147d8d7c188    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:00:58 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 01:00:58 +0200    

Click here for diff

It is redundant, given the error context.  
  
Jan Urbański  

M src/pl/plpython/expected/plpython_do.out
M src/pl/plpython/expected/plpython_error.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/expected/plpython_types.out
M src/pl/plpython/expected/plpython_types_3.out
M src/pl/plpython/expected/plpython_unicode_2.out
M src/pl/plpython/expected/plpython_unicode_3.out
M src/pl/plpython/plpython.c

Improve exception usage in PL/Python

commit   : 582b5ac62e74a553e72151b321804a7b2e5fed6f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:47:14 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:47:14 +0200    

Click here for diff

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  

M src/pl/plpython/expected/plpython_unicode_2.out
M src/pl/plpython/expected/plpython_unicode_3.out
M src/pl/plpython/plpython.c

Also save the error detail in SPIError

commit   : 418df3a5dd94d9f02b895f9c161b2435d61e0729    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:35:28 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:35:28 +0200    

Click here for diff

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.  

M src/pl/plpython/expected/plpython_unicode_2.out
M src/pl/plpython/expected/plpython_unicode_3.out
M src/pl/plpython/plpython.c

Fix compiler warnings

commit   : ddf8c1682237119bf66949050e223c2151329f4c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:18:10 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 27 Jan 2011 00:18:10 +0200    

Click here for diff

Older versions of GCC appear to report these with the current standard  
option set, newer versions need -Wformat-security.  

M src/pl/plpython/plpython.c

Per Peter E, use 'kB' for kilobyte, not 'K'.

commit   : 4fec63f94e8edb6181eb3e1e25e979062ab17450    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 16:21:19 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 16:21:19 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

In pg_test_fsync, use K(1024) rather than k(1000) for write size units.

commit   : 00869024cb0164969957c1b3e8f6a11242a939e9    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 11:02:52 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 11:02:52 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

Update contrib documention mentions to point to actual documentation sections, rather than just calling it "/contrib/module_name".

commit   : 159e3d86292cfec2a2828f9f69ac7a6cb1be242d    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 09:22:21 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 09:22:21 -0500    

Click here for diff

Also update pg_test_fsync build instructions now that it is in /contrib.  

M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/dblink.sgml
M doc/src/sgml/diskusage.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/lo.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/storage.sgml
M doc/src/sgml/textsearch.sgml
M doc/src/sgml/trigger.sgml
M doc/src/sgml/tsearch2.sgml
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xfunc.sgml

Update sync commit performance documentation to be consistent with other non-durable items, per Robert Haas.

commit   : e84730a916bce0635eb78205d2ea4746ee664d68    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 09:15:52 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 26 Jan 2011 09:15:52 -0500    

Click here for diff

M doc/src/sgml/perform.sgml

Make 'on' uppercase in a sql example.

commit   : 69039ea8b5569caf09b211f46fa9064468fee3b3    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 26 Jan 2011 22:35:01 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 26 Jan 2011 22:35:01 +0900    

Click here for diff

M doc/src/sgml/ref/alter_table.sgml

Add a comment explaining why we force physical removal of OIDs.

commit   : 5c2a7c6e97741564ab4ff336eac8d8227485dd4c    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 26 Jan 2011 06:42:51 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 26 Jan 2011 06:42:51 -0500    

Click here for diff

Noah Misch, slightly revised.  

M src/backend/commands/tablecmds.c

Remove arbitrary ALTER TABLE .. ADD COLUMN restriction.

commit   : a06e41deebdf74b8b5109329dc75b2e9d9057962    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 26 Jan 2011 06:23:23 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 26 Jan 2011 06:23:23 -0500    

Click here for diff

The previous coding prevented ALTER TABLE .. ADD COLUMN from being used  
with a non-NULL default in situations where the table's rowtype was being  
used elsewhere.  But this is a completely arbitrary restriction since  
you could do the same operation in multiple steps (add the column, add  
the default, update the table).  
  
Inspired by a patch from Noah Misch, though I didn't use his code.  

M src/backend/commands/tablecmds.c
M src/test/regress/expected/rowtypes.out
M src/test/regress/sql/rowtypes.sql

Adjust pg_test_fsync to always do XLOG_BLCKSZ-sized writes, rather than always 8k writes, per suggestion from Tom. Also adjust open_sync output layout.

commit   : 64bc872761bc9bf730307957f09f44a3eabbe3af    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 25 Jan 2011 22:18:24 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 25 Jan 2011 22:18:24 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

Update warning about synchronous-commit durability, per suggestion from Robvert Haas.

commit   : a91c950658016162020258574fb98aba182a5eac    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 25 Jan 2011 20:32:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 25 Jan 2011 20:32:26 -0500    

Click here for diff

M doc/src/sgml/perform.sgml

Correct ALTER TYPE -> SET DATA TYPE in ALTER TABLE documentation.

commit   : 2b2b2ae2aa4a7089aee729e67bb323154da3841a    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 25 Jan 2011 18:50:35 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 25 Jan 2011 18:50:35 -0500    

Click here for diff

The latter is the correct name of the operation to change the data type  
of a column.  
  
Noah Misch  

M doc/src/sgml/ref/alter_table.sgml

Remove old claim that ExclusiveLock is sometimes taken on system catalogs.

commit   : 5042d16d1210d1a10a896a0fcf81230ff4b0e383    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 18:39:01 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 18:39:01 -0500    

Click here for diff

We used to do that on pg_listener, but pg_listener is no more.  
  
Also add a bit more documentation for ShareRowExclusive mode.  

M doc/src/sgml/mvcc.sgml

Fix thinko in ALTER FOREIGN TABLE documentation.

commit   : 558d1c95ae6afb8728f70a150c593f7e7aa5fac1    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 25 Jan 2011 17:56:22 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 25 Jan 2011 17:56:22 -0500    

Click here for diff

Noah Misch  

M doc/src/sgml/ref/alter_foreign_table.sgml

Replace pg_class.relhasexclusion with pg_index.indisexclusion.

commit   : bd1ad1b019cda851a3e925133c056930368e6424    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 17:51:59 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 17:51:59 -0500    

Click here for diff

There isn't any need to track this state on a table-wide basis, and trying  
to do so introduces undesirable semantic fuzziness.  Move the flag to  
pg_index, where it clearly describes just a single index and can be  
immutable after index creation.  

M doc/src/sgml/catalogs.sgml
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/commands/vacuum.c
M src/backend/parser/parse_utilcmd.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_class.h
M src/include/catalog/pg_index.h

Implement ALTER TABLE ADD UNIQUE/PRIMARY KEY USING INDEX.

commit   : 88452d5ba6b3e8ad49133ac1a660ce0725710f8c    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 15:42:03 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 25 Jan 2011 15:42:03 -0500    

Click here for diff

This feature allows a unique or pkey constraint to be created using an  
already-existing unique index.  While the constraint isn't very  
functionally different from the bare index, it's nice to be able to do that  
for documentation purposes.  The main advantage over just issuing a plain  
ALTER TABLE ADD UNIQUE/PRIMARY KEY is that the index can be created with  
CREATE INDEX CONCURRENTLY, so that there is not a long interval where the  
table is locked against updates.  
  
On the way, refactor some of the code in DefineIndex() and index_create()  
so that we don't have to pass through those functions in order to create  
the index constraint's catalog entries.  Also, in parse_utilcmd.c, pass  
around the ParseState pointer in struct CreateStmtContext to save on  
notation, and add error location pointers to some error reports that didn't  
have one before.  
  
Gurjeet Singh, reviewed by Steve Singer and Tom Lane  

M doc/src/sgml/ref/alter_table.sgml
M src/backend/catalog/index.c
M src/backend/catalog/toasting.c
M src/backend/commands/indexcmds.c
M src/backend/commands/tablecmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/include/catalog/index.h
M src/include/nodes/parsenodes.h
M src/test/regress/expected/create_index.out
M src/test/regress/sql/create_index.sql

Typo fix for MemSet size.

commit   : 966d4f52c258aba8187d61fdc1e10b80d560f07c    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 25 Jan 2011 10:50:04 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 25 Jan 2011 10:50:04 +0100    

Click here for diff

Fujii Masao  

M src/backend/replication/basebackup.c

Use consistent spacing for PGAPPICON Makefile option.

commit   : d7a714828f1a4d09adef68b58674a6266aa8fa03    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 20:46:30 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 20:46:30 -0500    

Click here for diff

M contrib/oid2name/Makefile
M contrib/pg_archivecleanup/Makefile
M contrib/pg_standby/Makefile
M contrib/pgbench/Makefile
M contrib/vacuumlo/Makefile

Use XLOG_BLCKSZ in pg_test_fsync, rather than our own define, but verify it is 8k as expected.

commit   : 9dd7933937a076ce7573944b8d1d42e618163440    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 20:07:05 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 20:07:05 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

In test_open_sync(), writes kilobytes as intended, not by bytes.

commit   : 9fc01922831aba350a61844882c229026ca8bf0b    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 19:42:32 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 24 Jan 2011 19:42:32 -0500    

Click here for diff

M contrib/pg_test_fsync/pg_test_fsync.c

Document the "S" option for psql's \dn command in the psql help

commit   : 77ff840835bc40693f36281ab394de881cb327eb    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 25 Jan 2011 01:51:35 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 25 Jan 2011 01:51:35 +0200    

Click here for diff

This option was recently introduced, but the documentation in help.c  
was not updated.  

M src/bin/psql/help.c

Call PLy_spi_execute_fetch_result inside the try/catch block

commit   : 88dcdf9007895b6703dfaf90d15244055384c603    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 25 Jan 2011 00:43:25 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 25 Jan 2011 00:43:25 +0200    

Click here for diff

This way errors from fetching tuples are correctly reported as errors  
in the SPI call.  While at it, avoid palloc(0).  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Refactor PLy_spi_prepare to save two levels of indentation

commit   : 52713d02c73926898629e349a9804cd0cae0470b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 24 Jan 2011 22:12:01 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 24 Jan 2011 22:12:01 +0200    

Click here for diff

Instead of checking whether the arglist is NULL and then if its length  
is 0, do it in one step, and outside of the try/catch block.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

More documentation cleanup for sepgsql.

commit   : ea2c2641f908cde198a9999100d847078a05385b    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 24 Jan 2011 08:42:44 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 24 Jan 2011 08:42:44 -0500    

Click here for diff

Thom Brown and Robert Haas  

M doc/src/sgml/sepgsql.sgml

Fix typo in the psql \d query handling, so that we use the correct query against 9.0 servers.

commit   : 74be35b07cf09350168018234026df94184f8991    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 24 Jan 2011 14:30:42 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 24 Jan 2011 14:30:42 +0200    

Click here for diff

M src/bin/psql/describe.c

Exclude sepgsql from MSVC regression testing as well

commit   : 97520809424d46c55e2faf73b5f09cb64b52f4a5    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 24 Jan 2011 08:24:31 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 24 Jan 2011 08:24:31 +0100    

Click here for diff

In passing, change exclusion in the build to follow the  
same pattern as other always-excluded modules.  

M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/vcregress.pl

Silence compiler warning about uninitialized variable, noted by Itagaki Takahiro

commit   : 56d77c9e56adbd856beba00af3dc607687d30198    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 24 Jan 2011 08:28:00 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 24 Jan 2011 08:28:00 +0200    

Click here for diff

M src/bin/pg_dump/pg_backup_archiver.c

PGXS support for contrib/hstore

commit   : 41611f16e933dafa9c3ae0477f89537ea1459eb6    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 23:07:55 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 23:07:55 -0500    

Click here for diff

Joey Adams  

M contrib/hstore/Makefile

Blind attempt to exclude sepgsql from MSVC build system.

commit   : c26ac226e45fbf84cd63588498c00da9417aebc1    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 22:57:32 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 22:57:32 -0500    

Click here for diff

M src/tools/msvc/Install.pm
M src/tools/msvc/Mkvcbuild.pm

First round of cleanup of sepgsql code and documentation.

commit   : 194c8f713aa62a528afa4ce4274b80aaff9eb264    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 22:47:16 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 22:47:16 -0500    

Click here for diff

Robert Haas, with a few suggestions from Thom Brown  

M contrib/sepgsql/.gitignore
M contrib/sepgsql/dml.c
M contrib/sepgsql/hooks.c
M contrib/sepgsql/label.c
M doc/src/sgml/sepgsql.sgml

sepgsql, an SE-Linux integration for PostgreSQL

commit   : 968bc6fac91d6aaca594488ab85c179b686cbbdd    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 20:44:48 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 23 Jan 2011 20:44:48 -0500    

Click here for diff

This is still pretty rough - among other things, the documentation  
needs work, and the messages need a visit from the style police -  
but this gets the basic framework in place.  
  
KaiGai Kohei  

M configure
M configure.in
M contrib/Makefile
M contrib/README
A contrib/sepgsql/.gitignore
A contrib/sepgsql/Makefile
A contrib/sepgsql/dml.c
A contrib/sepgsql/expected/dml.out
A contrib/sepgsql/expected/label.out
A contrib/sepgsql/expected/misc.out
A contrib/sepgsql/hooks.c
A contrib/sepgsql/label.c
A contrib/sepgsql/launcher
A contrib/sepgsql/proc.c
A contrib/sepgsql/relation.c
A contrib/sepgsql/schema.c
A contrib/sepgsql/selinux.c
A contrib/sepgsql/sepgsql-regtest.te
A contrib/sepgsql/sepgsql.h
A contrib/sepgsql/sepgsql.sql.in
A contrib/sepgsql/sql/dml.sql
A contrib/sepgsql/sql/label.sql
A contrib/sepgsql/sql/misc.sql
M doc/src/sgml/contrib.sgml
M doc/src/sgml/filelist.sgml
A doc/src/sgml/sepgsql.sgml
M src/Makefile.global.in
M src/test/regress/pg_regress.c
M src/test/regress/pg_regress.h
M src/test/regress/pg_regress_main.c

Make walsender options order-independent

commit   : e5487f65fdbd05716ade642a3ae1c5c6e85b6f22    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 23:39:18 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 23:39:18 +0100    

Click here for diff

While doing this, also move base backup options into  
a struct instead of increasing the number of parameters  
to multiple functions for each new option.  

M src/backend/replication/basebackup.c
M src/backend/replication/repl_gram.y
M src/backend/replication/walsender.c
M src/include/replication/basebackup.h
M src/include/replication/replnodes.h

Reorder includes to unbreak MSVC

commit   : 39e911e28a7a998d9439c0f5886c97fbbfc72a75    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 22:44:07 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 22:44:07 +0100    

Click here for diff

M src/bin/pg_dump/pg_backup_directory.c

Add 'directory' format to pg_dump. The new directory format is compatible with the 'tar' format, in that untarring a tar format archive produces a valid directory format archive.

commit   : 7f508f1c6b515df66d27f860b2faa7b5761fa55d    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sun, 23 Jan 2011 23:10:15 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sun, 23 Jan 2011 23:10:15 +0200    

Click here for diff

Joachim Wieland and Heikki Linnakangas  

M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_restore.sgml
M src/bin/pg_dump/Makefile
M src/bin/pg_dump/compress_io.c
M src/bin/pg_dump/compress_io.h
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h
A src/bin/pg_dump/pg_backup_directory.c
M src/bin/pg_dump/pg_backup_tar.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_restore.c

Fix another portability issue in pg_basebackup.

commit   : f36920796ec1335733493f7860d6f2f711c20398    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 14:26:51 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 14:26:51 -0500    

Click here for diff

The target of sscanf with a %o format had better be of integer width,  
but "mode_t" conceivably isn't that.  Another compiler warning seen  
only on some platforms; this one I think is potentially a real bug  
and not just a warning.  

M src/bin/pg_basebackup/pg_basebackup.c

Improve getObjectDescription's display of pg_amop and pg_amproc entries.

commit   : dd5f0db96ba68553e3ab2c1d9d117863a5637c67    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 14:13:46 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 14:13:46 -0500    

Click here for diff

Include the lefttype/righttype columns explicitly (instead of assuming  
the reader can deduce them from the operator or function description),  
and move the operator or function description to the end of the string,  
to make it clearer that it's a referenced object and not the amop or  
amproc item itself.  Per extensive discussion of Andreas Karlsson's  
original patch.  
  
Andreas Karlsson, Tom Lane  

M src/backend/catalog/dependency.c

Revert "Factor out functions responsible for caching I/O routines".

commit   : de3c2d6e928b0f7fb2840914351b96fecce2a30d    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:12:55 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:12:55 -0500    

Click here for diff

This reverts commit 740e54ca84c437fd67524f97a3ea9ddea752e208, which seems  
to have tickled an optimization bug in gcc 4.5.x, as reported upstream at  
https://bugzilla.redhat.com/show_bug.cgi?id=671899  
Since this patch had no purpose beyond code beautification, it's not  
worth expending a lot of effort to look for another workaround.  

M src/pl/plpython/plpython.c

Add .gitignore file to silence complaints about pg_basebackup.

commit   : 10e99f15d423b1730929af1992593c6649952fd5    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:07:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:07:34 -0500    

Click here for diff

A src/bin/pg_basebackup/.gitignore

Suppress uninitialized-variable warning.

commit   : b3cfcdaad27bea9bb86d6de6cbf8d184c16fbceb    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:06:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 23 Jan 2011 13:06:38 -0500    

Click here for diff

M src/bin/pg_basebackup/pg_basebackup.c

Silence flex warnings about DOS file paths in MSVC builds

commit   : 6c41cf5977ca3f13159b980d4b216e3bc9df90e8    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 23 Jan 2011 12:24:15 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 23 Jan 2011 12:24:15 -0500    

Click here for diff

M src/tools/msvc/pgflex.bat

Use pg_strcasecmp instead of strcasecmp for portability

commit   : d13e0975c9812dea583486e1d2efd3bc3e638df5    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 17:35:02 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 17:35:02 +0100    

Click here for diff

Per buildfarm.  

M src/bin/pg_basebackup/pg_basebackup.c

Only show pg_stat_replication details to superusers

commit   : f88a638199d8505e7a01548cb647f908ae1e469f    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 17:28:19 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 17:28:19 +0100    

Click here for diff

M doc/src/sgml/monitoring.sgml
M src/backend/replication/walsender.c

filemode is parsed on win32 even if never used

commit   : fe12263c9f3db78a5359865a6617e23a27e59691    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 14:45:23 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 14:45:23 +0100    

Click here for diff

Per buildfarm failure.  

M src/bin/pg_basebackup/pg_basebackup.c

Add pg_basebackup tool for streaming base backups

commit   : 048d148fe63102fafb2336ab5439c950dea7f692    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 12:21:23 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 23 Jan 2011 12:21:23 +0100    

Click here for diff

This tool makes it possible to do the pg_start_backup/  
copy files/pg_stop_backup step in a single command.  
  
There are still some steps to be done before this is a  
complete backup solution, such as the ability to stream  
the required WAL logs, but it's still usable, and  
could do with some buildfarm coverage.  
  
In passing, make the checkpoint request optionally  
fast instead of hardcoding it.  
  
Magnus Hagander, reviewed by Fujii Masao and Dimitri Fontaine  

M doc/src/sgml/backup.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/allfiles.sgml
A doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/reference.sgml
M src/backend/replication/basebackup.c
M src/backend/replication/repl_gram.y
M src/backend/replication/repl_scanner.l
M src/backend/replication/walsender.c
M src/bin/Makefile
A src/bin/pg_basebackup/Makefile
A src/bin/pg_basebackup/nls.mk
A src/bin/pg_basebackup/pg_basebackup.c
M src/include/replication/basebackup.h
M src/include/replication/replnodes.h
M src/tools/msvc/Mkvcbuild.pm

Code cleanup for assign_transaction_read_only.

commit   : 6f59777c65d557485e933a383ebc4c3fdfc1a2b7    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 22 Jan 2011 20:51:32 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 22 Jan 2011 20:51:32 -0500    

Click here for diff

As in commit fb4c5d2798730f60b102d775f22fb53c26a6445d on 2011-01-21,  
this avoids spurious debug messages and allows idempotent changes at  
any time.  Along the way, make assign_XactIsoLevel allow idempotent  
changes even when not within a subtransaction, to be consistent with  
the new coding of assign_transaction_read_only and because there's  
no compelling reason to do otherwise.  
  
Kevin Grittner, with some adjustments.  

M src/backend/commands/variable.c
M src/backend/utils/misc/guc.c
M src/include/commands/variable.h
M src/test/regress/expected/transactions.out
M src/test/regress/sql/transactions.sql

Quick hack to un-break plpython regression tests.

commit   : cc73c160507588bdc5822d7f2bb79d6b3a386761    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 20:43:54 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 20:43:54 -0500    

Click here for diff

It's not clear to me what should happen to the other plpython_unicode  
variant expected files, but this patch gets things passing on my own  
machines and at least some of the buildfarm.  

M src/pl/plpython/expected/plpython_unicode_3.out

Allow the wal_buffers setting to be auto-tuned to a reasonable value.

commit   : 0f73aae13def660371c34c8feda6e684e6366bdb    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 20:31:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 20:31:24 -0500    

Click here for diff

If wal_buffers is initially set to -1 (which is now the default), it's  
replaced by 1/32nd of shared_buffers, with a minimum of 8 (the old default)  
and a maximum of the XLOG segment size.  The allowed range for manual  
settings is still from 4 up to whatever will fit in shared memory.  
  
Greg Smith, with implementation correction by me.  

M doc/src/sgml/config.sgml
M src/backend/access/transam/xlog.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample

Suppress "control reaches end of non-void function" warning from gcc 4.5.

commit   : 518b1e96c02ba0fa52227c528d6e951004d0653f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 18:01:31 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 18:01:31 -0500    

Click here for diff

Not sure why I'm seeing this on Fedora 14 and not earlier versions.  
Seems like a regression that gcc no longer knows that DIE() doesn't return.  
Still, adding a dummy return is harmless enough.  

M src/pl/plperl/plperl.c

Suppress possibly-uninitialized-variable warnings from gcc 4.5.

commit   : e2627258c3cc43b8b00c5c29c35933a33259e718    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 17:56:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 17:56:42 -0500    

Click here for diff

It appears that gcc 4.5 can issue such warnings for whole structs, not  
just scalar variables as in the past.  Refactor some pg_dump code slightly  
so that the OutputContext local variables are always initialized, even  
if they won't be used.  It's cheap enough to not be worth worrying about.  

M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h

Get rid of the global variable holding the error state

commit   : 116ce2f4d01b929cc7c3bd0f7e6bca631f83da50    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 22 Jan 2011 22:08:51 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 22 Jan 2011 22:08:51 +0200    

Click here for diff

Global error handling led to confusion and was hard to manage.  With  
this change, errors from PostgreSQL are immediately reported to Python  
as exceptions.  This requires setting a Python exception after  
reporting the caught PostgreSQL error as a warning, because PLy_elog  
destroys the Python exception state.  
  
Ideally, all places where PostgreSQL errors need to be reported back  
to Python should be wrapped in subtransactions, to make going back to  
Python from a longjmp safe.  This will be handled in a separate patch.  
  
Jan Urbański  

M src/pl/plpython/expected/plpython_error.out
M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/plpython.c

More pg_test_fsync fixups.

commit   : 37eb2cd4ad4c3323f1c7ed1c893c9d645fbaeb1a    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 15:01:26 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 15:01:26 -0500    

Click here for diff

Reduce #includes to minimum actually needed; in particular include  
postgres_fe.h not postgres.h, so as to stop build failures on some  
platforms.  
  
Use get_progname() instead of hardwired program name; improve error  
checking for command line syntax; bring error messages into line with  
style guidelines; include strerror result in die() cases.  

M contrib/pg_test_fsync/pg_test_fsync.c

Suppress unused-variables warning when OPEN_SYNC_FLAG isn't defined.

commit   : 3ae28ce8c437811bba47c09d1212c2d3c41cb7ff    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 12:25:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 22 Jan 2011 12:25:48 -0500    

Click here for diff

Per buildfarm.  

M contrib/pg_test_fsync/pg_test_fsync.c

commit   : f5a0fd2f3bbe233802cbbddfe8bdf086c69c1ac3    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 22 Jan 2011 18:16:20 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 22 Jan 2011 18:16:20 +0100    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm

Avoid treating WAL senders as normal backends.

commit   : a0c75f55394fe904e09f7caee9a8195e3a09c801    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 22:20:06 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 22:20:06 -0500    

Click here for diff

The previous coding treated anything that wasn't an autovacuum launcher  
as a normal backend, which is wrong now that we also have WAL senders.  
  
Fujii Masao, reviewed by Robert Haas, Alvaro Herrera, Tom Lane,  
and Bernd Helmle.  

M src/backend/postmaster/postmaster.c

Code cleanup for assign_XactIsoLevel.

commit   : fb4c5d2798730f60b102d775f22fb53c26a6445d    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 21:49:19 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 21:49:19 -0500    

Click here for diff

The new coding avoids a spurious debug message when a transaction  
that has changed the isolation level has been rolled back.  It also  
allows the property to be freely changed to the current value within  
a subtransaction.  
  
Kevin Grittner, with one small change by me.  

M src/backend/commands/variable.c
M src/backend/utils/misc/guc.c
M src/include/utils/guc.h

More pg_test_fsync cleanup.

commit   : cb38ab6d3b89eccb75b3337f8723cfc283fb77fb    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 19:44:53 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 19:44:53 -0500    

Click here for diff

Un-break Windows build (I hope) by making the HAVE_FSYNC_WRITETHROUGH  
code match the backend.  Fix incorrect program help message.  static-ize  
all functions.  

M contrib/pg_test_fsync/pg_test_fsync.c

Clean up pg_test_fsync commit.

commit   : bc616703e8767d2a5d0312cdbf5dc3c6de2b86fe    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 19:27:25 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 19:27:25 -0500    

Click here for diff

Actually rename the program, rather than just claiming we did.  Hook it  
into the build system.  Get rid of useless dependency on libpq.  Clean up  
#include list and messy whitespace.  

M contrib/Makefile
M contrib/README
A contrib/pg_test_fsync/.gitignore
M contrib/pg_test_fsync/Makefile
R095 contrib/pg_test_fsync/test_fsync.c contrib/pg_test_fsync/pg_test_fsync.c
M doc/src/sgml/pgtestfsync.sgml

Fix broken markup, also minor copy-editing.

commit   : 0cf3db2175ec770097b9c44d9a8e1e8c281ee5a6    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 18:42:46 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 21 Jan 2011 18:42:46 -0500    

Click here for diff

M doc/src/sgml/pgtestfsync.sgml

Correctly add exceptions to the plpy module for Python 3

commit   : 4609caf3645ae975724af1f7f57f831e516cf220    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 21 Jan 2011 23:46:56 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 21 Jan 2011 23:46:56 +0200    

Click here for diff

The way the exception types where added to the module was wrong for  
Python 3.  Exception classes were not actually available from plpy.  
Fix that by factoring out code that is responsible for defining new  
Python exceptions and make it work with Python 3.  New regression test  
makes sure the plpy module has the expected contents.  
  
Jan Urbanśki, slightly revised by me  

M src/pl/plpython/expected/plpython_test.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_test.sql

Emphasize where OVER needs to be when using a window function.

commit   : d3b372e92d4efdd6f63da35996f04ff009c932b5    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 12:57:49 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 21 Jan 2011 12:57:49 -0500    

Click here for diff

Jeff Turner  

M doc/src/sgml/advanced.sgml

Update SGML docs to point to new /contrib/pg_test_fsync.

commit   : 5925aa09a9110fe0d12393c758812e7149546443    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:52:16 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:52:16 -0500    

Click here for diff

M doc/src/sgml/wal.sgml

Update C banner on new pg_test_fsync file.

commit   : b35bfcae937810f43fdf2327bcea2e8a03ccbf68    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:49:04 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:49:04 -0500    

Click here for diff

M contrib/pg_test_fsync/test_fsync.c

Move test_fsync to /contrib.

commit   : 606a3d54fcd053c31e52886f4c69848a68777480    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:47:54 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 21 Jan 2011 12:47:54 -0500    

Click here for diff

A contrib/pg_test_fsync/Makefile
R100 src/tools/fsync/test_fsync.c contrib/pg_test_fsync/test_fsync.c
M doc/src/sgml/contrib.sgml
M doc/src/sgml/filelist.sgml
A doc/src/sgml/pgtestfsync.sgml
D src/tools/fsync/Makefile
D src/tools/fsync/README

Don't require usage privileges on the foreign data wrapper when creating a foreign table. We check for usage privileges on the foreign server, that ought to be enough.

commit   : 8aea1373d8f88bf389def1af10d06f1e67e25249    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 21 Jan 2011 15:04:05 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 21 Jan 2011 15:04:05 +0200    

Click here for diff

Shigeru HANADA  

M src/backend/commands/foreigncmds.c

Make ALTER TABLE revalidate uniqueness and exclusion constraints.

commit   : 8ceb24568054232696dddc1166a8563bc78c900a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 20 Jan 2011 22:44:10 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 20 Jan 2011 22:44:10 -0500    

Click here for diff

Failure to do so can lead to constraint violations.  This was broken by  
commit 1ddc2703a936d03953657f43345460b9242bbed1 on 2010-02-07, so  
back-patch to 9.0.  
  
Noah Misch.  Regression test by me.  

M src/backend/catalog/index.c
M src/backend/commands/cluster.c
M src/backend/commands/indexcmds.c
M src/backend/commands/tablecmds.c
M src/include/catalog/index.h
M src/include/commands/cluster.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Fix wrong comment

commit   : 14b9f69cb2077c65a09df78d167d45c35b1d7973    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 22:04:36 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 22:04:36 +0200    

Click here for diff

Hitoshi Harada  

M src/pl/plpython/plpython.c

Fix typo

commit   : 81f79dbf2e551978300ee85d42026e26f932089a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 22:01:10 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 22:01:10 +0200    

Click here for diff

Hitoshi Harada  

M src/pl/plpython/plpython.c

Factor out functions responsible for caching I/O routines

commit   : 740e54ca84c437fd67524f97a3ea9ddea752e208    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 21:23:27 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 20 Jan 2011 21:23:27 +0200    

Click here for diff

This makes PLy_procedure_create a bit more manageable.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Add new psql command \dL to list languages.

commit   : 9c5e2c120be42fbd1a743ddf539ff451e1cce23b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 20 Jan 2011 00:00:30 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 20 Jan 2011 00:00:30 -0500    

Click here for diff

Original patch by Fernando Ike, revived by Josh Kuperschmidt, reviewed by Andreas  
Karlsson, and in earlier versions by Tom Lane and Peter Eisentraut.  

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c

Document that WITH queries are also called Common Table Expressions.

commit   : 92f7eebbbd6554f0414ab869abd8733cef751249    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 19 Jan 2011 21:15:45 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 19 Jan 2011 21:15:45 -0500    

Click here for diff

Peter Geoghegan, reviewed by Stephen Frost  

M doc/src/sgml/acronyms.sgml
M doc/src/sgml/queries.sgml

Show correct datatype for pg_class.relpersistence, plus a typo fix.

commit   : 357faea82e93712937cd109b48ce006789ec7a8f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 19 Jan 2011 16:09:08 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 19 Jan 2011 16:09:08 -0500    

Click here for diff

Thom Brown  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/ref/security_label.sgml

Add braces around an if block, for readability

commit   : fbed5d48307528c8b49ba48e741817e75146ea8f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 21:56:21 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 21:56:21 +0200    

Click here for diff

Jan Urbański, reviewed by Peter Eisentraut, Álvaro Herrera, Tom Lane :-)  

M src/pl/plpython/plpython.c

Free plan values in the PLyPlanObject dealloc function

commit   : 847e8c7783e877bbdc6a89250ade7d264eee5593    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 00:10:19 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 00:10:19 +0200    

Click here for diff

Jan Urbański  

M src/pl/plpython/plpython.c

Improve message for errors in compiling anonymous PL/Python blocks

commit   : 719461b7a28c04a84b0fb1e5faa9b3cb5ee66605    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 00:03:57 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 19 Jan 2011 00:03:57 +0200    

Click here for diff

The previous code would try to print out a null pointer.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Use PyObject_New instead of PyObject_NEW

commit   : d9a95c0adb11f7a3ca5aa9ab8a900018832ed4ea    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:53:10 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:53:10 +0200    

Click here for diff

The latter is undocumented and the speed gain is negligible.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Skip dropped attributes when converting Python objects to tuples

commit   : 41282111e6cc73aca4b63dffe950ba7a63e4bd8a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:39:09 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:39:09 +0200    

Click here for diff

Pay attention to the attisdropped field and skip over TupleDesc fields  
that have it set.  Not a real problem until we get table returning  
functions, but it's the right thing to do anyway.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Use palloc in TopMemoryContext instead of malloc

commit   : 59ea9ef9aa216d0bc718539cd5622628943d3f21    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:27:53 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:27:53 +0200    

Click here for diff

As discussed, even if the PL needs a permanent memory location, it  
should use palloc, not malloc.  It also makes error handling easier.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Fix an error when a set-returning function fails halfway through the execution

commit   : 88047e59ba12479ef9adcaf3dee61b48566ce6eb    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:22:37 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 18 Jan 2011 23:22:37 +0200    

Click here for diff

If the function using yield to return rows fails halfway, the iterator  
stays open and subsequent calls to the function will resume reading  
from it.  The fix is to unref the iterator and set it to NULL if there  
has been an error.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

In test_fsync, adjust test headings to match wal_sync_method values; add more test cases for open_sync of different sizes.

commit   : 8995440e387846261d18e728f11adc528ccc5c1b    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 18 Jan 2011 15:53:20 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 18 Jan 2011 15:53:20 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Avoid detoast in texteq/textne/byteaeq/byteane for unequal-length strings.

commit   : 1b393f4e5db4fd6bbc86a4e88785b6945a1541d0    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 18 Jan 2011 14:09:22 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 18 Jan 2011 14:09:22 -0500    

Click here for diff

We can get the length of a compressed or out-of-line datum without actually  
detoasting it.  If the lengths of two strings are unequal, we can then  
conclude they are unequal without detoasting.  That saves considerable work  
in an admittedly less-common case, without costing anything much when the  
optimization doesn't apply.  
  
Noah Misch  

M src/backend/utils/adt/varlena.c

Log replication connections only when log_connections is on

commit   : 6e1726d082b5a9c305ed44a69ff50bc3407d01a2    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 18 Jan 2011 20:02:25 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 18 Jan 2011 20:02:25 +0100    

Click here for diff

Previously we'd always log replication connections, with no  
way to turn them off.  

M src/backend/utils/init/postinit.c

Fix thinko in comment. Spotted by Jim Nasby.

commit   : b1dc45c11d8e63df34044ea73e643f5fa9d8c316    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 18 Jan 2011 10:38:15 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 18 Jan 2011 10:38:15 +0200    

Click here for diff

M src/backend/storage/ipc/procarray.c

Remove "github test" that somehow got into my tree. Sorry.

commit   : 4acfd43a7d6194fa735a6b7b06a1554909123d41    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 21:40:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 21:40:42 -0500    

Click here for diff

M src/tools/fsync/README

In the docs, better distinguish server from client SSL settings in the documentation.

commit   : 74bcdfbe2dd656f04db4e883b5bdcdafddebff08    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 21:30:28 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 21:30:28 -0500    

Click here for diff

Ray Stell  
  
Also fix some libpq title capitalization problems.  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/runtime.sgml

github test

commit   : 2c38cce1be4f57e353805e529e6d993c9c28535e    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 20:14:07 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 20:14:07 -0500    

Click here for diff

M src/tools/fsync/README

Use HTABs instead of Python dictionary objects to cache procedures

commit   : 46211da1b84bc3537e799ee1126098e71c2428e8    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 17 Jan 2011 21:46:36 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 17 Jan 2011 21:46:36 +0200    

Click here for diff

Two separate hash tables are used for regular procedures and for  
trigger procedures, since the way trigger procedures work is quite  
different from normal stored procedures.  Change the signatures of  
PLy_procedure_{get,create} to accept the function OID and a Boolean  
flag indicating whether it's a trigger.  This should make implementing  
a PL/Python validator easier.  
  
Using HTABs instead of Python dictionaries makes error recovery  
easier, and allows for procedures to be cached based on their OIDs,  
not their names.  It also allows getting rid of the PyCObject field  
that used to hold a pointer to PLyProcedure, since PyCObjects are  
deprecated in Python 2.7 and replaced by Capsules in Python 3.  
  
Jan Urbański  

M src/pl/plpython/plpython.c

Fix miscalculation of itemsafter in array_set_slice().

commit   : bdd8ed973da9ab48aba2292b01f71d2f9968b82c    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 17 Jan 2011 12:38:52 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 17 Jan 2011 12:38:52 -0500    

Click here for diff

If the slice to be assigned to was before the existing array lower bound  
(requiring at least one null element to spring into existence to fill the  
gap), the code miscalculated how many entries needed to be copied from  
the old array's null bitmap.  This could result in trashing the array's  
data area (as seen in bug #5840 from Karsten Loesing), or worse.  
  
This has been broken since we first allowed the behavior of assigning to  
non-adjacent slices, in 8.2.  Back-patch to all affected versions.  

M src/backend/utils/adt/arrayfuncs.c

Increment Py_None refcount for NULL array elements

commit   : 978445bece6ce3df55599ee971a4a5dc217bf34c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 17 Jan 2011 12:59:41 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 17 Jan 2011 12:59:41 -0300    

Click here for diff

Per bug #5835 by Julien Demoor  
Author: Alex Hunsaker  

M src/pl/plpython/plpython.c

Add getopt() support to test_fsync; also fix printf() format problem.

commit   : 08af45f4ff89ff5bee25c7d5bf496e987eb90060    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 09:35:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 17 Jan 2011 09:35:51 -0500    

Click here for diff

M src/tools/fsync/README
M src/tools/fsync/test_fsync.c

Set fallback_application_name in walreceiver

commit   : 48075095ac3ce1aaa63624ea0148dbe5bcba3b09    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 17 Jan 2011 11:42:12 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 17 Jan 2011 11:42:12 +0100    

Click here for diff

Makes replication slaves identify themselves in the new  
pg_stat_replication view.  

M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

Before exiting walreceiver, fsync() all the WAL received.

commit   : 34ef02b4d4c06e2bae6ad09cfd6d9c097eb73743    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 17 Jan 2011 12:22:24 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 17 Jan 2011 12:22:24 +0200    

Click here for diff

Otherwise WAL recovery will replay the un-flushed WAL after walreceiver has  
exited, which can lead to a non-recoverable standby if the system crashes hard  
at that point.  

M src/backend/replication/walreceiver.c

In test_fsync, use #define for printf format of ops/sec.

commit   : e0c274679cb50064a92472c94c7ef5849a156536    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 16 Jan 2011 08:36:43 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 16 Jan 2011 08:36:43 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Use O_DIRECT in O_SYNC test of different size. Restructure O_DIRECT error reporting to be more consistent.

commit   : 6dc15e3befaa6a3ff72633a2084ad1e1466edcde    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 19:40:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 19:40:49 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Reverse number of stars used for test_fsync details.

commit   : 3eebb33dddcfe4ac0719b697c1ebd3694038054e    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 18:40:10 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 18:40:10 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

In test_fsync, warn about options without o_direct that are not used by Postgres, and cases where o_direct does not work with certain file systems.

commit   : 431605f666cfb223cd615ec8c63cbdea07295550    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 18:27:10 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 18:27:10 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Move a couple of declarations to reflect where the routines really are.

commit   : 6ca452ba7fca14dad16425a56ffa1c8a93496b5f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 15 Jan 2011 16:09:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 15 Jan 2011 16:09:05 -0500    

Click here for diff

M src/include/commands/defrem.h

Add .gitignore to silence git complaints about parser/scanner output files.

commit   : 36750dcef58550c652cfff861f9aad057a391fb9    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 15 Jan 2011 16:05:28 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 15 Jan 2011 16:05:28 -0500    

Click here for diff

A src/backend/replication/.gitignore

Have test_fsync output details that fdatasync is the default wal_sync_method on Linux.

commit   : 001d3664e32c0d156215bbfeccea3272aaf17722    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 15:00:20 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 15:00:20 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Restructure test_fync to use modular C so there is less duplicate code and it can be enhanced easier.

commit   : 169516ad9395e91d206cbf5bf32c5d2fa34d4111    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 14:42:12 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 14:42:12 -0500    

Click here for diff

M src/tools/fsync/README
M src/tools/fsync/test_fsync.c

Enumerate available tablespaces after starting the backup

commit   : 3866ff6149a3b072561e65b3f71f63498e77b6b2    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 15 Jan 2011 19:18:14 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 15 Jan 2011 19:18:14 +0100    

Click here for diff

This closes a race condition where if a tablespace was created  
after the enumeration happened but before the do_pg_start_backup()  
was called, the backup would be incomplete. Now that it's done  
while we are in backup mode, WAL replay will recreate it during  
restore.  
  
Noted by Heikki.  

M src/backend/replication/basebackup.c

Improve output display of test_fsync.

commit   : 3ab80cfe031b616638eb6956010dcc9cb6426631    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 12:24:05 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 12:24:05 -0500    

Click here for diff

M src/tools/fsync/test_fsync.c

Apply patch for test_fsync to add tests for O_DIRECT.

commit   : 677b06ca462ec6fd98da9369a2eae6085c9d7fed    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 11:54:43 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 15 Jan 2011 11:54:43 -0500    

Click here for diff

Adjusted patch by Josh Berkus  

M src/tools/fsync/Makefile
M src/tools/fsync/README
M src/tools/fsync/test_fsync.c

Treat a WAL sender process that hasn't started streaming yet as a regular backend, as far as the postmaster shutdown logic is concerned. That means, fast shutdown will wait for WAL sender processes to exit before signaling bgwriter to finish. This avoids race conditions between a base backup stopping or starting, and bgwriter writing the shutdown checkpoint WAL record. We don't want e.g the end-of-backup WAL record to be written after the shutdown checkpoint.

commit   : 8f5d65e916796aaee1bf7dd66daf45ca56cd13be    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 15 Jan 2011 16:27:40 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 15 Jan 2011 16:27:40 +0200    

Click here for diff

M src/backend/replication/walsender.c
M src/backend/storage/ipc/pmsignal.c
M src/include/storage/pmsignal.h

Use a lexer and grammar for parsing walsender commands

commit   : fcd810c69adf11b6ec1cff35359be0dd27662eff    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 14 Jan 2011 16:30:33 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 14 Jan 2011 16:30:33 +0100    

Click here for diff

Makes it easier to parse mainly the BASE_BACKUP command  
with it's options, and avoids having to manually deal  
with quoted identifiers in the label (previously broken),  
and makes it easier to add new commands and options in  
the future.  
  
In passing, refactor the case statement in the walsender  
to put each command in it's own function.  

M doc/src/sgml/protocol.sgml
M src/backend/replication/Makefile
M src/backend/replication/basebackup.c
A src/backend/replication/repl_gram.y
A src/backend/replication/repl_scanner.l
M src/backend/replication/walsender.c
M src/include/replication/basebackup.h
A src/include/replication/replnodes.h
M src/include/replication/walsender.h
M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/pgbison.bat
M src/tools/msvc/pgflex.bat

Exit from base backups when shutdown is requested

commit   : 688423d004f4092aed73c73a3281c281d476436d    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 14 Jan 2011 12:36:45 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 14 Jan 2011 12:36:45 +0100    

Click here for diff

When the exit waits until the whole backup completes, it may take  
a very long time.  
  
In passing, add back an error check in the main loop so we detect  
clients that disconnect much earlier if the backup is large.  

M src/backend/replication/basebackup.c
M src/backend/replication/walsender.c
M src/include/replication/walsender.h

Code review for postmaster.pid contents changes.

commit   : 52948169bcddf443b76d6ff1806259b153a2ac04    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 13 Jan 2011 19:01:28 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 13 Jan 2011 19:01:28 -0500    

Click here for diff

Fix broken test for pre-existing postmaster, caused by wrong code for  
appending lines to the lockfile; don't write a failed listen_address  
setting into the lockfile; don't arbitrarily change the location of the  
data directory in the lockfile compared to previous releases; provide more  
consistent and useful definitions of the socket path and listen_address  
entries; avoid assuming that pg_ctl has the same DEFAULT_PGSOCKET_DIR as  
the postmaster; assorted code style improvements.  

M doc/src/sgml/storage.sgml
M src/backend/port/ipc_test.c
M src/backend/port/sysv_shmem.c
M src/backend/postmaster/postmaster.c
M src/backend/utils/init/miscinit.c
M src/bin/pg_ctl/pg_ctl.c
M src/include/miscadmin.h

Revert incorrect memory-conservation hack in inheritance_planner().

commit   : f0f36045b2e3d037bb7647d84373404fa4ba9588    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 13 Jan 2011 14:33:19 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 13 Jan 2011 14:33:19 -0500    

Click here for diff

This reverts commit d1001a78ce612a16ea622b558f5fc2b68c45ab4c of 2010-12-05,  
which was broken as reported by Jeff Davis.  The problem is that the  
individual planning steps may have side-effects on substructures of  
PlannerGlobal, not only the current PlannerInfo root.  Arranging to keep  
all such side effects in the main planning context is probably possible,  
but it would change this from a quick local hack into a wide-ranging and  
rather fragile endeavor.  Which it's not worth.  

M src/backend/optimizer/plan/planner.c

Make sure walsender state is only read while holding the spinlock

commit   : 9eacd427e811a97337de1fdd61a3cb90604981ad    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 13 Jan 2011 18:51:13 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 13 Jan 2011 18:51:13 +0100    

Click here for diff

Noted by Robert Haas.  

M src/backend/replication/walsender.c

More libpq documentation adjustments from Leslie S Satenstein, reviewed by Robert Haas.

commit   : 712dd95370fc6c3a8d20f71b8e195a7af3c50f42    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 13 Jan 2011 12:07:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 13 Jan 2011 12:07:51 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

Fix the logic in libpqrcv_receive() to determine if there's any incoming data that can be read without blocking. It used to conclude that there isn't, even though there was data in the socket receive buffer. That lead walreceiver to flush the WAL after every received chunk, potentially causing big performance issues.

commit   : a5a02a744555789ab8390dbf57271e9d07127602    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 13 Jan 2011 17:51:28 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 13 Jan 2011 17:51:28 +0200    

Click here for diff

Backpatch to 9.0, because the performance impact can be very significant.  

M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

Workaround for recursive make breakage

commit   : c667cc24e888dc4efe4c2412ad8dd13a190295e3    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 13 Jan 2011 09:32:06 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 13 Jan 2011 09:32:06 +0200    

Click here for diff

Changing a file two directory levels deep under src/backend/ would not  
cause the postgres binary to be rebuilt.  This change fixes it, but no  
one knows why.  

M src/backend/common.mk

Don't run regression tests in SQL_ASCII encoding by default

commit   : 35eb0958be476d58dcc8ba462d57384e74a62d88    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 13 Jan 2011 09:13:12 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 13 Jan 2011 09:13:12 +0200    

Click here for diff

Instead, run them in the encoding that the locale selects, which is  
more representative of real use.  
  
Also document how locale and encoding for regression test runs can be  
selected.  

M doc/src/sgml/regress.sgml
M src/test/regress/GNUmakefile

Apply libpq documentation patches submitted by Leslie S Satenstein and reviewed by Robert Haas.

commit   : a0423ec02df3e311d6d5888170cb25a8c14bc6bf    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 12 Jan 2011 20:49:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 12 Jan 2011 20:49:49 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

Fix PlanRowMark/ExecRowMark structures to handle inheritance correctly.

commit   : d487afbb813b7ca8803e20974b9e45530a1f4ef1    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 12 Jan 2011 20:47:02 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 12 Jan 2011 20:47:02 -0500    

Click here for diff

In an inherited UPDATE/DELETE, each target table has its own subplan,  
because it might have a column set different from other targets.  This  
means that the resjunk columns we add to support EvalPlanQual might be  
at different physical column numbers in each subplan.  The EvalPlanQual  
rewrite I did for 9.0 failed to account for this, resulting in possible  
misbehavior or even crashes during concurrent updates to the same row,  
as seen in a recent report from Gordon Shannon.  Revise the data structure  
so that we track resjunk column numbers separately for each subplan.  
  
I also chose to move responsibility for identifying the physical column  
numbers back to executor startup, instead of assuming that numbers derived  
during preprocess_targetlist would stay valid throughout subsequent  
massaging of the plan.  That's a bit slower, so we might want to consider  
undoing it someday; but it would complicate the patch considerably and  
didn't seem justifiable in a bug fix that has to be back-patched to 9.0.  

M src/backend/executor/execJunk.c
M src/backend/executor/execMain.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeModifyTable.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/include/executor/executor.h
M src/include/nodes/execnodes.h
M src/include/nodes/plannodes.h

Revert patch adding support for logging the current role.

commit   : 7a32ff97321408afa0ddfcae1a4a060062956d24    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 12 Jan 2011 11:59:21 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 12 Jan 2011 11:59:21 -0500    

Click here for diff

This reverts commit a8a8867912c46a68c9ac14903b3dba2fab8f7097, committed  
by me earlier today (2011-01-12).  This isn't safe inside an aborted  
transaction.  
  
Noted by Tom Lane.  

M doc/src/sgml/config.sgml
M src/backend/utils/error/elog.c

Add support for logging the current role.

commit   : a8a8867912c46a68c9ac14903b3dba2fab8f7097    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 12 Jan 2011 11:34:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 12 Jan 2011 11:34:53 -0500    

Click here for diff

Stephen Frost, with some editorialization by me.  

M doc/src/sgml/config.sgml
M src/backend/utils/error/elog.c

Unbreak regression tests, apparently broken by commit 4c8e20f

commit   : b7a0b42641e764a1e4abc39cc4311b5c779f5955    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 11 Jan 2011 22:27:20 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 11 Jan 2011 22:27:20 -0500    

Click here for diff

M src/test/regress/expected/rules.out

Re-add recursive coverage target in src/backend/

commit   : e3094fd3a8052bb600b287c5dd844b3b0ac2fe11    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 12 Jan 2011 00:26:20 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 12 Jan 2011 00:26:20 +0200    

Click here for diff

This was lost during the recent recursive make change.  

M src/backend/common.mk

Add some subsection headings

commit   : b95ea9dd628a93f564e460b8870228755b520220    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 11 Jan 2011 22:47:58 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 11 Jan 2011 22:47:58 +0200    

Click here for diff

M doc/src/sgml/regress.sgml

Track walsender state in shared memory and expose in pg_stat_replication

commit   : 4c8e20f815cbdf043d6d27906fd85ae50c9e4870    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 21:25:28 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 21:25:28 +0100    

Click here for diff

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/replication/basebackup.c
M src/backend/replication/walsender.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/replication/walsender.h

Add missing function prototype, for consistency

commit   : 47a5f3e9dab68f47ebadc759afb97b900c437c54    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 21:12:12 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 21:12:12 +0100    

Click here for diff

M src/backend/replication/basebackup.c

Adjust basebackup.c to suppress compiler warnings.

commit   : e6dce4e439e1d271dad9a95bc4b94147be2fc39a    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 11 Jan 2011 13:41:13 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 11 Jan 2011 13:41:13 -0500    

Click here for diff

Some versions of gcc complain about "variable `tablespaces' might be  
clobbered by `longjmp' or `vfork'" with the original coding.  Fix by  
moving the PG_TRY block into a separate subroutine.  

M src/backend/replication/basebackup.c

Tweak create_index_paths()'s test for whether to consider a bitmap scan.

commit   : 9d1ac2f5fa4043529dbaff5ebdc73405fa73207b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 11 Jan 2011 12:12:04 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 11 Jan 2011 12:12:04 -0500    

Click here for diff

Per my note of a couple days ago, create_index_paths would refuse to  
consider any path at all for GIN indexes if the selectivity estimate came  
out as 1.0; not even if you tried to force it with enable_seqscan.  While  
this isn't really a bad outcome in practice, it could be annoying for  
testing purposes.  Adjust the test for "is this path only useful for  
sorting" so that it doesn't fire on paths with nil pathkeys, which will  
include all GIN paths.  

M src/backend/optimizer/path/indxpath.c

Typo fix

commit   : 1c400d330934eb6d70982af522f2bc0458eef48d    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 10:45:16 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 10:45:16 +0100    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/ref/prepare_transaction.sgml

Reset walsender ps title in the main loop

commit   : b7ebda9d8c6f78b3bb31247531d0ef0e64b32a16    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 10:04:54 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 11 Jan 2011 10:04:54 +0100    

Click here for diff

When in streaming mode we can never get out, so it will never  
be required, but after a base backup (or other operations)  
we can get back to the loop, so the title needs to be cleared.  

M src/backend/replication/walsender.c

Set process title to indicate base backup is running

commit   : 2e36343f82377fbb50834bba6557f8f243fecb34    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 10 Jan 2011 21:50:10 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 10 Jan 2011 21:50:10 +0100    

Click here for diff

M src/backend/replication/basebackup.c

Leave temporary files out of streaming base backups.

commit   : dc1305ce5ffef157410b6e0171d71fa16da4cc9e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 10 Jan 2011 19:42:05 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 10 Jan 2011 19:42:05 +0200    

Click here for diff

M src/backend/replication/basebackup.c

A toast relid field are no longer needed in pg_upgrade's rel arrays, so remove them. Also other renaming.

commit   : 0a5f11993195d74f23b63cc5c2d7024c6d27d7e2    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 10 Jan 2011 11:45:22 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 10 Jan 2011 11:45:22 -0500    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h

Backend support for streaming base backups

commit   : 0eb59c4591ecf4f1c69d89e9f043a18e7dce9e47    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 10 Jan 2011 14:03:55 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 10 Jan 2011 14:03:55 +0100    

Click here for diff

Add BASE_BACKUP command to walsender, allowing it to stream a  
base backup to the client (in tar format). The syntax is still  
far from ideal, that will be fixed in the switch to use a proper  
grammar for walsender.  
  
No client included yet, will come as a separate commit.  
  
Magnus Hagander and Heikki Linnakangas  

M doc/src/sgml/protocol.sgml
M src/backend/replication/Makefile
A src/backend/replication/basebackup.c
M src/backend/replication/walsender.c
A src/include/replication/basebackup.h

Update contrib/pg_trgm for new GIN extractQuery API.

commit   : be0c3ea2d30ba225f0249ae88d6b0bdf3b753162    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 18:04:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 18:04:20 -0500    

Click here for diff

No actual change in functionality ... just get rid of uselessly complex  
code to pass the number of keys via extra_data.  

M contrib/pg_trgm/trgm_gin.c

Update contrib/hstore for new GIN extractQuery API.

commit   : ba398969cd1b32c550345bcf6b713deeb0a7d1de    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 16:43:56 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 16:43:56 -0500    

Click here for diff

In particular, make hstore @> '' succeed for all hstores, likewise  
hstore ?& '{}'.  Previously the results were inconsistent and could  
depend on whether you were using a GiST index, GIN index, or seqscan.  

M contrib/hstore/expected/hstore.out
M contrib/hstore/hstore_gin.c
M contrib/hstore/hstore_op.c

Improve comment.

commit   : 327b25768217f5d4fd82770d0ab449814548f094    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 15:24:22 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 15:24:22 -0500    

Click here for diff

M contrib/btree_gin/btree_gin.c

Split pg_start_backup() and pg_stop_backup() into two pieces

commit   : 4448917d51d6f87655ce357cca009634b0a136e4    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 21:00:28 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 21:00:28 +0100    

Click here for diff

Move the actual functionality into a separate function that's  
easier to call internally, and change the SQL-callable function  
to be a wrapper calling this.  
  
Also create a pg_abort_backup() function, only callable internally,  
that does only the most vital parts of pg_stop_backup(), making it  
safe(r) to call from error handlers.  

M src/backend/access/transam/xlog.c
M src/include/access/xlog.h

Fix crash in the new GiST insertion code, when an update splits the root page.

commit   : ca63029eac379d82f78a985a5d4068b9954deb02    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sun, 9 Jan 2011 21:09:58 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sun, 9 Jan 2011 21:09:58 +0200    

Click here for diff

This bug was exercised by contrib/intarray/bench, as noted by Tom Lane.  

M src/backend/access/gist/gist.c

Fix up core tsquery GIN support for new extractQuery API.

commit   : 52fd2d65a33c9c33b29788e9df89d7716f1ec0bc    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 14:34:50 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 14:34:50 -0500    

Click here for diff

No need for the empty-prefix-match kluge to force a full scan anymore.  

M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsvector_op.c
M src/include/tsearch/ts_utils.h

Use array_contains_nulls instead of ARR_HASNULL on user-supplied arrays.

commit   : 304845075ce0eb9045af50ed32c688a0cb8dd490    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 13:09:07 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 13:09:07 -0500    

Click here for diff

This applies the fix for bug #5784 to remaining places where we wish  
to reject nulls in user-supplied arrays.  In all these places, there's  
no reason not to allow a null bitmap to be present, so long as none of  
the current elements are actually null.  
  
I did not change some other places where we are looking at system catalog  
entries or aggregate transition values, as the presence of a null bitmap  
in such an array would be suspicious.  

M contrib/cube/cube.c
M contrib/ltree/_ltree_gist.c
M contrib/ltree/_ltree_op.c
M contrib/ltree/lquery_op.c
M contrib/ltree/ltree_gist.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/arrayutils.c
M src/backend/utils/adt/tsrank.c

Ensure the directory for gram.h is created on win32

commit   : 361418be7c23e236d07edf4052de85ab8f32d88d    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 17:01:15 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 17:01:15 +0100    

Click here for diff

Result of bad testing of my last commit.  

M src/tools/msvc/Install.pm

Properly install gram.h on MSVC builds

commit   : 3457514c2d9bac552d4caeb1d3ac5a8d03d3a439    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 15:31:48 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 15:31:48 +0100    

Click here for diff

This file is now needed by pgAdmin builds, which started  
failing since it was missing in the installer builds.  

M src/tools/msvc/Install.pm

commit   : db4d22d0eff091e96d92c82566c9e9d297040b93    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 15:06:55 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 9 Jan 2011 15:06:55 +0100    

Click here for diff

Add support for reading back information about the symbolic  
links we've created with pgsymlink(), which are actually  
Junction Points. Just like pgsymlink() can only create directory  
symlinks, pgreadlink() can only read directory symlinks.  

M src/include/port.h
M src/port/dirmod.c

There is no need to have to identical functions in ecpg thus removing one of them.

commit   : 1066dbfb85462116e4ed3d889a686f1e48333467    
  
author   : Michael Meskes <[email protected]>    
date     : Sun, 9 Jan 2011 02:45:56 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Sun, 9 Jan 2011 02:45:56 +0100    

Click here for diff

M src/interfaces/ecpg/preproc/descriptor.c
M src/interfaces/ecpg/preproc/ecpg.addons
M src/interfaces/ecpg/preproc/ecpg.header
M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/preproc/extern.h
M src/interfaces/ecpg/preproc/parse.pl
M src/interfaces/ecpg/preproc/type.c
M src/interfaces/ecpg/preproc/variable.c

Fix assorted corner-case bugs in contrib/intarray.

commit   : fdf2dbda3f49310b20780ad7b290da935cd2335d    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 00:39:21 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 9 Jan 2011 00:39:21 -0500    

Click here for diff

The array containment operators now behave per mathematical expectation  
for empty arrays (ie, an empty array is contained in anything).  
Both these operators and the query_int operators now work as expected in  
GiST and GIN index searches, rather than having corner cases where the  
index searches gave different answers.  
  
Also, fix unexpected failures where the operators would claim that an array  
contained nulls, when in fact there was no longer any null present (similar  
to bug #5784).  The restriction to not have nulls is still there, as  
removing it would take a lot of added code complexity and probably slow  
things down significantly.  
  
Also, remove the arbitrary restriction to 1-D arrays; unlike the other  
restriction, this was buying us nothing performance-wise.  
  
Assorted cosmetic improvements and marginal performance improvements, too.  

M contrib/intarray/_int.h
M contrib/intarray/_int_bool.c
M contrib/intarray/_int_gin.c
M contrib/intarray/_int_gist.c
M contrib/intarray/_int_op.c
M contrib/intarray/_int_tool.c
M contrib/intarray/_intbig_gist.c
M contrib/intarray/uninstall__int.sql
M doc/src/sgml/intarray.sgml

Add array_contains_nulls() function in arrayfuncs.c.

commit   : adf328c0e1bfde90b944d53f7197fc436bc0c707    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 20:24:08 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 20:24:08 -0500    

Click here for diff

This will support fixing contrib/intarray (and probably other places)  
so that they don't have to fail on arrays that contain a null bitmap  
but no live null entries.  

M src/backend/utils/adt/arrayfuncs.c
M src/include/utils/array.h

Fix up gincostestimate for new extractQuery API.

commit   : 4d1b76e49eb848b046ddb1beb0f4589816ec8261    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 20:13:33 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 20:13:33 -0500    

Click here for diff

The only reason this wasn't crashing while testing the core anyarray  
operators was that it was disabled for those cases because of passing the  
wrong type information to get_opfamily_proc :-(.  So fix that too, and make  
it insist on finding the support proc --- in hindsight, silently doing  
nothing is not as sane a coping mechanism as all that.  

M src/backend/utils/adt/selfuncs.c

In ecpg's parser removed a fixed length limit for constants defining an array dimension.

commit   : 833a2b57bcbebda29fc1eb0b98c0d94ae2c31b7b    
  
author   : Michael Meskes <[email protected]>    
date     : Sat, 8 Jan 2011 18:35:37 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Sat, 8 Jan 2011 18:35:37 +0100    

Click here for diff

M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/test/expected/preproc-array_of_struct.c

Remove pg_am.amindexnulls.

commit   : 7e2f906201c8bb95f7fb17e56b8740c38bda5441    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 16:08:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 16:08:05 -0500    

Click here for diff

The only use we have had for amindexnulls is in determining whether an  
index is safe to cluster on; but since the addition of the amclusterable  
flag, that usage is pretty redundant.  
  
In passing, clean up assorted sloppiness from the last patch that touched  
pg_am.h: Natts_pg_am was wrong, and ambuildempty was not documented.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/indexam.sgml
M src/backend/commands/cluster.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_am.h

Refactor GIN's handling of duplicate search entries.

commit   : 56a57473a999b0497e63bde3e303beda5a3c0ff3    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 14:47:13 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 8 Jan 2011 14:47:13 -0500    

Click here for diff

The original coding could combine duplicate entries only when they  
originated from the same qual condition.  In particular it could not  
combine cases where multiple qual conditions all give rise to full-index  
scan requests, which is an expensive case well worth optimizing.  Refactor  
so that duplicates are recognized across all the quals.  

M src/backend/access/gin/ginget.c
M src/backend/access/gin/ginscan.c
M src/include/access/gin_private.h

In pg_upgrade, remove functions that did sequential array scans looking up relations, but rather order old/new relations and use the same array index value for both. This should speed up pg_upgrade for databases with many relations.

commit   : 002c105a0706bd1c1e939fe0f47ecdceeae6c52d    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 13:44:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 13:44:44 -0500    

Click here for diff

M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c

In pg_upgrade, clarify use of install_db_support_functions().

commit   : ebaf648ad2e471b2e2003ecfe4740ce27226c02a    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 09:11:48 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 09:11:48 -0500    

Click here for diff

M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h

In pg_upgrade, remove unnecessary separate handling of toast tables now that we restore by oid; they can be handled like regular tables when creating the file mapping structure.

commit   : a60b32b3dcb4d49a60c96558ce405764ac17c799    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 08:01:12 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 8 Jan 2011 08:01:12 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Remove bogus claims regarding createuser defaults.

commit   : af84bee43e356866dc46c95ae5bf77996a8237ff    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 8 Jan 2011 06:12:05 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 8 Jan 2011 06:12:05 -0500    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/ref/createuser.sgml

Update GIN support function definitions for contrib/intarray.

commit   : 69c26c57cfb4194b8cdc69b48b8a71dad1f92bac    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 23:34:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 23:34:06 -0500    

Click here for diff

The underlying C code still needs work, but this at least gets its  
current regression test passing again.  

M contrib/intarray/_int.sql.in

Document why pg_upgrade preserves pg_auth.oid (because they are stored in pg_largeobject_metadata).

commit   : 133641a48eb9a3406fda7014a60fd42dfecfa089    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 23:02:03 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 23:02:03 -0500    

Click here for diff

M contrib/pg_upgrade/pg_upgrade.c

More pg_upgrade relfilenode C comments added.

commit   : 2f657e4d720d08b26234f3b9e40e347f3cc42220    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:57:30 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:57:30 -0500    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c

Simplify pg_upgrade C comment about what is preserved.

commit   : 3095643d374ca79e5aa347cefbaebdcf70169386    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:46:41 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:46:41 -0500    

Click here for diff

M contrib/pg_upgrade/pg_upgrade.c

In pg_upgrade, track only one copy of namespace/relname in FileNameMap because the old and new values are identical.

commit   : f75383e6e8263cd98582edb0b3884132ad9e368a    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:36:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:36:51 -0500    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c

Fix C indenting in pg_upgrade function.

commit   : 519c008a966251e45d683738d89f238e5c801781    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:01:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 22:01:44 -0500    

Click here for diff

M contrib/pg_upgrade/function.c

Fix pg_upgrade of large object permissions by preserving pg_auth.oid, which is stored in pg_largeobject_metadata.

commit   : d8d3d2a4f37f6df5d0118b7f5211978cca22091a    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 21:59:29 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 21:59:29 -0500    

Click here for diff

No backpatch to 9.0 because you can't migrate from 9.0 to 9.0 with the  
same catversion (because of tablespace conflict), and a pre-9.0  
migration to 9.0 has not large object permissions to migrate.  

M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade_support/pg_upgrade_support.c
M src/backend/commands/user.c
M src/bin/pg_dump/pg_dumpall.c

Force pg_upgrade's to preserve pg_class.oid, not pg_class.relfilenode. Toast tables have identical pg_class.oid and pg_class.relfilenode, but for clarity it is good to preserve the pg_class.oid.

commit   : 2896c87ce4dc789722296f010eaefd5cbb86ece3    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 21:25:34 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 7 Jan 2011 21:25:34 -0500    

Click here for diff

Update comments regarding what is preserved, and do some  
variable/function renaming for clarity.  

M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade_support/pg_upgrade_support.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/toasting.c
M src/backend/commands/typecmds.c
M src/bin/pg_dump/pg_dump.c

Ooops, forgot to fix contrib/tsearch2's references to GIN support funcs.

commit   : 541fc3d4df66a5e51d172a78288069bd92dda0c8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 21:10:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 21:10:48 -0500    

Click here for diff

M contrib/tsearch2/tsearch2.sql.in

Fix the built-in GIN support procedure declarations in pg_proc.h.

commit   : a032d50128f30029651806030f71d594ed6b29e1    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 20:40:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 20:40:48 -0500    

Click here for diff

Add more "internal" arguments so that these pg_proc entries reflect the  
current preferred API.  This is purely a cosmetic change, since GIN doesn't  
actually consult the pg_proc entry when calling a support function.  
Accordingly, no catversion bump.  

M src/include/catalog/pg_proc.h

Fix GIN to support null keys, empty and null items, and full index scans.

commit   : 73912e7fbd1b52c51d914214abbec1cda64595f2    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 19:16:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 7 Jan 2011 19:16:24 -0500    

Click here for diff

Per my recent proposal(s).  Null key datums can now be returned by  
extractValue and extractQuery functions, and will be stored in the index.  
Also, placeholder entries are made for indexable items that are NULL or  
contain no keys according to extractValue.  This means that the index is  
now always complete, having at least one entry for every indexed heap TID,  
and so we can get rid of the prohibition on full-index scans.  A full-index  
scan is implemented much the same way as partial-match scans were already:  
we build a bitmap representing all the TIDs found in the index, and then  
drive the results off that.  
  
Also, introduce a concept of a "search mode" that can be requested by  
extractQuery when the operator requires matching to empty items (this is  
just as cheap as matching to a single key) or requires a full index scan  
(which is not so cheap, but it sure beats failing or giving wrong answers).  
The behavior remains backward compatible for opclasses that don't return  
any null keys or request a non-default search mode.  
  
Using these features, we can now make the GIN index opclass for anyarray  
behave in a way that matches the actual anyarray operators for &&, <@, @>,  
and = ... which it failed to do before in assorted corner cases.  
  
This commit fixes the core GIN code and ginarrayprocs.c, updates the  
documentation, and adds some simple regression test cases for the new  
behaviors using the array operators.  The tsearch and contrib GIN opclass  
support functions still need to be looked over and probably fixed.  
  
Another thing I intend to fix separately is that this is pretty inefficient  
for cases where more than one scan condition needs a full-index search:  
we'll run duplicate GinScanEntrys, each one of which builds a large bitmap.  
There is some existing logic to merge duplicate GinScanEntrys but it needs  
refactoring to make it work for entries belonging to different scan keys.  
  
Note that most of gin.h has been split out into a new file gin_private.h,  
so that gin.h doesn't export anything that's not supposed to be used by GIN  
opclasses or the rest of the backend.  I did quite a bit of other code  
beautification work as well, mostly fixing comments and choosing more  
appropriate names for things.  

M contrib/hstore/hstore_gin.c
M doc/src/sgml/gin.sgml
M src/backend/access/gin/README
M src/backend/access/gin/ginarrayproc.c
M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/include/access/gin.h
A src/include/access/gin_private.h
M src/include/utils/builtins.h
M src/test/regress/data/array.data
M src/test/regress/expected/arrays.out
M src/test/regress/expected/create_index.out
M src/test/regress/sql/arrays.sql
M src/test/regress/sql/create_index.sql

Document pg_stat_replication, bump catversion since that was overlooked.

commit   : 9b4271deb97270d336c9d34ac911748faa5a4892    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 7 Jan 2011 11:06:55 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 7 Jan 2011 11:06:55 -0500    

Click here for diff

Itagaki Takahiro, edited by me.  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/monitoring.sgml
M src/include/catalog/catversion.h

Improve recovery.conf.sample comments.

commit   : a9f72b408325c4abb41b5ab65f8fb79af4c29495    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 7 Jan 2011 10:49:29 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 7 Jan 2011 10:49:29 -0500    

Click here for diff

Jehan-Guillaume de Rorthais, with some additional wordsmithing by me.  

M src/backend/access/transam/recovery.conf.sample

New system view pg_stat_replication displays activity of wal sender processes.

commit   : a755ea33ae3d772977fa083a8614bb9d4cc36e5a    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Fri, 7 Jan 2011 20:35:38 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Fri, 7 Jan 2011 20:35:38 +0900    

Click here for diff

Itagaki Takahiro and Simon Riggs.  

M src/backend/catalog/system_views.sql
M src/backend/replication/walsender.c
M src/include/catalog/pg_proc.h
M src/include/replication/walsender.h
M src/test/regress/expected/rules.out

Improve C comments about backend variables set by pg_upgrade_support functions.

commit   : 46d28820b6d213bf26b24ecd289a1c466ecf1956    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 6 Jan 2011 22:44:57 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 6 Jan 2011 22:44:57 -0500    

Click here for diff

M contrib/pg_upgrade/pg_upgrade.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/pg_enum.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/toasting.c
M src/backend/commands/typecmds.c

Improve markup of unnest example

commit   : 7f40e30309b5c8f19b1ac86c463ab0ea99907873    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 6 Jan 2011 23:54:05 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 6 Jan 2011 23:54:05 +0200    

Click here for diff

M doc/src/sgml/func.sgml

Improve array_upper example

commit   : f9e4961b7d599ff42accf324a3c080c5095785c9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 6 Jan 2011 23:31:20 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 6 Jan 2011 23:31:20 +0200    

Click here for diff

The previous example didn't make it clear whether array_upper returned  
the last element or the index of the last element.  

M doc/src/sgml/func.sgml

Update sequence_1.out for recent changes in sequence regression test.

commit   : 6c596c29a3666830d089facf9d6c7f44b4d0e9f2    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 6 Jan 2011 10:58:32 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 6 Jan 2011 10:58:32 -0500    

Click here for diff

M src/test/regress/expected/sequence_1.out

Update documentation to say that \lo_import sets :LASTOID, not lo_insert.

commit   : 1aad44f988dbebbdde986478f25096037c6dd931    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 21:32:10 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 21:32:10 -0500    

Click here for diff

M doc/src/sgml/ref/psql-ref.sgml

Rename pg_upgrade variables, for clarity.

commit   : 56a9adcb96ead8569582aa1f0f77a8fa9e24c189    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 20:14:59 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 20:14:59 -0500    

Click here for diff

M contrib/pg_upgrade/function.c

Update pg_upgrade C comments.

commit   : e66e43988a334ca58c584a0652d29dff61e698b9    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 14:09:01 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 14:09:01 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

Fix for recent pg_upgrade commit to fix large objects relfilenode handling. (metadata user ids still an open issue).

commit   : a45beaac642147ebf2e561cce62967d244c343c6    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 13:52:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 13:52:44 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

In pg_upgrade, adjust transfer_relfile()'s parameters to be more logical.

commit   : b1f2a94fa2bebbc74d392a18e4ac1d1e558485fc    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 12:07:45 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 12:07:45 -0500    

Click here for diff

M contrib/pg_upgrade/relfilenode.c

Clarify pg_upgrade's creation of the map file structure. Also clean up pg_dump's calling of pg_upgrade_support functions.

commit   : 5cff5b577918cf29e0ba3a35158c27cfe2de280c    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 11:37:08 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 5 Jan 2011 11:37:08 -0500    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/version_old_8_3.c
M src/bin/pg_dump/pg_dump.c

Give superusers REPLIACTION permission by default

commit   : 66a8a0428db046d725b88c8b956384c2a4b4a11c    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 5 Jan 2011 14:24:17 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 5 Jan 2011 14:24:17 +0100    

Click here for diff

This can be overriden by using NOREPLICATION on the CREATE ROLE  
statement, but by default they will have it, making it backwards  
compatible and "less surprising" (given that superusers normally  
override all checks).  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/ref/create_role.sgml
M doc/src/sgml/user-manag.sgml
M src/backend/commands/user.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_authid.h

In pg_upgrade, copy pg_largeobject_metadata and its index for 9.0+ servers because, like pg_largeobject, it is a system table whose contents are not dumped by pg_dump --schema-only.

commit   : 3302334b48e2be6eb2c01dcf500363dbd4f22e59    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 23:35:49 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 23:35:49 -0500    

Click here for diff

M contrib/pg_upgrade/info.c

commit   : 0857a8449826867711a9c1f99088bd13731ac192    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 21:33:36 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 21:33:36 -0500    

Click here for diff

M contrib/pg_upgrade/relfilenode.c

Simplify functions and parameters used by pg_upgrade.

commit   : 25cc7424e3b4d3bd76fa54bfc6907f294b4b99d1    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 19:11:00 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 4 Jan 2011 19:11:00 -0500    

Click here for diff

M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/info.c

Improve psql tab completion for CREATE/ALTER ROLE [NO]REPLICATION.

commit   : 14158f25cd164d65cf174dab9e22b3b4a22962a7    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 4 Jan 2011 17:56:01 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 4 Jan 2011 17:56:01 +0900    

Click here for diff

Missing support for VALID UNTIL in CREATE ROLE is also added.  

M src/bin/psql/tab-complete.c

Fix crash in ALTER OPERATOR CLASS/FAMILY .. SET SCHEMA.

commit   : 7f60be72b0865dd442c4f6164a997ff528a44d85    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 3 Jan 2011 22:08:55 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 3 Jan 2011 22:08:55 -0500    

Click here for diff

In the previous coding, the parser emitted a List containing a C string,  
which is no good, because copyObject() can't handle it.  
  
Dimitri Fontaine  

M src/backend/commands/alter.c
M src/backend/commands/opclasscmds.c
M src/backend/parser/gram.y
M src/include/commands/defrem.h

Update comments in RecordTransactionCommit() to mention unlogged tables.

commit   : dc8a14311a4825b6bf7b787764b9f0c3f8d8df8e    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 3 Jan 2011 10:29:22 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 3 Jan 2011 10:29:22 -0500    

Click here for diff

M src/backend/access/transam/xact.c

Bump catversion, forgot in previous commit.

commit   : 77745cc7f1617852844dd88ec8ddb48f38e19e9a    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:50:30 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:50:30 +0100    

Click here for diff

M src/include/catalog/catversion.h

Add views and functions to monitor hot standby query conflicts

commit   : 40d9e94bd7537144d3d379c1fd1264dff5cf4bb2    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:46:03 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:46:03 +0100    

Click here for diff

Add the view pg_stat_database_conflicts and a column to pg_stat_database,  
and the underlying functions to provide the information.  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/pgstat.c
M src/backend/tcop/postgres.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/pg_proc.h
M src/include/pgstat.h
M src/test/regress/expected/rules.out

Add missing part of replication role docs

commit   : 1996b482859c67726e77b80a263d3cce954e022d    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:00:09 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 12:00:09 +0100    

Click here for diff

Noted by Peter E.  

M doc/src/sgml/user-manag.sgml

perltidy run on the MSVC build system

commit   : c0e96b49e588b2a5ab501a2acc03b96ff76cf288    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 10:44:56 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 3 Jan 2011 10:44:56 +0100    

Click here for diff

Forgot this with previuos commit, line it up so it's easier to  
submit (readable) patches against the MSVC build system.  

M src/tools/msvc/Mkvcbuild.pm

Implement remaining fields of information_schema.sequences view

commit   : 39b88432968a2f4c01c20948f12bf9c8e388474d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 2 Jan 2011 15:08:08 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 2 Jan 2011 15:08:08 +0200    

Click here for diff

Add new function pg_sequence_parameters that returns a sequence's start,  
minimum, maximum, increment, and cycle values, and use that in the view.  
(bug #5662; design suggestion by Tom Lane)  
  
Also slightly adjust the view's column order and permissions after review of  
SQL standard.  

M doc/src/sgml/information_schema.sgml
M src/backend/catalog/information_schema.sql
M src/backend/commands/sequence.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/commands/sequence.h
M src/test/regress/expected/sequence.out
M src/test/regress/sql/sequence.sql

Fix typo.

commit   : e657b55e661577cf664949bce78068e2922f594f    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 2 Jan 2011 07:26:10 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 2 Jan 2011 07:26:10 -0500    

Click here for diff

Noted by Magnus Hagander.  

M src/backend/commands/vacuum.c

Basic foreign table support.

commit   : 0d692a0dc9f0e532c67c577187fe5d7d323cb95b    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 23:48:11 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 23:48:11 -0500    

Click here for diff

Foreign tables are a core component of SQL/MED.  This commit does  
not provide a working SQL/MED infrastructure, because foreign tables  
cannot yet be queried.  Support for foreign table scans will need to  
be added in a future patch.  However, this patch creates the necessary  
system catalog structure, syntax support, and support for ancillary  
operations such as COMMENT and SECURITY LABEL.  
  
Shigeru Hanada, heavily revised by Robert Haas  

M contrib/pageinspect/rawpage.c
M contrib/pgstattuple/pgstattuple.c
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/information_schema.sgml
M doc/src/sgml/ref/allfiles.sgml
M doc/src/sgml/ref/alter_default_privileges.sgml
A doc/src/sgml/ref/alter_foreign_table.sgml
M doc/src/sgml/ref/comment.sgml
A doc/src/sgml/ref/create_foreign_table.sgml
M doc/src/sgml/ref/create_sequence.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_view.sgml
A doc/src/sgml/ref/drop_foreign_table.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/ref/security_label.sgml
M doc/src/sgml/reference.sgml
M src/backend/access/common/reloptions.c
M src/backend/access/heap/heapam.c
M src/backend/catalog/Makefile
M src/backend/catalog/aclchk.c
M src/backend/catalog/dependency.c
M src/backend/catalog/heap.c
M src/backend/catalog/information_schema.sql
M src/backend/catalog/objectaddress.c
M src/backend/catalog/system_views.sql
M src/backend/commands/alter.c
M src/backend/commands/analyze.c
M src/backend/commands/comment.c
M src/backend/commands/copy.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/seclabel.c
M src/backend/commands/tablecmds.c
M src/backend/commands/vacuum.c
M src/backend/executor/execMain.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/util/plancat.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/tcop/utility.c
M src/backend/utils/adt/acl.c
M src/backend/utils/cache/syscache.c
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/dependency.h
M src/include/catalog/indexing.h
M src/include/catalog/pg_class.h
A src/include/catalog/pg_foreign_table.h
M src/include/commands/defrem.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/utils/acl.h
M src/include/utils/syscache.h
M src/test/regress/expected/alter_table.out
M src/test/regress/expected/foreign_data.out
M src/test/regress/expected/rules.out
M src/test/regress/expected/sanity_check.out
M src/test/regress/expected/type_sanity.out
M src/test/regress/sql/foreign_data.sql
M src/test/regress/sql/type_sanity.sql

Minor wordsmithing.

commit   : 6600d5e91c754789002ed794c18cb856c190f58f    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 17:50:31 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 17:50:31 -0500    

Click here for diff

As suggested by Tom Lane, in response to a gripe from Leslie S Satenstein.  

M doc/src/sgml/datatype.sgml

Fix pg_dump support for security labels on columns.

commit   : d7acf6cc4a1ae53fcd5b4a8a702c43a267f33ba3    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 17:43:37 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 1 Jan 2011 17:43:37 -0500    

Click here for diff

Along the way, correct an erroneous comment.  

M src/bin/pg_dump/pg_dump.c

Allow casting a table's row type to the table's supertype if it's a typed table

commit   : 6a208aa40438652e2f3129a63af5d08ae53d9398    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 1 Jan 2011 22:44:32 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 1 Jan 2011 22:44:32 +0200    

Click here for diff

This is analogous to the existing facility that allows casting a row type to a  
supertable's row type.  

M src/backend/parser/parse_coerce.c
M src/test/regress/expected/typed_table.out
M src/test/regress/sql/typed_table.sql

Add #include <time.h> to pg_ctl.c to fix compiler warning.

commit   : 92a73d219052ab4d393ebe7b5362aa7d414156e7    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 15:55:36 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 15:55:36 -0500    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

Stamp copyrights for year 2011.

commit   : 5d950e3b0c75d65dd09f8ca5f76cd429a0aabbdc    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 13:18:15 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 13:18:15 -0500    

Click here for diff

M COPYRIGHT
M configure
M configure.in
M contrib/adminpack/adminpack.c
M contrib/auto_explain/auto_explain.c
M contrib/dblink/dblink.c
M contrib/dblink/dblink.h
M contrib/dict_int/dict_int.c
M contrib/dict_xsyn/dict_xsyn.c
M contrib/dummy_seclabel/dummy_seclabel.c
M contrib/fuzzystrmatch/fuzzystrmatch.c
M contrib/fuzzystrmatch/levenshtein.c
M contrib/isn/isn.c
M contrib/isn/isn.h
M contrib/pageinspect/fsmfuncs.c
M contrib/pageinspect/heapfuncs.c
M contrib/pageinspect/rawpage.c
M contrib/passwordcheck/passwordcheck.c
M contrib/pg_stat_statements/pg_stat_statements.c
M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/page.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/util.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c
M contrib/pg_upgrade_support/pg_upgrade_support.c
M contrib/pgbench/pgbench.c
M contrib/tablefunc/tablefunc.c
M contrib/tablefunc/tablefunc.h
M contrib/test_parser/test_parser.c
M contrib/tsearch2/tsearch2.c
M contrib/unaccent/unaccent.c
M contrib/uuid-ossp/uuid-ossp.c
M contrib/vacuumlo/vacuumlo.c
M doc/src/sgml/legal.sgml
M src/backend/Makefile
M src/backend/access/common/heaptuple.c
M src/backend/access/common/indextuple.c
M src/backend/access/common/printtup.c
M src/backend/access/common/reloptions.c
M src/backend/access/common/scankey.c
M src/backend/access/common/tupconvert.c
M src/backend/access/common/tupdesc.c
M src/backend/access/gin/ginarrayproc.c
M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistproc.c
M src/backend/access/gist/gistscan.c
M src/backend/access/gist/gistsplit.c
M src/backend/access/gist/gistutil.c
M src/backend/access/gist/gistvacuum.c
M src/backend/access/gist/gistxlog.c
M src/backend/access/hash/hash.c
M src/backend/access/hash/hashfunc.c
M src/backend/access/hash/hashinsert.c
M src/backend/access/hash/hashovfl.c
M src/backend/access/hash/hashpage.c
M src/backend/access/hash/hashscan.c
M src/backend/access/hash/hashsearch.c
M src/backend/access/hash/hashsort.c
M src/backend/access/hash/hashutil.c
M src/backend/access/heap/heapam.c
M src/backend/access/heap/hio.c
M src/backend/access/heap/pruneheap.c
M src/backend/access/heap/rewriteheap.c
M src/backend/access/heap/syncscan.c
M src/backend/access/heap/tuptoaster.c
M src/backend/access/heap/visibilitymap.c
M src/backend/access/index/genam.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtcompare.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/access/nbtree/nbtxlog.c
M src/backend/access/transam/clog.c
M src/backend/access/transam/multixact.c
M src/backend/access/transam/slru.c
M src/backend/access/transam/subtrans.c
M src/backend/access/transam/transam.c
M src/backend/access/transam/twophase.c
M src/backend/access/transam/twophase_rmgr.c
M src/backend/access/transam/varsup.c
M src/backend/access/transam/xact.c
M src/backend/access/transam/xlog.c
M src/backend/access/transam/xlogutils.c
M src/backend/bootstrap/bootparse.y
M src/backend/bootstrap/bootscanner.l
M src/backend/bootstrap/bootstrap.c
M src/backend/catalog/Catalog.pm
M src/backend/catalog/aclchk.c
M src/backend/catalog/catalog.c
M src/backend/catalog/dependency.c
M src/backend/catalog/genbki.pl
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/indexing.c
M src/backend/catalog/information_schema.sql
M src/backend/catalog/namespace.c
M src/backend/catalog/objectaddress.c
M src/backend/catalog/pg_aggregate.c
M src/backend/catalog/pg_constraint.c
M src/backend/catalog/pg_conversion.c
M src/backend/catalog/pg_db_role_setting.c
M src/backend/catalog/pg_depend.c
M src/backend/catalog/pg_enum.c
M src/backend/catalog/pg_inherits.c
M src/backend/catalog/pg_largeobject.c
M src/backend/catalog/pg_namespace.c
M src/backend/catalog/pg_operator.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_shdepend.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/storage.c
M src/backend/catalog/system_views.sql
M src/backend/catalog/toasting.c
M src/backend/commands/aggregatecmds.c
M src/backend/commands/alter.c
M src/backend/commands/analyze.c
M src/backend/commands/async.c
M src/backend/commands/cluster.c
M src/backend/commands/comment.c
M src/backend/commands/constraint.c
M src/backend/commands/conversioncmds.c
M src/backend/commands/copy.c
M src/backend/commands/dbcommands.c
M src/backend/commands/define.c
M src/backend/commands/discard.c
M src/backend/commands/explain.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/lockcmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/portalcmds.c
M src/backend/commands/prepare.c
M src/backend/commands/proclang.c
M src/backend/commands/schemacmds.c
M src/backend/commands/seclabel.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/user.c
M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/commands/variable.c
M src/backend/commands/view.c
M src/backend/executor/execAmi.c
M src/backend/executor/execCurrent.c
M src/backend/executor/execGrouping.c
M src/backend/executor/execJunk.c
M src/backend/executor/execMain.c
M src/backend/executor/execProcnode.c
M src/backend/executor/execQual.c
M src/backend/executor/execScan.c
M src/backend/executor/execTuples.c
M src/backend/executor/execUtils.c
M src/backend/executor/functions.c
M src/backend/executor/instrument.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeAppend.c
M src/backend/executor/nodeBitmapAnd.c
M src/backend/executor/nodeBitmapHeapscan.c
M src/backend/executor/nodeBitmapIndexscan.c
M src/backend/executor/nodeBitmapOr.c
M src/backend/executor/nodeCtescan.c
M src/backend/executor/nodeFunctionscan.c
M src/backend/executor/nodeGroup.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeLimit.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeMaterial.c
M src/backend/executor/nodeMergeAppend.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeModifyTable.c
M src/backend/executor/nodeNestloop.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/executor/nodeResult.c
M src/backend/executor/nodeSeqscan.c
M src/backend/executor/nodeSetOp.c
M src/backend/executor/nodeSort.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeSubqueryscan.c
M src/backend/executor/nodeTidscan.c
M src/backend/executor/nodeUnique.c
M src/backend/executor/nodeValuesscan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/executor/nodeWorktablescan.c
M src/backend/executor/spi.c
M src/backend/executor/tstoreReceiver.c
M src/backend/foreign/foreign.c
M src/backend/lib/dllist.c
M src/backend/lib/stringinfo.c
M src/backend/libpq/auth.c
M src/backend/libpq/be-fsstubs.c
M src/backend/libpq/be-secure.c
M src/backend/libpq/crypt.c
M src/backend/libpq/hba.c
M src/backend/libpq/ip.c
M src/backend/libpq/md5.c
M src/backend/libpq/pqcomm.c
M src/backend/libpq/pqformat.c
M src/backend/libpq/pqsignal.c
M src/backend/main/main.c
M src/backend/nodes/bitmapset.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/list.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/nodes.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/params.c
M src/backend/nodes/print.c
M src/backend/nodes/read.c
M src/backend/nodes/readfuncs.c
M src/backend/nodes/tidbitmap.c
M src/backend/nodes/value.c
M src/backend/optimizer/geqo/geqo_copy.c
M src/backend/optimizer/geqo/geqo_eval.c
M src/backend/optimizer/geqo/geqo_main.c
M src/backend/optimizer/geqo/geqo_misc.c
M src/backend/optimizer/geqo/geqo_pool.c
M src/backend/optimizer/geqo/geqo_random.c
M src/backend/optimizer/geqo/geqo_selection.c
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/clausesel.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/joinpath.c
M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/path/orindxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/path/tidpath.c
M src/backend/optimizer/plan/analyzejoins.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/prepqual.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/joininfo.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/placeholder.c
M src/backend/optimizer/util/plancat.c
M src/backend/optimizer/util/predtest.c
M src/backend/optimizer/util/relnode.c
M src/backend/optimizer/util/restrictinfo.c
M src/backend/optimizer/util/tlist.c
M src/backend/optimizer/util/var.c
M src/backend/parser/analyze.c
M src/backend/parser/gram.y
M src/backend/parser/keywords.c
M src/backend/parser/kwlookup.c
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_param.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_type.c
M src/backend/parser/parse_utilcmd.c
M src/backend/parser/parser.c
M src/backend/parser/scan.l
M src/backend/parser/scansup.c
M src/backend/port/dynloader/aix.h
M src/backend/port/dynloader/bsdi.c
M src/backend/port/dynloader/bsdi.h
M src/backend/port/dynloader/cygwin.h
M src/backend/port/dynloader/dgux.h
M src/backend/port/dynloader/freebsd.c
M src/backend/port/dynloader/freebsd.h
M src/backend/port/dynloader/hpux.c
M src/backend/port/dynloader/hpux.h
M src/backend/port/dynloader/irix.h
M src/backend/port/dynloader/linux.c
M src/backend/port/dynloader/linux.h
M src/backend/port/dynloader/netbsd.c
M src/backend/port/dynloader/netbsd.h
M src/backend/port/dynloader/openbsd.c
M src/backend/port/dynloader/openbsd.h
M src/backend/port/dynloader/osf.h
M src/backend/port/dynloader/sco.h
M src/backend/port/dynloader/solaris.h
M src/backend/port/dynloader/sunos4.h
M src/backend/port/dynloader/svr4.h
M src/backend/port/dynloader/ultrix4.c
M src/backend/port/dynloader/ultrix4.h
M src/backend/port/dynloader/univel.h
M src/backend/port/dynloader/unixware.h
M src/backend/port/ipc_test.c
M src/backend/port/posix_sema.c
M src/backend/port/sysv_sema.c
M src/backend/port/sysv_shmem.c
M src/backend/port/tas/sunstudio_sparc.s
M src/backend/port/tas/sunstudio_x86.s
M src/backend/port/unix_latch.c
M src/backend/port/win32/crashdump.c
M src/backend/port/win32/mingwcompat.c
M src/backend/port/win32/security.c
M src/backend/port/win32/signal.c
M src/backend/port/win32/socket.c
M src/backend/port/win32/timer.c
M src/backend/port/win32_latch.c
M src/backend/port/win32_sema.c
M src/backend/port/win32_shmem.c
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/bgwriter.c
M src/backend/postmaster/fork_process.c
M src/backend/postmaster/pgarch.c
M src/backend/postmaster/pgstat.c
M src/backend/postmaster/postmaster.c
M src/backend/postmaster/syslogger.c
M src/backend/postmaster/walwriter.c
M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walreceiverfuncs.c
M src/backend/replication/walsender.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/rewrite/rewriteManip.c
M src/backend/rewrite/rewriteRemove.c
M src/backend/rewrite/rewriteSupport.c
M src/backend/snowball/dict_snowball.c
M src/backend/storage/buffer/buf_init.c
M src/backend/storage/buffer/buf_table.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/buffer/freelist.c
M src/backend/storage/buffer/localbuf.c
M src/backend/storage/file/buffile.c
M src/backend/storage/file/copydir.c
M src/backend/storage/file/fd.c
M src/backend/storage/file/reinit.c
M src/backend/storage/freespace/freespace.c
M src/backend/storage/freespace/fsmpage.c
M src/backend/storage/freespace/indexfsm.c
M src/backend/storage/ipc/ipc.c
M src/backend/storage/ipc/ipci.c
M src/backend/storage/ipc/pmsignal.c
M src/backend/storage/ipc/procarray.c
M src/backend/storage/ipc/procsignal.c
M src/backend/storage/ipc/shmem.c
M src/backend/storage/ipc/shmqueue.c
M src/backend/storage/ipc/sinval.c
M src/backend/storage/ipc/sinvaladt.c
M src/backend/storage/ipc/standby.c
M src/backend/storage/large_object/inv_api.c
M src/backend/storage/lmgr/deadlock.c
M src/backend/storage/lmgr/lmgr.c
M src/backend/storage/lmgr/lock.c
M src/backend/storage/lmgr/lwlock.c
M src/backend/storage/lmgr/proc.c
M src/backend/storage/lmgr/s_lock.c
M src/backend/storage/lmgr/spin.c
M src/backend/storage/page/bufpage.c
M src/backend/storage/page/itemptr.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/backend/storage/smgr/smgrtype.c
M src/backend/tcop/dest.c
M src/backend/tcop/fastpath.c
M src/backend/tcop/postgres.c
M src/backend/tcop/pquery.c
M src/backend/tcop/utility.c
M src/backend/tsearch/Makefile
M src/backend/tsearch/dict.c
M src/backend/tsearch/dict_ispell.c
M src/backend/tsearch/dict_simple.c
M src/backend/tsearch/dict_synonym.c
M src/backend/tsearch/dict_thesaurus.c
M src/backend/tsearch/regis.c
M src/backend/tsearch/spell.c
M src/backend/tsearch/to_tsany.c
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/ts_parse.c
M src/backend/tsearch/ts_selfuncs.c
M src/backend/tsearch/ts_typanalyze.c
M src/backend/tsearch/ts_utils.c
M src/backend/tsearch/wparser.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/Gen_dummy_probes.sed
M src/backend/utils/Gen_fmgrtab.pl
M src/backend/utils/adt/acl.c
M src/backend/utils/adt/array_userfuncs.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/arrayutils.c
M src/backend/utils/adt/ascii.c
M src/backend/utils/adt/bool.c
M src/backend/utils/adt/char.c
M src/backend/utils/adt/date.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/datum.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/adt/domains.c
M src/backend/utils/adt/encode.c
M src/backend/utils/adt/enum.c
M src/backend/utils/adt/float.c
M src/backend/utils/adt/format_type.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/genfile.c
M src/backend/utils/adt/geo_ops.c
M src/backend/utils/adt/geo_selfuncs.c
M src/backend/utils/adt/int.c
M src/backend/utils/adt/int8.c
M src/backend/utils/adt/like.c
M src/backend/utils/adt/like_match.c
M src/backend/utils/adt/lockfuncs.c
M src/backend/utils/adt/misc.c
M src/backend/utils/adt/nabstime.c
M src/backend/utils/adt/name.c
M src/backend/utils/adt/numeric.c
M src/backend/utils/adt/numutils.c
M src/backend/utils/adt/oid.c
M src/backend/utils/adt/oracle_compat.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/pg_lzcompress.c
M src/backend/utils/adt/pgstatfuncs.c
M src/backend/utils/adt/pseudotypes.c
M src/backend/utils/adt/quote.c
M src/backend/utils/adt/regexp.c
M src/backend/utils/adt/regproc.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/rowtypes.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/tid.c
M src/backend/utils/adt/timestamp.c
M src/backend/utils/adt/trigfuncs.c
M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsgistidx.c
M src/backend/utils/adt/tsquery.c
M src/backend/utils/adt/tsquery_cleanup.c
M src/backend/utils/adt/tsquery_gist.c
M src/backend/utils/adt/tsquery_op.c
M src/backend/utils/adt/tsquery_rewrite.c
M src/backend/utils/adt/tsquery_util.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/adt/tsvector.c
M src/backend/utils/adt/tsvector_op.c
M src/backend/utils/adt/tsvector_parser.c
M src/backend/utils/adt/txid.c
M src/backend/utils/adt/uuid.c
M src/backend/utils/adt/varbit.c
M src/backend/utils/adt/varchar.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/adt/version.c
M src/backend/utils/adt/windowfuncs.c
M src/backend/utils/adt/xid.c
M src/backend/utils/adt/xml.c
M src/backend/utils/cache/attoptcache.c
M src/backend/utils/cache/catcache.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/plancache.c
M src/backend/utils/cache/relcache.c
M src/backend/utils/cache/relmapper.c
M src/backend/utils/cache/spccache.c
M src/backend/utils/cache/syscache.c
M src/backend/utils/cache/ts_cache.c
M src/backend/utils/cache/typcache.c
M src/backend/utils/error/assert.c
M src/backend/utils/error/elog.c
M src/backend/utils/fmgr/dfmgr.c
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/fmgr/funcapi.c
M src/backend/utils/hash/dynahash.c
M src/backend/utils/hash/hashfn.c
M src/backend/utils/hash/pg_crc.c
M src/backend/utils/init/globals.c
M src/backend/utils/init/miscinit.c
M src/backend/utils/init/postinit.c
M src/backend/utils/mb/Unicode/Makefile
M src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_CN.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JP.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_KR.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_TW.pl
M src/backend/utils/mb/Unicode/UCS_to_GB18030.pl
M src/backend/utils/mb/Unicode/UCS_to_SHIFT_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_SJIS.pl
M src/backend/utils/mb/Unicode/UCS_to_most.pl
M src/backend/utils/mb/Unicode/ucs2utf.pl
M src/backend/utils/mb/conv.c
M src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c
M src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
M src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
M src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
M src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
M src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
M src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
M src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
M src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
M src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c
M src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
M src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
M src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
M src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
M src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
M src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
M src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
M src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
M src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/help_config.c
M src/backend/utils/misc/pg_rusage.c
M src/backend/utils/misc/ps_status.c
M src/backend/utils/misc/rbtree.c
M src/backend/utils/misc/superuser.c
M src/backend/utils/misc/tzparser.c
M src/backend/utils/mmgr/aset.c
M src/backend/utils/mmgr/mcxt.c
M src/backend/utils/mmgr/portalmem.c
M src/backend/utils/probes.d
M src/backend/utils/resowner/resowner.c
M src/backend/utils/sort/logtape.c
M src/backend/utils/sort/tuplesort.c
M src/backend/utils/sort/tuplestore.c
M src/backend/utils/time/combocid.c
M src/backend/utils/time/snapmgr.c
M src/backend/utils/time/tqual.c
M src/bin/Makefile
M src/bin/initdb/Makefile
M src/bin/initdb/initdb.c
M src/bin/pg_config/Makefile
M src/bin/pg_config/pg_config.c
M src/bin/pg_controldata/Makefile
M src/bin/pg_ctl/Makefile
M src/bin/pg_ctl/pg_ctl.c
M src/bin/pg_dump/Makefile
M src/bin/pg_dump/common.c
M src/bin/pg_dump/compress_io.c
M src/bin/pg_dump/compress_io.h
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/dumputils.h
M src/bin/pg_dump/keywords.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dump_sort.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_resetxlog/Makefile
M src/bin/pg_resetxlog/pg_resetxlog.c
M src/bin/pgevent/Makefile
M src/bin/psql/Makefile
M src/bin/psql/command.c
M src/bin/psql/command.h
M src/bin/psql/common.c
M src/bin/psql/common.h
M src/bin/psql/copy.c
M src/bin/psql/copy.h
M src/bin/psql/create_help.pl
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/help.h
M src/bin/psql/input.c
M src/bin/psql/input.h
M src/bin/psql/large_obj.c
M src/bin/psql/large_obj.h
M src/bin/psql/mainloop.c
M src/bin/psql/mainloop.h
M src/bin/psql/mbprint.c
M src/bin/psql/print.c
M src/bin/psql/print.h
M src/bin/psql/prompt.c
M src/bin/psql/prompt.h
M src/bin/psql/psqlscan.h
M src/bin/psql/psqlscan.l
M src/bin/psql/settings.h
M src/bin/psql/startup.c
M src/bin/psql/stringutils.c
M src/bin/psql/stringutils.h
M src/bin/psql/tab-complete.c
M src/bin/psql/tab-complete.h
M src/bin/psql/variables.c
M src/bin/psql/variables.h
M src/bin/scripts/Makefile
M src/bin/scripts/clusterdb.c
M src/bin/scripts/common.c
M src/bin/scripts/common.h
M src/bin/scripts/createdb.c
M src/bin/scripts/createlang.c
M src/bin/scripts/createuser.c
M src/bin/scripts/dropdb.c
M src/bin/scripts/droplang.c
M src/bin/scripts/dropuser.c
M src/bin/scripts/reindexdb.c
M src/bin/scripts/vacuumdb.c
M src/include/access/attnum.h
M src/include/access/clog.h
M src/include/access/genam.h
M src/include/access/gin.h
M src/include/access/gist.h
M src/include/access/gist_private.h
M src/include/access/gistscan.h
M src/include/access/hash.h
M src/include/access/heapam.h
M src/include/access/hio.h
M src/include/access/htup.h
M src/include/access/itup.h
M src/include/access/multixact.h
M src/include/access/nbtree.h
M src/include/access/printtup.h
M src/include/access/reloptions.h
M src/include/access/relscan.h
M src/include/access/rewriteheap.h
M src/include/access/sdir.h
M src/include/access/skey.h
M src/include/access/slru.h
M src/include/access/subtrans.h
M src/include/access/sysattr.h
M src/include/access/transam.h
M src/include/access/tupconvert.h
M src/include/access/tupdesc.h
M src/include/access/tupmacs.h
M src/include/access/tuptoaster.h
M src/include/access/twophase.h
M src/include/access/twophase_rmgr.h
M src/include/access/valid.h
M src/include/access/visibilitymap.h
M src/include/access/xact.h
M src/include/access/xlog.h
M src/include/access/xlog_internal.h
M src/include/access/xlogdefs.h
M src/include/access/xlogutils.h
M src/include/bootstrap/bootstrap.h
M src/include/c.h
M src/include/catalog/catalog.h
M src/include/catalog/catversion.h
M src/include/catalog/dependency.h
M src/include/catalog/genbki.h
M src/include/catalog/heap.h
M src/include/catalog/index.h
M src/include/catalog/indexing.h
M src/include/catalog/namespace.h
M src/include/catalog/objectaccess.h
M src/include/catalog/objectaddress.h
M src/include/catalog/pg_aggregate.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_amop.h
M src/include/catalog/pg_amproc.h
M src/include/catalog/pg_attrdef.h
M src/include/catalog/pg_attribute.h
M src/include/catalog/pg_auth_members.h
M src/include/catalog/pg_authid.h
M src/include/catalog/pg_cast.h
M src/include/catalog/pg_class.h
M src/include/catalog/pg_constraint.h
M src/include/catalog/pg_control.h
M src/include/catalog/pg_conversion.h
M src/include/catalog/pg_conversion_fn.h
M src/include/catalog/pg_database.h
M src/include/catalog/pg_db_role_setting.h
M src/include/catalog/pg_default_acl.h
M src/include/catalog/pg_depend.h
M src/include/catalog/pg_description.h
M src/include/catalog/pg_enum.h
M src/include/catalog/pg_foreign_data_wrapper.h
M src/include/catalog/pg_foreign_server.h
M src/include/catalog/pg_index.h
M src/include/catalog/pg_inherits.h
M src/include/catalog/pg_inherits_fn.h
M src/include/catalog/pg_language.h
M src/include/catalog/pg_largeobject.h
M src/include/catalog/pg_largeobject_metadata.h
M src/include/catalog/pg_namespace.h
M src/include/catalog/pg_opclass.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_opfamily.h
M src/include/catalog/pg_pltemplate.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_proc_fn.h
M src/include/catalog/pg_rewrite.h
M src/include/catalog/pg_seclabel.h
M src/include/catalog/pg_shdepend.h
M src/include/catalog/pg_shdescription.h
M src/include/catalog/pg_statistic.h
M src/include/catalog/pg_tablespace.h
M src/include/catalog/pg_trigger.h
M src/include/catalog/pg_ts_config.h
M src/include/catalog/pg_ts_config_map.h
M src/include/catalog/pg_ts_dict.h
M src/include/catalog/pg_ts_parser.h
M src/include/catalog/pg_ts_template.h
M src/include/catalog/pg_type.h
M src/include/catalog/pg_type_fn.h
M src/include/catalog/pg_user_mapping.h
M src/include/catalog/storage.h
M src/include/catalog/toasting.h
M src/include/commands/alter.h
M src/include/commands/async.h
M src/include/commands/cluster.h
M src/include/commands/comment.h
M src/include/commands/conversioncmds.h
M src/include/commands/copy.h
M src/include/commands/dbcommands.h
M src/include/commands/defrem.h
M src/include/commands/discard.h
M src/include/commands/explain.h
M src/include/commands/lockcmds.h
M src/include/commands/portalcmds.h
M src/include/commands/prepare.h
M src/include/commands/schemacmds.h
M src/include/commands/seclabel.h
M src/include/commands/sequence.h
M src/include/commands/tablecmds.h
M src/include/commands/tablespace.h
M src/include/commands/trigger.h
M src/include/commands/typecmds.h
M src/include/commands/vacuum.h
M src/include/commands/variable.h
M src/include/commands/view.h
M src/include/executor/execdebug.h
M src/include/executor/execdesc.h
M src/include/executor/executor.h
M src/include/executor/functions.h
M src/include/executor/hashjoin.h
M src/include/executor/instrument.h
M src/include/executor/nodeAgg.h
M src/include/executor/nodeAppend.h
M src/include/executor/nodeBitmapAnd.h
M src/include/executor/nodeBitmapHeapscan.h
M src/include/executor/nodeBitmapIndexscan.h
M src/include/executor/nodeBitmapOr.h
M src/include/executor/nodeCtescan.h
M src/include/executor/nodeFunctionscan.h
M src/include/executor/nodeGroup.h
M src/include/executor/nodeHash.h
M src/include/executor/nodeHashjoin.h
M src/include/executor/nodeIndexscan.h
M src/include/executor/nodeLimit.h
M src/include/executor/nodeLockRows.h
M src/include/executor/nodeMaterial.h
M src/include/executor/nodeMergeAppend.h
M src/include/executor/nodeMergejoin.h
M src/include/executor/nodeModifyTable.h
M src/include/executor/nodeNestloop.h
M src/include/executor/nodeRecursiveunion.h
M src/include/executor/nodeResult.h
M src/include/executor/nodeSeqscan.h
M src/include/executor/nodeSetOp.h
M src/include/executor/nodeSort.h
M src/include/executor/nodeSubplan.h
M src/include/executor/nodeSubqueryscan.h
M src/include/executor/nodeTidscan.h
M src/include/executor/nodeUnique.h
M src/include/executor/nodeValuesscan.h
M src/include/executor/nodeWindowAgg.h
M src/include/executor/nodeWorktablescan.h
M src/include/executor/spi.h
M src/include/executor/spi_priv.h
M src/include/executor/tstoreReceiver.h
M src/include/executor/tuptable.h
M src/include/fmgr.h
M src/include/foreign/foreign.h
M src/include/funcapi.h
M src/include/getaddrinfo.h
M src/include/getopt_long.h
M src/include/lib/dllist.h
M src/include/lib/stringinfo.h
M src/include/libpq/auth.h
M src/include/libpq/be-fsstubs.h
M src/include/libpq/crypt.h
M src/include/libpq/ip.h
M src/include/libpq/libpq-be.h
M src/include/libpq/libpq-fs.h
M src/include/libpq/libpq.h
M src/include/libpq/md5.h
M src/include/libpq/pqcomm.h
M src/include/libpq/pqformat.h
M src/include/libpq/pqsignal.h
M src/include/mb/pg_wchar.h
M src/include/miscadmin.h
M src/include/nodes/bitmapset.h
M src/include/nodes/execnodes.h
M src/include/nodes/makefuncs.h
M src/include/nodes/memnodes.h
M src/include/nodes/nodeFuncs.h
M src/include/nodes/nodes.h
M src/include/nodes/params.h
M src/include/nodes/parsenodes.h
M src/include/nodes/pg_list.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/print.h
M src/include/nodes/readfuncs.h
M src/include/nodes/relation.h
M src/include/nodes/tidbitmap.h
M src/include/nodes/value.h
M src/include/optimizer/clauses.h
M src/include/optimizer/cost.h
M src/include/optimizer/geqo.h
M src/include/optimizer/geqo_copy.h
M src/include/optimizer/geqo_gene.h
M src/include/optimizer/geqo_misc.h
M src/include/optimizer/geqo_mutation.h
M src/include/optimizer/geqo_pool.h
M src/include/optimizer/geqo_random.h
M src/include/optimizer/geqo_recombination.h
M src/include/optimizer/geqo_selection.h
M src/include/optimizer/joininfo.h
M src/include/optimizer/pathnode.h
M src/include/optimizer/paths.h
M src/include/optimizer/placeholder.h
M src/include/optimizer/plancat.h
M src/include/optimizer/planmain.h
M src/include/optimizer/planner.h
M src/include/optimizer/predtest.h
M src/include/optimizer/prep.h
M src/include/optimizer/restrictinfo.h
M src/include/optimizer/subselect.h
M src/include/optimizer/tlist.h
M src/include/optimizer/var.h
M src/include/parser/analyze.h
M src/include/parser/gramparse.h
M src/include/parser/keywords.h
M src/include/parser/kwlist.h
M src/include/parser/parse_agg.h
M src/include/parser/parse_clause.h
M src/include/parser/parse_coerce.h
M src/include/parser/parse_cte.h
M src/include/parser/parse_expr.h
M src/include/parser/parse_func.h
M src/include/parser/parse_node.h
M src/include/parser/parse_oper.h
M src/include/parser/parse_param.h
M src/include/parser/parse_relation.h
M src/include/parser/parse_target.h
M src/include/parser/parse_type.h
M src/include/parser/parse_utilcmd.h
M src/include/parser/parser.h
M src/include/parser/parsetree.h
M src/include/parser/scanner.h
M src/include/parser/scansup.h
M src/include/pg_trace.h
M src/include/pgstat.h
M src/include/pgtime.h
M src/include/port.h
M src/include/portability/instr_time.h
M src/include/postgres.h
M src/include/postgres_fe.h
M src/include/postmaster/autovacuum.h
M src/include/postmaster/bgwriter.h
M src/include/postmaster/fork_process.h
M src/include/postmaster/pgarch.h
M src/include/postmaster/postmaster.h
M src/include/postmaster/syslogger.h
M src/include/postmaster/walwriter.h
M src/include/replication/walprotocol.h
M src/include/replication/walreceiver.h
M src/include/replication/walsender.h
M src/include/rewrite/prs2lock.h
M src/include/rewrite/rewriteDefine.h
M src/include/rewrite/rewriteHandler.h
M src/include/rewrite/rewriteManip.h
M src/include/rewrite/rewriteRemove.h
M src/include/rewrite/rewriteSupport.h
M src/include/rusagestub.h
M src/include/snowball/header.h
M src/include/storage/backendid.h
M src/include/storage/block.h
M src/include/storage/buf.h
M src/include/storage/buf_internals.h
M src/include/storage/buffile.h
M src/include/storage/bufmgr.h
M src/include/storage/bufpage.h
M src/include/storage/copydir.h
M src/include/storage/fd.h
M src/include/storage/freespace.h
M src/include/storage/fsm_internals.h
M src/include/storage/indexfsm.h
M src/include/storage/ipc.h
M src/include/storage/item.h
M src/include/storage/itemid.h
M src/include/storage/itemptr.h
M src/include/storage/large_object.h
M src/include/storage/latch.h
M src/include/storage/lmgr.h
M src/include/storage/lock.h
M src/include/storage/lwlock.h
M src/include/storage/off.h
M src/include/storage/pg_sema.h
M src/include/storage/pg_shmem.h
M src/include/storage/pmsignal.h
M src/include/storage/pos.h
M src/include/storage/proc.h
M src/include/storage/procarray.h
M src/include/storage/procsignal.h
M src/include/storage/reinit.h
M src/include/storage/relfilenode.h
M src/include/storage/s_lock.h
M src/include/storage/shmem.h
M src/include/storage/sinval.h
M src/include/storage/sinvaladt.h
M src/include/storage/smgr.h
M src/include/storage/spin.h
M src/include/storage/standby.h
M src/include/tcop/dest.h
M src/include/tcop/fastpath.h
M src/include/tcop/pquery.h
M src/include/tcop/tcopdebug.h
M src/include/tcop/tcopprot.h
M src/include/tcop/utility.h
M src/include/tsearch/dicts/regis.h
M src/include/tsearch/dicts/spell.h
M src/include/tsearch/ts_cache.h
M src/include/tsearch/ts_locale.h
M src/include/tsearch/ts_public.h
M src/include/tsearch/ts_type.h
M src/include/tsearch/ts_utils.h
M src/include/utils/acl.h
M src/include/utils/array.h
M src/include/utils/ascii.h
M src/include/utils/attoptcache.h
M src/include/utils/builtins.h
M src/include/utils/bytea.h
M src/include/utils/catcache.h
M src/include/utils/combocid.h
M src/include/utils/date.h
M src/include/utils/datetime.h
M src/include/utils/datum.h
M src/include/utils/dynahash.h
M src/include/utils/dynamic_loader.h
M src/include/utils/elog.h
M src/include/utils/errcodes.h
M src/include/utils/fmgrtab.h
M src/include/utils/formatting.h
M src/include/utils/geo_decls.h
M src/include/utils/guc.h
M src/include/utils/guc_tables.h
M src/include/utils/help_config.h
M src/include/utils/hsearch.h
M src/include/utils/inet.h
M src/include/utils/int8.h
M src/include/utils/inval.h
M src/include/utils/logtape.h
M src/include/utils/lsyscache.h
M src/include/utils/memutils.h
M src/include/utils/nabstime.h
M src/include/utils/numeric.h
M src/include/utils/palloc.h
M src/include/utils/pg_crc.h
M src/include/utils/pg_locale.h
M src/include/utils/pg_rusage.h
M src/include/utils/plancache.h
M src/include/utils/portal.h
M src/include/utils/rbtree.h
M src/include/utils/rel.h
M src/include/utils/relcache.h
M src/include/utils/relmapper.h
M src/include/utils/resowner.h
M src/include/utils/selfuncs.h
M src/include/utils/snapmgr.h
M src/include/utils/snapshot.h
M src/include/utils/spccache.h
M src/include/utils/syscache.h
M src/include/utils/timestamp.h
M src/include/utils/tqual.h
M src/include/utils/tuplesort.h
M src/include/utils/tuplestore.h
M src/include/utils/typcache.h
M src/include/utils/tzparser.h
M src/include/utils/uuid.h
M src/include/utils/varbit.h
M src/include/utils/xml.h
M src/include/windowapi.h
M src/interfaces/ecpg/compatlib/Makefile
M src/interfaces/ecpg/ecpglib/Makefile
M src/interfaces/ecpg/ecpglib/pg_type.h
M src/interfaces/ecpg/pgtypeslib/Makefile
M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/ecpg/preproc/check_rules.pl
M src/interfaces/ecpg/preproc/ecpg.c
M src/interfaces/ecpg/preproc/keywords.c
M src/interfaces/ecpg/preproc/parse.pl
M src/interfaces/ecpg/preproc/parser.c
M src/interfaces/ecpg/preproc/pgc.l
M src/interfaces/ecpg/test/pg_regress_ecpg.c
M src/interfaces/libpq/Makefile
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-auth.h
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/fe-exec.c
M src/interfaces/libpq/fe-lobj.c
M src/interfaces/libpq/fe-misc.c
M src/interfaces/libpq/fe-print.c
M src/interfaces/libpq/fe-protocol2.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/fe-secure.c
M src/interfaces/libpq/libpq-events.c
M src/interfaces/libpq/libpq-events.h
M src/interfaces/libpq/libpq-fe.h
M src/interfaces/libpq/libpq-int.h
M src/interfaces/libpq/libpq.rc.in
M src/interfaces/libpq/pqexpbuffer.c
M src/interfaces/libpq/pqexpbuffer.h
M src/interfaces/libpq/pqsignal.c
M src/interfaces/libpq/pqsignal.h
M src/interfaces/libpq/pthread-win32.c
M src/interfaces/libpq/win32.c
M src/pl/plperl/plperl.h
M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/pl_funcs.c
M src/pl/plpgsql/src/pl_handler.c
M src/pl/plpgsql/src/pl_scanner.c
M src/pl/plpgsql/src/plerrcodes.h
M src/pl/plpgsql/src/plpgsql.h
M src/port/chklocale.c
M src/port/dirent.c
M src/port/dirmod.c
M src/port/exec.c
M src/port/fseeko.c
M src/port/getaddrinfo.c
M src/port/gethostname.c
M src/port/getrusage.c
M src/port/isinf.c
M src/port/kill.c
M src/port/memcmp.c
M src/port/noblock.c
M src/port/open.c
M src/port/path.c
M src/port/pgcheckdir.c
M src/port/pgsleep.c
M src/port/pgstrcasecmp.c
M src/port/pipe.c
M src/port/random.c
M src/port/sprompt.c
M src/port/srandom.c
M src/port/strdup.c
M src/port/strlcpy.c
M src/port/strtol.c
M src/port/thread.c
M src/port/unsetenv.c
M src/port/win32env.c
M src/port/win32error.c
M src/port/win32ver.rc
M src/test/examples/testlo.c
M src/test/regress/GNUmakefile
M src/test/regress/pg_regress.c
M src/test/regress/pg_regress.h
M src/test/regress/pg_regress_main.c
M src/test/thread/Makefile
M src/test/thread/thread_test.c
M src/timezone/pgtz.c
M src/timezone/pgtz.h
M src/tools/findoidjoins/Makefile
M src/tools/findoidjoins/findoidjoins.c
M src/tools/fsync/Makefile
M src/tools/ifaddrs/Makefile
M src/tools/version_stamp.pl
M src/tools/win32tzlist.pl
M src/tutorial/complex.source
M src/tutorial/syscat.source

Furter pg_upgrade optimizations to reduce function call argument count.

commit   : 67c9e4442f2521ff2ad62aa4d409269ea684ac0a    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 12:28:48 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 12:28:48 -0500    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c

In pg_upgrade, remove use of whichCluster, and just pass old/new cluster pointers, which simplifies the code. This was not possible in 9.0 because everything was in a single nested struct, but is possible now.

commit   : 6e6bee987ff4b6d650eec9f20fd477269d95e295    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 12:06:36 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 1 Jan 2011 12:06:36 -0500    

Click here for diff

Per suggestion from Tom.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c

In pg_upgrade, rename "CLUSTERNAME" to "CLUSTER_NAME".

commit   : f82b3e58f8876c330927b0e6562936c184a7bc6f    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 31 Dec 2010 20:42:29 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 31 Dec 2010 20:42:29 -0500    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c

Include the first valid listen address in pg_ctl to improve server start "wait" detection and add postmaster start time to help determine if the postmaster is actually using the specified data directory.

commit   : 30aeda439456d14e713a5693461bcd62035f1d9d    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 31 Dec 2010 17:24:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 31 Dec 2010 17:24:26 -0500    

Click here for diff

M doc/src/sgml/storage.sgml
M src/backend/port/ipc_test.c
M src/backend/port/sysv_shmem.c
M src/backend/postmaster/postmaster.c
M src/backend/utils/init/miscinit.c
M src/bin/pg_ctl/pg_ctl.c
M src/include/miscadmin.h

Invert and rename flag variable to improve code readability.

commit   : 39c8dd66204ebfea9c1c6a7a9ca38b7419dbe8a1    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 31 Dec 2010 11:59:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 31 Dec 2010 11:59:38 -0500    

Click here for diff

No change in functionality.  Per discussion with Robert.  

M src/backend/optimizer/path/joinpath.c

Move symbols for ExecMergeJoin's state machine into nodeMergejoin.c.

commit   : 7b464015577e6e7544a7aacf19ca55b271e740ac    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 30 Dec 2010 22:12:40 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 30 Dec 2010 22:12:40 -0500    

Click here for diff

There's no reason for these values to be known anywhere else.  After  
doing this, executor/execdefs.h is vestigial and can be removed.  

M src/backend/executor/nodeMergejoin.c
D src/include/executor/execdefs.h
M src/include/nodes/execnodes.h

Support RIGHT and FULL OUTER JOIN in hash joins.

commit   : f4e4b3274317d9ce30de7e7e5b04dece7c4e1791    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 30 Dec 2010 20:24:55 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 30 Dec 2010 20:24:55 -0500    

Click here for diff

This is advantageous first because it allows us to hash the smaller table  
regardless of the outer-join type, and second because hash join can be more  
flexible than merge join in dealing with arbitrary join quals in a FULL  
join.  For merge join all the join quals have to be mergejoinable, but hash  
join will work so long as there's at least one hashjoinable qual --- the  
others can be any condition.  (This is true essentially because we don't  
keep per-inner-tuple match flags in merge join, while hash join can do so.)  
  
To do this, we need a has-it-been-matched flag for each tuple in the  
hashtable, not just one for the current outer tuple.  The key idea that  
makes this practical is that we can store the match flag in the tuple's  
infomask, since there are lots of bits there that are of no interest for a  
MinimalTuple.  So we aren't increasing the size of the hashtable at all for  
the feature.  
  
To write this without turning the hash code into even more of a pile of  
spaghetti than it already was, I rewrote ExecHashJoin in a state-machine  
style, similar to ExecMergeJoin.  Other than that decision, it was pretty  
straightforward.  

M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/joinpath.c
M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/plan/initsplan.c
M src/include/access/htup.h
M src/include/executor/hashjoin.h
M src/include/executor/nodeHash.h
M src/include/nodes/execnodes.h

Remove tabs in SGML

commit   : 17cb9e8c984746d3bbdf0d94367a0c5a6e2b6aee    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 30 Dec 2010 22:15:55 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 30 Dec 2010 22:15:55 +0200    

Click here for diff

M doc/src/sgml/ref/create_role.sgml

Avoid unnecessary public struct declaration in slru.h

commit   : 55573990cac93d9f17a5c3ef19946415f8244903    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 30 Dec 2010 12:09:17 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 30 Dec 2010 12:09:17 -0300    

Click here for diff

Instead, declare a public wrapper of the sole function using it for  
external callers, so that they don't have to always pass a NULL  
argument.  
  
Author: Kevin Grittner  

M src/backend/access/transam/clog.c
M src/backend/access/transam/multixact.c
M src/backend/access/transam/slru.c
M src/backend/access/transam/subtrans.c
M src/backend/commands/async.c
M src/include/access/slru.h

Doc wording improvement: taken -> accepted

commit   : 0be88f8739813067207314b3f88424ee8568d206    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 29 Dec 2010 13:49:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 29 Dec 2010 13:49:26 -0500    

Click here for diff

     with time zone</type>.)  <type>timestamptz</type> is accepted as an  

M doc/src/sgml/datatype.sgml

Improve pg_upgrade's checks for required executables.

commit   : 88c803457a53d2f83168519f0651e6dc258003b5    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 29 Dec 2010 13:43:53 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 29 Dec 2010 13:43:53 -0500    

Click here for diff

Don't insist on pg_dumpall and psql being present in the old cluster,  
since they are not needed.  Do insist on pg_resetxlog being present  
(in both old and new), since we need it.  Also check for pg_config,  
but only in the new cluster.  Remove the useless attempt to call  
pg_config in the old cluster; we don't need to know the old value of  
--pkglibdir.  (In the case of a stripped-down migration installation  
there might be nothing there to look at anyway, so any future change  
that might reintroduce that need would have to be considered carefully.)  
  
Per my attempts to build a minimal previous-version installation to support  
pg_upgrade.  

M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/option.c

Bump XLOG_PAGE_MAGIC.

commit   : d2bc1c9907115f5773927febf823c8d7ae92155b    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 29 Dec 2010 07:19:21 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 29 Dec 2010 07:19:21 -0500    

Click here for diff

The unlogged tables patch (commit 53dbc27c62d8e1b6c5253feba04a5094cb8fe046,  
2010-12-29) should have done this, since it changes the format of an  
XLOG_SMGR_CREATE record.  

M src/include/access/xlog_internal.h

Support unlogged tables.

commit   : 53dbc27c62d8e1b6c5253feba04a5094cb8fe046    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 29 Dec 2010 06:48:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 29 Dec 2010 06:48:53 -0500    

Click here for diff

The contents of an unlogged table are WAL-logged; thus, they are not  
available on standby servers and are truncated whenever the database  
system enters recovery.  Indexes on unlogged tables are also unlogged.  
Unlogged GiST indexes are not currently supported.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_table_as.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/storage.sgml
M src/backend/access/gin/gininsert.c
M src/backend/access/gist/gist.c
M src/backend/access/hash/hash.c
M src/backend/access/hash/hashovfl.c
M src/backend/access/hash/hashpage.c
M src/backend/access/nbtree/nbtree.c
M src/backend/access/transam/xlog.c
M src/backend/catalog/catalog.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/storage.c
M src/backend/commands/tablecmds.c
M src/backend/parser/gram.y
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/file/Makefile
M src/backend/storage/file/copydir.c
M src/backend/storage/file/fd.c
A src/backend/storage/file/reinit.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/cache/relcache.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dumpall.c
M src/bin/psql/describe.c
M src/include/access/gin.h
M src/include/access/gist_private.h
M src/include/access/hash.h
M src/include/access/nbtree.h
M src/include/catalog/catalog.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_class.h
M src/include/catalog/pg_proc.h
M src/include/catalog/storage.h
M src/include/parser/kwlist.h
M src/include/pg_config_manual.h
M src/include/storage/buf_internals.h
M src/include/storage/bufmgr.h
M src/include/storage/copydir.h
A src/include/storage/reinit.h
M src/include/storage/relfilenode.h
M src/include/utils/rel.h

Add REPLICATION privilege for ROLEs

commit   : 9b8aff8c192e2f313f90395d114c58a9ef84f97f    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 29 Dec 2010 11:05:03 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 29 Dec 2010 11:05:03 +0100    

Click here for diff

This privilege is required to do Streaming Replication, instead of  
superuser, making it possible to set up a SR slave that doesn't  
have write permissions on the master.  
  
Superuser privileges do NOT override this check, so in order to  
use the default superuser account for replication it must be  
explicitly granted the REPLICATION permissions. This is backwards  
incompatible change, in the interest of higher default security.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/ref/alter_role.sgml
M doc/src/sgml/ref/alter_user.sgml
M doc/src/sgml/ref/create_role.sgml
M doc/src/sgml/ref/create_user.sgml
M src/backend/access/transam/xlog.c
M src/backend/catalog/system_views.sql
M src/backend/commands/user.c
M src/backend/parser/gram.y
M src/backend/utils/init/miscinit.c
M src/backend/utils/init/postinit.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/psql/describe.c
M src/include/catalog/pg_authid.h
M src/include/miscadmin.h
M src/include/parser/kwlist.h
M src/test/regress/expected/rules.out

Avoid unexpected conversion overflow in planner for distant date values.

commit   : f2ba1e994c4d17dc3d4b8d48d3933c96d09127e1    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 22:49:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 22:49:57 -0500    

Click here for diff

The "date" type supports a wider range of dates than int64 timestamps do.  
However, there is pre-int64-timestamp code in the planner that assumes that  
all date values can be converted to timestamp with impunity.  Fortunately,  
what we really need out of the conversion is always a double (float8)  
value; so even when the date is out of timestamp's range it's possible to  
produce a sane answer.  All we need is a code path that doesn't try to  
force the result into int64.  Per trouble report from David Rericha.  
  
Back-patch to all supported versions.  Although this is surely a corner  
case, there's not much point in advertising a date range wider than  
timestamp's if we will choke on such values in unexpected places.  

M src/backend/utils/adt/date.c
M src/backend/utils/adt/selfuncs.c
M src/include/utils/date.h

Reclassify DEFAULT as a column_constraint item in the CREATE TABLE syntax.

commit   : 31d2efaef507f280f4df895e1730a9ec8c31aa12    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 21:38:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 21:38:05 -0500    

Click here for diff

This is how it was documented originally, but several years ago somebody  
decided that DEFAULT isn't a type of constraint.  Well, the grammar thinks  
it is.  The documentation was wrong in two ways: it alleged that DEFAULT  
had to appear before any other kind of constraint, and it alleged that you  
can't prefix a DEFAULT clause with a "CONSTRAINT name" clause, when in fact  
you can.  (The latter behavior probably isn't SQL-standard, but our grammar  
has always allowed it.)  
  
This patch responds to Fujii Masao's observation that the ALTER TABLE  
documentation mistakenly implied that you couldn't include DEFAULT in  
ALTER TABLE ADD COLUMN; though this isn't the way he proposed fixing it.  

M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/create_table.sgml

No release notes update, just advance the date

commit   : a5f96409fd748e519d4a061d678e4552e66f0019    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 28 Dec 2010 21:19:17 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 28 Dec 2010 21:19:17 +0200    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Fix ill-advised placement of PGRES_COPY_BOTH enum value.

commit   : 81a530a65eb867a366828daa7a8757727214ecad    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 11:02:10 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Dec 2010 11:02:10 -0500    

Click here for diff

It must be added at the end of the ExecStatusType enum to avoid ABI  
breakage compared to previous libpq versions.  Noted by Magnus.  

M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/fe-exec.c
M src/interfaces/libpq/libpq-fe.h

Another fix for larger postmaster.pid files.

commit   : b4d3792daa6032016325ae50e80dfae12eb95820    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Dec 2010 09:34:11 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Dec 2010 09:34:11 -0500    

Click here for diff

M src/backend/utils/init/miscinit.c

Fix list of functions that are restricted to superusers

commit   : 06004319be74709ae8684260f0f130e86128a9ed    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 28 Dec 2010 10:46:03 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 28 Dec 2010 10:46:03 +0100    

Click here for diff

Move the list of what's restricted to superusers into the table  
itself, so it doesn't get missed again.  

M doc/src/sgml/func.sgml

Fix code to properly pull out shared memory key now that the postmaster.pid file is larger than in previous major versions. This is a bug introduced when I added lines to the file recently.

commit   : bada44a2a2ac6f33bd355c9acc0dfaa3d4890e54    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 23:11:33 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 23:11:33 -0500    

Click here for diff

M src/backend/utils/init/miscinit.c

Mark unaccent functions as STABLE, rather than defaulting to VOLATILE.

commit   : c0577c92a84cc477a88fe6868c16c4a7e3348b11    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 15:34:42 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 15:34:42 -0500    

Click here for diff

M contrib/unaccent/unaccent.sql.in

Update SGML docs describing the contents of the postmaster.pid file, per change to the file for pg_ctl.

commit   : 0a023a14fc8df6edf7734763da3870897b9c1dd8    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 15:19:53 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 27 Dec 2010 15:19:53 -0500    

Click here for diff

M doc/src/sgml/storage.sgml

Remove -fno-operator-names switch from cpluspluscheck.

commit   : f79136439f250f3eab6792870353a83ad993e71f    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 15:03:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 15:03:24 -0500    

Click here for diff

No longer needed now that bitand() and bitor() have been renamed.  

M src/tools/pginclude/cpluspluscheck

Rename the C functions bitand(), bitor() to bit_and(), bit_or().

commit   : 84fc571395f6986d912cda6c09826cb10caee7f0    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 14:57:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 14:57:41 -0500    

Click here for diff

This is to avoid use of the C++ keywords "bitand" and "bitor" in  
the header file utils/varbit.h.  Note the functions' SQL-level  
names are not changed, only their C-level names.  
  
In passing, make some comments in varbit.c conform to project-standard  
layout.  

M src/backend/utils/adt/varbit.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/varbit.h

Rearrange cpluspluscheck to check just one .h file at a time.

commit   : 8c61f81b3196fe9757901e90e3fc1b30283d3995    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 12:51:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 12:51:44 -0500    

Click here for diff

This is slower than the original coding but avoids the problem of  
including files in an unpredictable order.  Aside from being more  
trustworthy, we can get rid of some exclusions that were formerly  
made for what turn out to be ordering or re-inclusion problems.  
  
I also modified it to include libpq's exported files in the check.  
ecpg should be included as well, but I'm unclear on which ecpg .h  
files are meant to be included by clients.  

M src/tools/pginclude/cpluspluscheck

Fix failure of executor/hashjoin.h to compile standalone.

commit   : 37b61a69f30e0aefcb49a4ad64d6884cd96fe397    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 12:20:09 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 12:20:09 -0500    

Click here for diff

Noted while experimenting with cpluspluscheck.  

M src/include/executor/hashjoin.h

Tweak cpluspluscheck to avoid directly #include'ing gram.h.

commit   : a977db6f1c3f399e5eaeb2514c72f38bdb8319e8    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 11:36:52 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 11:36:52 -0500    

Click here for diff

gram.h has ordering dependencies, which are satisfied when it's included  
from gramparse.h, but might not be if it's pulled in directly.  

M src/tools/pginclude/cpluspluscheck

Fix ill-chosen use of "private" as an argument and struct field name.

commit   : 275411912d96c160547a219cb3223efa3737f90d    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 11:26:19 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 27 Dec 2010 11:26:19 -0500    

Click here for diff

"private" is a keyword in C++, so this breaks the poorly-enforced policy  
that header files should be include-able in C++ code.  Per report from  
Craig Ringer and some investigation with cpluspluscheck.  

M src/backend/utils/fmgr/fmgr.c
M src/include/fmgr.h

Break up long line, per Leslie S Satenstein.

commit   : c7f0038d73d82ac64e19191ff94d59208534a4ea    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 27 Dec 2010 12:36:22 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 27 Dec 2010 12:36:22 -0300    

Click here for diff

M doc/src/sgml/libpq.sgml

Corrections to patch adding SQL/MED error codes.

commit   : 63676ebff402050f6b0b347188f5e857474da9e1    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 26 Dec 2010 21:32:07 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 26 Dec 2010 21:32:07 -0500    

Click here for diff

My previous commit, 85cff3ce7f360d139d87aee836d75a6202fee066 on  
2010-12-25, failed to update errcodes.sgml or plerrcodes.h.  This patch  
corrects that oversight, per a gripe from Tom Lane, and also corrects  
a typographical error.  

M doc/src/sgml/errcodes.sgml
M src/include/utils/errcodes.h
M src/pl/plpgsql/src/plerrcodes.h

Only build in crashdump support on Windows if there's a working dbghelp.h.

commit   : a534728afb7341e1ddf2df16196ed501eaa378c2    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 26 Dec 2010 10:34:47 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 26 Dec 2010 10:34:47 -0500    

Click here for diff

M configure
M configure.in
M src/Makefile.global.in
M src/backend/main/main.c
M src/backend/port/win32/Makefile
M src/include/pg_config.h.in
M src/include/pg_config.h.win32

Add foreign data wrapper error code values for SQL/MED.

commit   : 85cff3ce7f360d139d87aee836d75a6202fee066    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 25 Dec 2010 13:55:58 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 25 Dec 2010 13:55:58 -0500    

Click here for diff

Extracted from a much larger patch by Shigeru Hanada.  

M src/include/utils/errcodes.h

Correct spelling: longjump() -> longjmp().

commit   : 4ec92b05e640b0991ba67d41cbb097200200fe70    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 24 Dec 2010 22:21:50 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 24 Dec 2010 22:21:50 -0500    

Click here for diff

M doc/src/sgml/extend.sgml

Fix grammar

commit   : 79a9decdd33c9662c0722ef1d49d8aa951739da4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 22:08:07 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 22:08:07 +0200    

Click here for diff

M doc/src/sgml/extend.sgml

Allow vpath builds and regression tests to succeed on Mingw. Backpatch to release 8.4 - earlier releases would require more changes and it's not worth the trouble.

commit   : 04ee0db6b287a1ff41b55cc440769a1dddc318a7    
  
author   : Andrew Dunstan <[email protected]>    
date     : Fri, 24 Dec 2010 13:31:28 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Fri, 24 Dec 2010 13:31:28 -0500    

Click here for diff

M src/bin/pgevent/Makefile
M src/interfaces/ecpg/test/Makefile

Remove quotes from boolean recovery.conf.sample parameters, now that the quotes are not required. This now matches postgresql.conf's specification of booleans.

commit   : 5000472112da91023bf468e57bb8ce9217426ed7    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 24 Dec 2010 11:51:51 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 24 Dec 2010 11:51:51 -0500    

Click here for diff

M src/backend/access/transam/recovery.conf.sample

Improve "pg_ctl -w start" server detection by writing the postmaster port and socket directory into postmaster.pid, and have pg_ctl read from that file, for use by PQping().

commit   : 075354ad1bc0496c30dbd4dafb0f88a4d3e54cbc    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 24 Dec 2010 09:45:15 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 24 Dec 2010 09:45:15 -0500    

Click here for diff

M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/backend/utils/init/miscinit.c
M src/bin/pg_ctl/pg_ctl.c

Move the documentation of --no-security-label to a more sensible place

commit   : 4b1742a192a60b9c063fd7e93f5aed7a697bece1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 14:11:11 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 14:11:11 +0200    

Click here for diff

The order on the pg_dump/pg_dumpall man pages is not very strict, but  
surely putting it under connection options was wrong.  

M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml

Release notes for 9.1alpha3

commit   : b2fd345ab9ef5857ff42e6d81d57a0f15247b430    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 13:49:47 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 24 Dec 2010 13:49:47 +0200    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Document pg_dump(all) --no-security-label instead of --security-label.

commit   : a1b0035949da09bb0f19d2d9c2d54ca54ca55752    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 23 Dec 2010 23:22:40 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 23 Dec 2010 23:22:40 -0500    

Click here for diff

The former is the option actually supported by these commands.  

M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml

Added rule to ecpg lexer to accept "Unicode surrogate pair in extended quoted string". This is not really needed because the string gets copied to the output untranslated anyway, but by adding this rule the lexer stays in sync with the backend lexer.

commit   : 727a5a1620dd9f84036f8094f99a6ea494143bef    
  
author   : Michael Meskes <[email protected]>    
date     : Thu, 23 Dec 2010 12:41:12 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Thu, 23 Dec 2010 12:41:12 +0100    

Click here for diff

M src/interfaces/ecpg/preproc/pgc.l

Rewrite the GiST insertion logic so that we don't need the post-recovery cleanup stage to finish incomplete inserts or splits anymore. There was two reasons for the cleanup step:

commit   : 9de3aa65f01fb51cbc725e8508ea233e4e92c46c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 23 Dec 2010 16:03:08 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 23 Dec 2010 16:03:08 +0200    

Click here for diff

1. When a new tuple was inserted to a leaf page, the downlink in the parent  
needed to be updated to contain (ie. to be consistent with) the new key.  
Updating the parent in turn might require recursively updating the parent of  
the parent. We now handle that by updating the parent while traversing down  
the tree, so that when we insert the leaf tuple, all the parents are already  
consistent with the new key, and the tree is consistent at every step.  
  
2. When a page is split, we need to insert the downlink for the new right  
page(s), and update the downlink for the original page to not include keys  
that moved to the right page(s). We now handle that by setting a new flag,  
F_FOLLOW_RIGHT, on the non-rightmost pages in the split. When that flag is  
set, scans always follow the rightlink, regardless of the NSN mechanism used  
to detect concurrent page splits. That way the tree is consistent right after  
split, even though the downlink is still missing. This is very similar to the  
way B-tree splits are handled. When the downlink is inserted in the parent,  
the flag is cleared. To keep the insertion algorithm simple, when an  
insertion sees an incomplete split, indicated by the F_FOLLOW_RIGHT flag, it  
finishes the split before doing anything else.  
  
These changes allow removing the whole "invalid tuple" mechanism, but I  
retained the scan code to still follow invalid tuples correctly. While we  
don't create any such tuples anymore, we want to handle them gracefully in  
case you pg_upgrade a GiST index that has them. If we encounter any on an  
insert, though, we just throw an error saying that you need to REINDEX.  
  
The issue that got me into doing this is that if you did a checkpoint while  
an insert or split was in progress, and the checkpoint finishes quickly so  
that there is no WAL record related to the insert between RedoRecPtr and the  
checkpoint record, recovery from that checkpoint would not know to finish  
the incomplete insert. IOW, we have the same issue we solved with the  
rm_safe_restartpoint mechanism during normal operation too. It's highly  
unlikely to happen in practice, and this fix is far too large to backpatch,  
so we're just going to live with in previous versions, but this refactoring  
fixes it going forward.  
  
With this patch, you don't get the annoying  
'index "FOO" needs VACUUM or REINDEX to finish crash recovery' notices  
anymore if you crash at an unfortunate moment.  

M doc/src/sgml/gist.sgml
M src/backend/access/gist/README
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistsplit.c
M src/backend/access/gist/gistutil.c
M src/backend/access/gist/gistvacuum.c
M src/backend/access/gist/gistxlog.c
M src/backend/access/transam/rmgr.c
M src/include/access/gist.h
M src/include/access/gist_private.h

Document that BBU's do not allow partial page writes to be safely turned off unless they guarantee that all writes to the BBU arrive in 8kB chunks.

commit   : 7a1ca8977fd109a86b540444f71f24bd2f38ea43    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 22 Dec 2010 21:12:00 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 22 Dec 2010 21:12:00 -0500    

Click here for diff

Per discussion with Greg Smith  

M doc/src/sgml/wal.sgml

Typo fix.

commit   : 2a0f13a765befefc2658d3729f3e174b7c252125    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 22 Dec 2010 09:33:34 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 22 Dec 2010 09:33:34 -0500    

Click here for diff

Noted by Thom Brown.  

M doc/src/sgml/ref/pg_ctl-ref.sgml

Wording improvements for pg_ctl manual page.

commit   : 28d5c565ced893366d010e6754a9fad6d0a40364    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 22 Dec 2010 09:11:33 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 22 Dec 2010 09:11:33 -0500    

Click here for diff

M doc/src/sgml/ref/pg_ctl-ref.sgml

Add PQlibVersion() function to libpq

commit   : de9a4c27fefcc0d104bc9c97f4a93a49a25bf66d    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 22 Dec 2010 14:23:56 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 22 Dec 2010 14:23:56 +0100    

Click here for diff

This function is like the PQserverVersion() function except  
it returns the version of libpq, making it possible for a client  
program or driver to determine which version of libpq is in  
use at runtime, and not just at link time.  
  
Suggested by Harald Armin Massa and several others.  

M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/exports.txt
M src/interfaces/libpq/fe-misc.c
M src/interfaces/libpq/libpq-fe.h

Use memcmp() rather than strncmp() when shorter string length is known.

commit   : 32ba2b516066688ff56e6d62a7ff4a01c88f5700    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 22:11:40 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 22:11:40 -0500    

Click here for diff

It appears that this will be faster for all but the shortest strings;  
at least one some platforms, memcmp() can use word-at-a-time comparisons.  
  
Noah Misch, somewhat pared down.  

M contrib/hstore/hstore_io.c
M contrib/hstore/hstore_op.c
M contrib/ltree/ltree_gist.c
M contrib/ltree/ltree_op.c
M src/backend/nodes/readfuncs.c
M src/backend/utils/adt/varchar.c
M src/backend/utils/adt/varlena.c

Fix typos.

commit   : c5160b7eecf97a357375960b02a30317474334a3    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 17:57:35 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 17:57:35 -0500    

Click here for diff

Andreas Karlsson  

M src/backend/executor/nodeWindowAgg.c

Work around unfortunate getppid() behavior on BSD-ish systems.

commit   : 24ecde7742cd4d7c781e6890b07571fff42b25dc    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 06:30:32 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Dec 2010 06:30:32 -0500    

Click here for diff

On MacOS X, and apparently also on other BSD-derived systems, attaching  
a debugger causes getppid() to return the pid of the debugging process  
rather than the actual parent PID.  As a result, debugging the  
autovacuum launcher, startup process, or WAL sender on such systems  
causes it to exit, because the previous coding of PostmasterIsAlive()  
detects postmaster death by testing whether getppid() == PostmasterPid.  
  
Work around that behavior by checking the return value of getppid()  
more carefully.  If it's PostmasterPid, the postmaster must be alive;  
if it's 1, assume the postmaster is dead.  If it's any other value,  
assume we've been debugged and fall through to the less-reliable  
kill() test.  
  
Review by Tom Lane.  

M src/backend/storage/ipc/pmsignal.c

Allow transactions that don't write WAL to commit asynchronously.

commit   : f6a0863e3cb72763490ceca2c558d5ef2dddd5f2    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 20 Dec 2010 12:59:33 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 20 Dec 2010 12:59:33 -0500    

Click here for diff

This case can arise if a transaction has written data, but only to  
temporary tables.  Loss of the commit record in case of a crash won't  
matter, because the temporary tables will be lost anyway.  
  
Reviewed by Heikki Linnakangas and Simon Riggs.  

M src/backend/access/transam/xact.c

Fix typo

commit   : f9e9763b62df5415a60f30b441a73b381599e760    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 20 Dec 2010 12:05:12 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 20 Dec 2010 12:05:12 -0300    

Click here for diff

Jaime Casanova  

M doc/src/sgml/protocol.sgml

Remove thread dumping constant that requires newer Platform SDK

commit   : d382828f6ed1edc0f123934d53c52065ecc425c9    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 19 Dec 2010 21:31:23 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 19 Dec 2010 21:31:23 +0100    

Click here for diff

Since we're not multithreaded it only provides marginally useful  
information, and it does require a newer version of the Platform SDK  
than we target. We may want to reconsider this in the future along  
with a fix for MinGW.  

M src/backend/port/win32/crashdump.c

Fix up handling of simple-form CASE with constant test expression.

commit   : 1b19e2c0baedb959650a27f25bd8537bd51d60b0    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 19 Dec 2010 15:30:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 19 Dec 2010 15:30:44 -0500    

Click here for diff

eval_const_expressions() can replace CaseTestExprs with constants when  
the surrounding CASE's test expression is a constant.  This confuses  
ruleutils.c's heuristic for deparsing simple-form CASEs, leading to  
Assert failures or "unexpected CASE WHEN clause" errors.  I had put in  
a hack solution for that years ago (see commit  
514ce7a331c5bea8e55b106d624e55732a002295 of 2006-10-01), but bug #5794  
from Peter Speck shows that that solution failed to cover all cases.  
  
Fortunately, there's a much better way, which came to me upon reflecting  
that Peter's "CASE TRUE WHEN" seemed pretty redundant: we can "simplify"  
the simple-form CASE to the general form of CASE, by simply omitting the  
constant test expression from the rebuilt CASE construct.  This is  
intuitively valid because there is no need for the executor to evaluate  
the test expression at runtime; it will never be referenced, because any  
CaseTestExprs that would have referenced it are now replaced by constants.  
This won't save a whole lot of cycles, since evaluating a Const is pretty  
cheap, but a cycle saved is a cycle earned.  In any case it beats kluging  
ruleutils.c still further.  So this patch improves const-simplification  
and reverts the previous change in ruleutils.c.  
  
Back-patch to all supported branches.  The bug exists in 8.1 too, but it's  
out of warranty.  

M src/backend/optimizer/util/clauses.c
M src/backend/utils/adt/ruleutils.c

Fix erroneous parsing of tsquery input "... & !(subexpression) | ..."

commit   : abc10262696e53773c9a8c9f279bbd464b464190    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 19 Dec 2010 12:48:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 19 Dec 2010 12:48:34 -0500    

Click here for diff

After parsing a parenthesized subexpression, we must pop all pending  
ANDs and NOTs off the stack, just like the case for a simple operand.  
Per bug #5793.  
  
Also fix clones of this routine in contrib/intarray and contrib/ltree,  
where input of types query_int and ltxtquery had the same problem.  
  
Back-patch to all supported versions.  

M contrib/intarray/_int_bool.c
M contrib/ltree/ltxtquery_io.c
M src/backend/utils/adt/tsquery.c

Support for collecting crash dumps on Windows

commit   : dcb09b595f88a3bca6097a6acc17bf2ec935d55f    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 19 Dec 2010 16:45:28 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 19 Dec 2010 16:45:28 +0100    

Click here for diff

Add support for collecting "minidump" style crash dumps on  
Windows, by setting up an exception handling filter. Crash  
dumps will be generated in PGDATA/crashdumps if the directory  
is created (the existance of the directory is used as on/off  
switch for the generation of the dumps).  
  
Craig Ringer and Magnus Hagander  

M doc/src/sgml/installation.sgml
M src/backend/main/main.c
M src/backend/port/win32/Makefile
A src/backend/port/win32/crashdump.c
M src/include/port/win32.h

Properly print the IP number and "localhost" for failed localhost connections when the server is down, on Win32.

commit   : 7e95337d586185c91f8af3fbcb0a6b380b4ba1c7    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 18 Dec 2010 11:25:41 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 18 Dec 2010 11:25:41 -0500    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Make GUC variables for syslog and SSL always visible

commit   : 4754dbf4c3f857a496b0d29af74786c73d1a8401    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 18 Dec 2010 16:53:59 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 18 Dec 2010 16:53:59 +0100    

Click here for diff

Make the variables visible (but not used) even when  
support is not compiled in.  

M src/backend/libpq/be-secure.c
M src/backend/utils/misc/guc.c

set_ps_display when calling functions via fastpath

commit   : 3026027ec3a795745e8e80fc9f204bebc97be58e    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 17 Dec 2010 18:51:22 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 17 Dec 2010 18:51:22 -0300    

Click here for diff

This improves tag output by log_line_prefix  

M src/backend/tcop/postgres.c

Remove unnecessary definition for autovacuum in SignalSomeChildren.

commit   : b68193c0c7a7cfbc4aead3910cd492be63c0cd8b    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 17 Dec 2010 15:56:54 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 17 Dec 2010 15:56:54 -0300    

Click here for diff

M src/backend/postmaster/postmaster.c

Try to save a kernel call in ResolveRecoveryConflictWithVirtualXIDs.

commit   : 8bd4b89e240cc6488f5e1523202cc2d27e9970c0    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Dec 2010 11:32:02 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Dec 2010 11:32:02 -0500    

Click here for diff

If there's no work to be done, just exit quickly, before initialization.  

M src/backend/storage/ipc/standby.c

Reset 'ps' display just once when resolving VXID conflicts.

commit   : 611fed371227f430e71d0ff7fed037f1006b410d    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Dec 2010 08:30:57 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Dec 2010 08:30:57 -0500    

Click here for diff

This prevents the word "waiting" from briefly disappearing from the ps  
status line when ResolveRecoveryConflictWithVirtualXIDs begins a new  
iteration of the outer loop.  
  
Along the way, remove some useless pgstat_report_waiting() calls;  
the startup process doesn't appear in pg_stat_activity.  
  
Fujii Masao  

M src/backend/storage/ipc/standby.c

Waiting for complete startup is now a well-defined operation.

commit   : df142bf82c84de5d0588ae7d52881501abb039ed    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 16 Dec 2010 20:57:33 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 16 Dec 2010 20:57:33 -0500    

Click here for diff

Per report from Fujii Masao, and subsequent discussion.  

M doc/src/sgml/ref/pg_ctl-ref.sgml

Improve comments around startup_hacks() code.

commit   : 14ed7735f5bb5275da13891c4bb106c198d00b53    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Dec 2010 17:57:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Dec 2010 17:57:57 -0500    

Click here for diff

These comments were not updated when we added the EXEC_BACKEND  
mechanism for Windows, even though it rendered them inaccurate.  
  
Also unify two unnecessarily-separate #ifdef __alpha code blocks.  

M src/backend/main/main.c

Remove optreset from src/port/ implementations of getopt and getopt_long.

commit   : 61b53695fbbedb7fa9d394e71bf2affdc494e6b0    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Dec 2010 16:22:05 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Dec 2010 16:22:05 -0500    

Click here for diff

We don't actually need optreset, because we can easily fix the code to  
ensure that it's cleanly restartable after having completed a scan over the  
argv array; which is the only case we need to restart in.  Getting rid of  
it avoids a class of interactions with the system libraries and allows  
reversion of my change of yesterday in postmaster.c and postgres.c.  
  
Back-patch to 8.4.  Before that the getopt code was a bit different anyway.  

M src/backend/postmaster/postmaster.c
M src/backend/tcop/postgres.c
M src/include/getopt_long.h
M src/port/getopt.c
M src/port/getopt_long.c

Avoid clobbering errno, per comment from Tom.

commit   : cd1fefa973968ff4e3760a9593f70fe2da0def48    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 17:15:37 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 17:15:37 -0300    

Click here for diff

M src/port/exec.c

Fix inconsequential FILE pointer leakage

commit   : 83c759ea0ea8ffe07c45e6fd2c489cebce2caad6    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 16:45:11 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 16:45:11 -0300    

Click here for diff

M src/port/exec.c

Add some minor missing error checks

commit   : e359b8496d11befb63d4734874d997909c44ad83    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 12:22:08 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 12:22:08 -0300    

Click here for diff

M src/port/win32env.c

Simplify SignalSomeChildren(BACKEND_TYPE_ALL) to SignalChildren()

commit   : 16ca75baebc56cebc6590691a0b474ee1922519c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 12:20:38 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 16 Dec 2010 12:20:38 -0300    

Click here for diff

M src/backend/postmaster/postmaster.c

Fix crash caused by NULL lookup when reporting IP address of failed libpq connection, per report from Magnus. This happens only on GIT master and only on Win32 because that is the platform where "" maps to an IP address (localhost).

commit   : 48da2b87e3f292534a26d3bacc2a13f7b62a34c8    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 16 Dec 2010 10:13:43 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 16 Dec 2010 10:13:43 -0500    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Fix up getopt() reset management so it works on recent mingw.

commit   : 5cdd65f3241ce10c66953228daef60df7b3966d1    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Dec 2010 23:50:41 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Dec 2010 23:50:41 -0500    

Click here for diff

The mingw people don't appear to care about compatibility with non-GNU  
versions of getopt, so force use of our own copy of getopt on Windows.  
Also, ensure that we make use of optreset when using our own copy.  
  
Per report from Andrew Dunstan.  Back-patch to all versions supported  
on Windows.  

M configure
M configure.in
M src/backend/postmaster/postmaster.c
M src/backend/tcop/postgres.c

Fix contrib/seg's GiST picksplit method.

commit   : 2a6ebe70fb2f7ec97a08dc07214fe2ca571d2780    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Dec 2010 21:14:24 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Dec 2010 21:14:24 -0500    

Click here for diff

This patch replaces Guttman's generalized split method with a simple  
sort-by-center-points algorithm.  Since the data is only one-dimensional  
we don't really need the slow and none-too-stable Guttman method.  
  
This is in part a bug fix, since seg has the same size_alpha versus  
size_beta typo that was recently fixed in contrib/cube.  It seems  
prudent to apply this rather aggressive fix only in HEAD, though.  
Back branches will just get the typo fix.  
  
Alexander Korotkov, reviewed by Yeb Havinga  

M contrib/seg/seg.c

Some copy editing of pg_read_binary_file() patch.

commit   : 290f1603b4208ca6a13776f744b586a958e98d74    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 15 Dec 2010 21:02:31 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 15 Dec 2010 21:02:31 -0500    

Click here for diff

M doc/src/sgml/func.sgml
M src/backend/utils/adt/genfile.c

Document timestamptz a little better.

commit   : afc8f47b5885716db716a2523c00f7465cb7f415    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 15 Dec 2010 20:52:31 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 15 Dec 2010 20:52:31 -0500    

Click here for diff

M doc/src/sgml/datatype.sgml

Add pg_read_binary_file() and whole-file-at-once versions of pg_read_file(). One of the usages of the binary version is to read files in a different encoding from the server encoding.

commit   : 03db44eae3e065174d5e29888b8d98c39b1f520b    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 16 Dec 2010 06:56:28 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 16 Dec 2010 06:56:28 +0900    

Click here for diff

Dimitri Fontaine and Itagaki Takahiro.  

M doc/src/sgml/func.sgml
M src/backend/utils/adt/genfile.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h

Use "upgrade" in preference over "migrate" in pg_upgrade messages and documentation. (Many were left over from the old pg_migrator naming.)

commit   : 16b5e08decc8207ae35589add387dce9b62669de    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 15 Dec 2010 07:11:31 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 15 Dec 2010 07:11:31 -0500    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c
M doc/src/sgml/pgupgrade.sgml

Instrument checkpoint sync calls.

commit   : 34c70c7ac4926495b7ab5ebfe748704313a4c822    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 14 Dec 2010 09:25:25 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 14 Dec 2010 09:25:25 -0500    

Click here for diff

Greg Smith, reviewed by Jeff Janes  

M src/backend/access/transam/xlog.c
M src/backend/storage/smgr/md.c
M src/include/access/xlog.h

Improved tab completion for views with triggers.

commit   : 9878e295dc937c664367875dc001b7503df057f1    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 22:37:55 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 22:37:55 -0500    

Click here for diff

Allow INSERT INTO, UPDATE, and DELETE FROM to be completed with  
either the name of a table (as before) or the name of a view with  
an appropriate INSTEAD OF rule.  
  
Along the way, allow CREATE TRIGGER to be completed with INSTEAD OF,  
as well as BEFORE and AFTER.  
  
David Fetter, reviewed by Itagaki Takahiro  

M src/bin/psql/tab-complete.c

Update release notes for releases 9.0.2, 8.4.6, 8.3.13, 8.2.19, and 8.1.23.

commit   : f9224c8ec2f6dcfed6daa3f94597b870ec31c8d8    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 13 Dec 2010 20:21:51 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 13 Dec 2010 20:21:51 -0500    

Click here for diff

M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml

Allow plugins to suppress inlining and hook function entry/exit/abort.

commit   : d368e1a2a7afad5a0fc711a2ab70a83c36fa57af    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 18:58:31 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 18:58:31 -0500    

Click here for diff

This is intended as infrastructure to allow an eventual SE-Linux plugin to  
support trusted procedures.  
  
KaiGai Kohei  

M src/backend/optimizer/util/clauses.c
M src/backend/utils/fmgr/fmgr.c
M src/include/fmgr.h

Remove recently reintroduced CVS keyword

commit   : 843a490f0aeccd5b61a30c37d2ffaae26d192329    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 13 Dec 2010 23:22:52 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 13 Dec 2010 23:22:52 +0200    

Click here for diff

M doc/src/sgml/ref/security_label.sgml

Document replacement of pg_class.relistemp with relpersistence.

commit   : d26849ee26e46a689fb7c228f98e10fb46c1b2a8    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 13:07:08 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 13:07:08 -0500    

Click here for diff

Noted by Tom Lane.  

M doc/src/sgml/catalogs.sgml

Update time zone data files to tzdata release 2010o: DST law changes in Fiji and Samoa. Historical corrections for Hong Kong.

commit   : f5e4f743e6a84884156ac86948277df4c672865c    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 13 Dec 2010 12:41:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 13 Dec 2010 12:41:57 -0500    

Click here for diff

M src/timezone/data/asia
M src/timezone/data/australasia
M src/timezone/data/zone.tab

Generalize concept of temporary relations to "relation persistence".

commit   : 5f7b58fad8f45c69bb67944779dce67e2f481995    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 12:34:26 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Dec 2010 12:34:26 -0500    

Click here for diff

This commit replaces pg_class.relistemp with pg_class.relpersistence;  
and also modifies the RangeVar node type to carry relpersistence rather  
than istemp.  It also removes removes rd_istemp from RelationData and  
instead performs the correct computation based on relpersistence.  
  
For clarity, we add three new macros: RelationNeedsWAL(),  
RelationUsesLocalBuffers(), and RelationUsesTempNamespace(), so that we  
can clarify the purpose of each check that previous depended on  
rd_istemp.  
  
This is intended as infrastructure for the upcoming unlogged tables  
patch, as well as for future possible work on global temporary tables.  

M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistvacuum.c
M src/backend/access/heap/heapam.c
M src/backend/access/heap/pruneheap.c
M src/backend/access/heap/rewriteheap.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/bootstrap/bootparse.y
M src/backend/catalog/catalog.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/namespace.c
M src/backend/catalog/storage.c
M src/backend/catalog/toasting.c
M src/backend/commands/cluster.c
M src/backend/commands/indexcmds.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/vacuumlazy.c
M src/backend/commands/view.c
M src/backend/executor/execMain.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/postmaster/autovacuum.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/cache/relcache.c
M src/include/catalog/catalog.h
M src/include/catalog/catversion.h
M src/include/catalog/heap.h
M src/include/catalog/pg_class.h
M src/include/catalog/storage.h
M src/include/commands/tablespace.h
M src/include/nodes/primnodes.h
M src/include/utils/rel.h
M src/include/utils/relcache.h

Reset all database-level stats in pgstat_recv_resetcounter().

commit   : 0c90442355fbbe785740669f63141f24674c8958    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 12 Dec 2010 15:09:53 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 12 Dec 2010 15:09:53 -0500    

Click here for diff

We were failing to zero out some pg_stat_database counters that have  
been added since the initial pgstats coding.  This is a bug, but not  
back-patching the fix since changing this behavior in a minor release  
seems a cure worse than the disease.  
  
Report and patch by Tomas Vondra.  

M src/backend/postmaster/pgstat.c

Make S_IRGRP etc available in mingw builds as well as MSVC.

commit   : 5132ad8bdf8e85ea0054217ef7ee38c51ace4824    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 12 Dec 2010 13:43:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 12 Dec 2010 13:43:44 -0500    

Click here for diff

(Hm, I wonder whether BCC defines them either...)  
  
Also label dangling endifs a bit better in this area.  

M src/include/port/win32.h

Clean up some copied-and-pasted code in pg_upgrade.

commit   : 3864afa1d1478f7a76fde1ea160a7bc8f5d5b203    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 11 Dec 2010 14:17:46 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 11 Dec 2010 14:17:46 -0500    

Click here for diff

1. Don't reimplement S_ISDIR() and S_ISREG() badly.  
2. Don't reimplement access() badly.  
  
This code appears to have been copied from ancient versions of the  
corresponding backend routines, and not patched to incorporate subsequent  
fixes (see my commits of 2008-03-31 and 2010-01-14 respectively).  
It might be a good idea to change it to just *call* those routines,  
but for now I'll just transpose these fixes over.  

M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c

Provide a complete set of file-permission-bit macros in win32.h.

commit   : 1319002e2ee166c06b38cdbc5e8508c7205fa115    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 11 Dec 2010 13:11:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 11 Dec 2010 13:11:18 -0500    

Click here for diff

My previous patch exposed the fact that we didn't have these.  Those  
hard-wired octal constants were actually wrong on Windows, not just  
inconsistent.  

M src/include/port/win32.h

Allow bidirectional copy messages in streaming replication mode.

commit   : d3d414696f39e2b57072fab3dd4fa11e465be4ed    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 11 Dec 2010 09:27:37 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 11 Dec 2010 09:27:37 -0500    

Click here for diff

Fujii Masao.  Review by Alvaro Herrera, Tom Lane, and myself.  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/protocol.sgml
M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walsender.c
M src/include/replication/walreceiver.h
M src/interfaces/libpq/fe-exec.c
M src/interfaces/libpq/fe-protocol2.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/libpq-fe.h
M src/interfaces/libpq/libpq-int.h

Add required new port files to MSVC builds.

commit   : 20f396429186a35a81fc7ef3ad34c3134ead2992    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 11 Dec 2010 14:06:38 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 11 Dec 2010 14:06:38 +0100    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm

Minor documentation cleanup.

commit   : 1490946c57f44d3bf8601e9a404aaa80b58a715a    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 10 Dec 2010 23:22:50 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 10 Dec 2010 23:22:50 -0500    

Click here for diff

Fujii Masao  

M doc/src/sgml/ref/pg_ctl-ref.sgml

Move a couple of initdb's subroutines into src/port/.

commit   : 671199929d09397e0a60e269aec28846669216db    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 19:42:44 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 19:42:44 -0500    

Click here for diff

mkdir_p and check_data_dir will be useful in CREATE TABLESPACE, since we  
have agreed that that command should handle subdirectory creation just like  
initdb creates the PGDATA directory.  Push them into src/port/ so that they  
are available to both initdb and the backend.  Rename to pg_mkdir_p and  
pg_check_dir, just to be on the safe side.  Add FreeBSD's copyright notice  
to pgmkdirp.c, since that's where the code came from originally (this  
really should have been in initdb.c).  Very marginal code/comment cleanup.  

M src/bin/initdb/initdb.c
M src/include/port.h
M src/port/Makefile
A src/port/pgcheckdir.c
A src/port/pgmkdirp.c

Use symbolic names not octal constants for file permission flags.

commit   : 04f4e10cfc158239ca00a6ed6a84428c7acb1e6d    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 17:35:33 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 17:35:33 -0500    

Click here for diff

Purely cosmetic patch to make our coding standards more consistent ---  
we were doing symbolic some places and octal other places.  This patch  
fixes all C-coded uses of mkdir, chmod, and umask.  There might be some  
other calls I missed.  Inconsistency noted while researching tablespace  
directory permissions issue.  

M src/backend/access/transam/xlog.c
M src/backend/commands/copy.c
M src/backend/commands/tablespace.c
M src/backend/libpq/be-fsstubs.c
M src/backend/postmaster/postmaster.c
M src/backend/postmaster/syslogger.c
M src/backend/storage/file/copydir.c
M src/backend/storage/ipc/ipc.c
M src/bin/initdb/initdb.c
M src/bin/pg_ctl/pg_ctl.c

Fix efficiency problems in tuplestore_trim().

commit   : 244407a7103498d687c8e4ea96b83044f95f0893    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 11:33:38 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 10 Dec 2010 11:33:38 -0500    

Click here for diff

The original coding in tuplestore_trim() was only meant to work efficiently  
in cases where each trim call deleted most of the tuples in the store.  
Which, in fact, was the pattern of the original usage with a Material node  
supporting mark/restore operations underneath a MergeJoin.  However,  
WindowAgg now uses tuplestores and it has considerably less friendly  
trimming behavior.  In particular it can attempt to trim one tuple at a  
time off a large tuplestore.  tuplestore_trim() had O(N^2) runtime in this  
situation because of repeatedly shifting its tuple pointer array.  Fix by  
avoiding shifting the array until a reasonably large number of tuples have  
been deleted.  This can waste some pointer space, but we do still reclaim  
the tuples themselves, so the percentage wastage should be pretty small.  
  
Per Jie Li's report of slow percent_rank() evaluation.  cume_dist() and  
ntile() would certainly be affected as well, along with any other window  
function that has a moving frame start and requires reading substantially  
ahead of the current row.  
  
Back-patch to 8.4, where window functions were introduced.  There's no  
need to tweak it before that.  

M src/backend/utils/sort/tuplestore.c

Eliminate O(N^2) behavior in parallel restore with many blobs.

commit   : 663fc32e26e8df41434d751e2203c1aa410d1916    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 9 Dec 2010 13:03:11 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 9 Dec 2010 13:03:11 -0500    

Click here for diff

With hundreds of thousands of TOC entries, the repeated searches in  
reduce_dependencies() become the dominant cost.  Get rid of that searching  
by constructing reverse-dependency lists, which we can do in O(N) time  
during the fix_dependencies() preprocessing.  I chose to store the reverse  
dependencies as DumpId arrays for consistency with the forward-dependency  
representation, and keep the previously-transient tocsByDumpId[] array  
around to locate actual TOC entry structs quickly from dump IDs.  
  
While this fixes the slow case reported by Vlad Arkhipov, there is still  
a potential for O(N^2) behavior with sufficiently many tables:  
fix_dependencies itself, as well as mark_create_done and  
inhibit_data_for_failed_table, are doing repeated searches to deal with  
table-to-table-data dependencies.  Possibly this work could be extended  
to deal with that, although the latter two functions are also used in  
non-parallel restore where we currently don't run fix_dependencies.  
  
Another TODO is that we fail to parallelize restore of multiple blobs  
at all.  This appears to require changes in the archive format to fix.  
  
Back-patch to 9.0 where the problem was reported.  8.4 has potential issues  
as well; but since it doesn't create a separate TOC entry for each blob,  
it's at much less risk of having enough TOC entries to cause real problems.  

M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h

Self review of previous patch. Fix assumption that xmax >= xmin.

commit   : 9975c683b102d06ed5d5ab799eaba0d00a9ff38c    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 9 Dec 2010 10:20:49 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 9 Dec 2010 10:20:49 +0000    

Click here for diff

M src/backend/access/heap/heapam.c

Reduce spurious Hot Standby conflicts from never-visible records. Hot Standby conflicts only with tuples that were visible at some point. So ignore tuples from aborted transactions or for tuples updated/deleted during the inserting transaction when generating the conflict transaction ids.

commit   : b9075a6d2f9b07a00262a670dd60272904c79dce    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 9 Dec 2010 09:41:47 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 9 Dec 2010 09:41:47 +0000    

Click here for diff

Following detailed analysis and test case by Noah Misch.  
Original report covered btree delete records, correctly observed  
by Heikki Linnakangas that this applies to other cases also.  
Fix covers all sources of cleanup records via common code.  

M src/backend/access/heap/heapam.c
M src/backend/access/heap/pruneheap.c
M src/backend/access/nbtree/nbtxlog.c

Force default wal_sync_method to be fdatasync on Linux.

commit   : 576477e73c4a9cb32c7471c1cec354fd5328140e    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 8 Dec 2010 20:01:09 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 8 Dec 2010 20:01:09 -0500    

Click here for diff

Recent versions of the Linux system header files cause xlogdefs.h to  
believe that open_datasync should be the default sync method, whereas  
formerly fdatasync was the default on Linux.  open_datasync is a bad  
choice, first because it doesn't actually outperform fdatasync (in fact  
the reverse), and second because we try to use O_DIRECT with it, causing  
failures on certain filesystems (e.g., ext4 with data=journal option).  
This part of the patch is largely per a proposal from Marti Raudsepp.  
More extensive changes are likely to follow in HEAD, but this is as much  
change as we want to back-patch.  
  
Also clean up confusing code and incorrect documentation surrounding the  
fsync_writethrough option.  Those changes shouldn't result in any actual  
behavioral change, but I chose to back-patch them anyway to keep the  
branches looking similar in this area.  
  
In 9.0 and HEAD, also do some copy-editing on the WAL Reliability  
documentation section.  
  
Back-patch to all supported branches, since any of them might get used  
on modern Linux versions.  

M doc/src/sgml/config.sgml
M doc/src/sgml/wal.sgml
M src/backend/storage/file/fd.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/access/xlogdefs.h
M src/include/port/linux.h
M src/include/port/win32.h

Optimize commit_siblings in two ways to improve group commit. First, avoid scanning the whole ProcArray once we know there are at least commit_siblings active; second, skip the check altogether if commit_siblings = 0.

commit   : e620ee35b249b0af255ef788003d1c9edb815a35    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 8 Dec 2010 18:48:03 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 8 Dec 2010 18:48:03 +0000    

Click here for diff

Greg Smith  

M doc/src/sgml/config.sgml
M src/backend/access/transam/xact.c
M src/backend/storage/ipc/procarray.c
M src/backend/utils/misc/guc.c
M src/include/storage/procarray.h

Fix bugs in the hot standby known-assigned-xids tracking logic. If there's an old transaction running in the master, and a lot of transactions have started and finished since, and a WAL-record is written in the gap between the creating the running-xacts snapshot and WAL-logging it, recovery will fail with "too many KnownAssignedXids" error. This bug was reported by Joachim Wieland on Nov 19th.

commit   : 5a031a5556ff83b8a9646892715d7fef415b83c3    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 7 Dec 2010 09:23:30 +0100    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 7 Dec 2010 09:23:30 +0100    

Click here for diff

In the same scenario, when fewer transactions have started so that all the  
xids fit in KnownAssignedXids despite the first bug, a more serious bug  
arises. We incorrectly initialize the clog code with the oldest still running  
transaction, and when we see the WAL record belonging to a transaction with  
an XID larger than one that committed already before the checkpoint we're  
recovering from, we zero the clog page containing the already committed  
transaction, leading to data loss.  
  
In hindsight, trying to track xids in the known-assigned-xids array before  
seeing the running-xacts record was too complicated. To fix that, hold  
XidGenLock while the running-xacts snapshot is taken and WAL-logged. That  
ensures that no transaction can begin or end in that gap, so that in recvoery  
we know that the snapshot contains all transactions running at that point in  
WAL.  

M src/backend/access/transam/xlog.c
M src/backend/storage/ipc/procarray.c
M src/backend/storage/ipc/standby.c
M src/include/storage/procarray.h

Add a stack overflow check to copyObject().

commit   : 8b5692809707c0e15d04c530a3fed9347350ea01    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 6 Dec 2010 22:55:43 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 6 Dec 2010 22:55:43 -0500    

Click here for diff

There are some code paths, such as SPI_execute(), where we invoke  
copyObject() on raw parse trees before doing parse analysis on them.  Since  
the bison grammar is capable of building heavily nested parsetrees while  
itself using only minimal stack depth, this means that copyObject() can be  
the front-line function that hits stack overflow before anything else does.  
Accordingly, it had better have a check_stack_depth() call.  I did a bit of  
performance testing and found that this slows down copyObject() by only a  
few percent, so the hit ought to be negligible in the context of complete  
processing of a query.  
  
Per off-list report from Toshihide Katayama.  Back-patch to all supported  
branches.  

M src/backend/nodes/copyfuncs.c

Allow the low level COPY routines to read arbitrary numbers of fields. This doesn't involve any user-visible change in behavior, but will be useful when the COPY routines are exposed to allow their use by Foreign Data Wrapper routines, which will be able to use these routines to read irregular CSV files, for example.

commit   : af1a614ec6d074fdea46de2e1c462f23fc7ddc6f    
  
author   : Andrew Dunstan <[email protected]>    
date     : Mon, 6 Dec 2010 15:31:55 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Mon, 6 Dec 2010 15:31:55 -0500    

Click here for diff

M src/backend/commands/copy.c

Fix two typos, by Fujii Masao.

commit   : 95e42a2c2980003880dee622fc3bed0b03322542    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 6 Dec 2010 12:36:26 +0100    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 6 Dec 2010 12:36:26 +0100    

Click here for diff

M src/backend/access/transam/xlog.c

Put only single space after "Sort Method:", for consistency

commit   : 951d7861212120571a601d946194892db6f2bde1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 6 Dec 2010 13:35:47 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 6 Dec 2010 13:35:47 +0200    

Click here for diff

M src/backend/commands/explain.c

Reduce memory consumption inside inheritance_planner().

commit   : d1001a78ce612a16ea622b558f5fc2b68c45ab4c    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 5 Dec 2010 15:10:28 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 5 Dec 2010 15:10:28 -0500    

Click here for diff

Avoid eating quite so much memory for large inheritance trees, by  
reclaiming the space used by temporary copies of the original parsetree and  
range table, as well as the workspace needed during planning.  The cost is  
needing to copy the finished plan trees out of the child memory context.  
Although this looks like it ought to slow things down, my testing shows  
it actually is faster, apparently because fewer interactions with malloc()  
are needed and/or we can do the work within a more readily cacheable amount  
of memory.  That result might be platform-dependent, but I'll take it.  
  
Per a gripe from John Papandriopoulos, in which it was pointed out that the  
memory consumption actually grew as O(N^2) for sufficiently many child  
tables, since we were creating N copies of the N-element range table.  

M src/backend/optimizer/plan/planner.c

Fix two small bugs in new gistget.c logic.

commit   : d1f5a92e18dcfc750e9d338597e66af920aad99e    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 13:47:08 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 13:47:08 -0500    

Click here for diff

1. Complain, rather than silently doing nothing, if an "invalid" tuple  
is found on a leaf page.  Per off-list discussion with Heikki.  
  
2. Fix oversight in code that removes a GISTSearchItem from the search  
queue: we have to reset lastHeap if this was the last heap item in the  
parent GISTSearchTreeItem.  Otherwise subsequent additions will do the  
wrong thing.  This was probably masked in early testing because in typical  
cases the parent item would now be completely empty and would be deleted on  
next call.  You'd need a queued non-leaf page at exactly the same distance  
as a heap tuple to expose the bug.  

M src/backend/access/gist/gistget.c

Make output width consistent for all ways of invoking a regression test

commit   : 387e468b82952776121a8d4bd409d72757edbc16    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 4 Dec 2010 17:34:48 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 4 Dec 2010 17:34:48 +0200    

Click here for diff

run_schedule() and run_single_test() were using different output widths, which  
would show up in bigcheck/bigtest, for example.  

M src/test/regress/pg_regress.c

Update comment to match later code changes.

commit   : e194a942f98caf0b278e3ba30a85545ac790ea1d    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 03:21:49 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 03:21:49 -0500    

Click here for diff

M src/include/access/gist_private.h

Add KNNGIST support to contrib/pg_trgm.

commit   : b525bf771e31a2254f28bf25c6ed7987d64c8afb    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 00:16:21 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 4 Dec 2010 00:16:21 -0500    

Click here for diff

Teodor Sigaev, with some revision by Tom  

M contrib/pg_trgm/expected/pg_trgm.out
M contrib/pg_trgm/pg_trgm.sql.in
M contrib/pg_trgm/sql/pg_trgm.sql
M contrib/pg_trgm/trgm.h
M contrib/pg_trgm/trgm_gin.c
M contrib/pg_trgm/trgm_gist.c
M contrib/pg_trgm/trgm_op.c
M contrib/pg_trgm/uninstall_pg_trgm.sql
M doc/src/sgml/pgtrgm.sgml

Add external documentation for KNNGIST.

commit   : b576757d7ee064ada5351c2e6a36c2f7234aa1d4    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 23:49:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 23:49:06 -0500    

Click here for diff

M doc/src/sgml/gist.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/indices.sgml
M doc/src/sgml/xindex.sgml
M src/backend/access/gist/README

Put back gistgettuple's check for backwards scan request.

commit   : 04910a3ad5cd2901558da2a4fad9a2e2819348aa    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 22:43:01 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 22:43:01 -0500    

Click here for diff

On reflection it's a bad idea for the KNNGIST patch to have removed that.  
We don't want it silently returning incorrect answers.  

M src/backend/access/gist/gistget.c

KNNGIST, otherwise known as order-by-operator support for GIST.

commit   : 554506871bd3a73a5d9fa4ee3aa0b0fbf406f8ab    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 20:52:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Dec 2010 20:52:18 -0500    

Click here for diff

This commit represents a rather heavily editorialized version of  
Teodor's builtin_knngist_itself-0.8.2 and builtin_knngist_proc-0.8.1  
patches.  I redid the opclass API to add a separate Distance method  
instead of turning the Consistent method into an illogical mess,  
fixed some bit-rot in the rbtree interfaces, and generally worked over  
the code style and comments.  
  
There's still no non-code documentation to speak of, but I'll work on  
that separately.  Some contrib-module changes are also yet to come  
(right now, point <-> point is the only KNN-ified operator).  
  
Teodor Sigaev and Tom Lane  

M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistproc.c
M src/backend/access/gist/gistscan.c
M src/include/access/gist.h
M src/include/access/gist_private.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_amop.h
M src/include/catalog/pg_amproc.h
M src/include/catalog/pg_proc.h
M src/include/utils/geo_decls.h
M src/test/regress/expected/create_index.out
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/create_index.sql
M src/test/regress/sql/opr_sanity.sql

Clarify that LOCK TABLE requires a table-level privilege.

commit   : c0a4d3e0511b4d1f7996451329deaa2acd0e18fa    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 09:29:14 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 09:29:14 -0500    

Click here for diff

M doc/src/sgml/ref/lock.sgml

Remove now-outdated mention of quotes being required in recovery.conf.

commit   : 5ef6c913836b136632adf8f4625691e4656e8c05    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 09:00:18 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 09:00:18 -0500    

Click here for diff

Noted by Itagaki Takahiro.  

M src/backend/access/transam/recovery.conf.sample

Use GUC lexer for recovery.conf parsing.

commit   : 970a18687f9b3058e89d5994a8fbf70888e79548    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 08:44:15 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 3 Dec 2010 08:44:15 -0500    

Click here for diff

This eliminates some crufty, special-purpose code and, as a non-trivial  
side benefit, allows recovery.conf parameters to be unquoted.  
  
Dimitri Fontaine, with review and cleanup by Alvaro Herrera, Itagaki  
Takahiro, and me.  

M src/backend/access/transam/xlog.c
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/include/utils/guc.h

Remove misleading comments. Move _Clone and _DeClone functions before the "END OF FORMAT CALLBACKS" comment, because they are format callbacks too.

commit   : 9cea52a5a354853a76b90c20d7d3bf87df45ebbf    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 3 Dec 2010 14:58:24 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 3 Dec 2010 14:58:24 +0200    

Click here for diff

M src/bin/pg_dump/pg_backup_custom.c

Remove unnecessary string null-termination in pg_convert. We can directly verify the unterminated input with pg_verify_mbstr_len.

commit   : fd223c7407c7067ac3ec7e586f9e3d7b5afd2b2e    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Fri, 3 Dec 2010 12:00:27 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Fri, 3 Dec 2010 12:00:27 +0900    

Click here for diff

M src/backend/utils/mb/mbutils.c

Create core infrastructure for KNNGIST.

commit   : d583f10b7e0b9e1ed18f339f3177ed42ac2f7570    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Dec 2010 20:50:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Dec 2010 20:50:48 -0500    

Click here for diff

This is a heavily revised version of builtin_knngist_core-0.9.  The  
ordering operators are no longer mixed in with actual quals, which would  
have confused not only humans but significant parts of the planner.  
Instead, ordering operators are carried separately throughout planning and  
execution.  
  
Since the API for ambeginscan and amrescan functions had to be changed  
anyway, this commit takes the opportunity to rationalize that a bit.  
RelationGetIndexScan no longer forces a premature index_rescan call;  
instead, callers of index_beginscan must call index_rescan too.  Aside from  
making the AM-side initialization logic a bit less peculiar, this has the  
advantage that we do not make a useless extra am_rescan call when there are  
runtime key values.  AMs formerly could not assume that the key values  
passed to amrescan were actually valid; now they can.  
  
Teodor Sigaev and Tom Lane  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/indexam.sgml
M src/backend/access/gin/ginscan.c
M src/backend/access/gist/gistscan.c
M src/backend/access/hash/hash.c
M src/backend/access/index/genam.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/nbtree.c
M src/backend/commands/cluster.c
M src/backend/commands/explain.c
M src/backend/executor/execQual.c
M src/backend/executor/execUtils.c
M src/backend/executor/nodeBitmapIndexscan.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeMergejoin.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/pathnode.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/lsyscache.c
M src/include/access/genam.h
M src/include/access/relscan.h
M src/include/access/skey.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_proc.h
M src/include/executor/nodeIndexscan.h
M src/include/nodes/execnodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/relation.h
M src/include/optimizer/cost.h
M src/include/optimizer/pathnode.h
M src/include/pg_config_manual.h
M src/include/utils/lsyscache.h

Move private struct declaration to compress_io.c

commit   : d7e5d151daa2d5fe096953ae0b3530707b7c87f5    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:38:49 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:38:49 -0300    

Click here for diff

Keep only the typedef in the header file.  

M src/bin/pg_dump/compress_io.c
M src/bin/pg_dump/compress_io.h

Remove trailing whitespace

commit   : 0025b76f4fc52bed4e8ad2623ec6b9821a4e936c    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:38:31 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:38:31 -0300    

Click here for diff

M src/bin/pg_dump/compress_io.c

Remove useless struct declaration

commit   : d67a39c3267d1901ae9e702637cc56b16e70332a    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:25:18 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:25:18 -0300    

Click here for diff

M src/bin/pg_dump/compress_io.h

Silence compiler

commit   : 7f4a7af2fd0991dc3ef14a63c614a7ad17b56c79    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:21:53 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 2 Dec 2010 17:21:53 -0300    

Click here for diff

M src/bin/pg_dump/compress_io.c

Refactor the pg_dump zlib code from pg_backup_custom.c to a separate file, to make it easier to reuse that code. There is no user-visible changes.

commit   : bf9aa490db24b2334b3595ee33653bf2fe39208c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 2 Dec 2010 21:39:03 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 2 Dec 2010 21:39:03 +0200    

Click here for diff

This is in preparation for the patch to add a new archive format, a directory,  
to perform a custom-like dump but with each table being dumped to a separate  
file (that in turn is a prerequisite for parallel pg_dump). This also makes it  
easier to add new compression methods in the future, and makes the  
pg_backup_custom.c code easier to read, when the compression-related code is  
factored out.  
  
Joachim Wieland, with heavy editorialization by me.  

M src/bin/pg_dump/Makefile
A src/bin/pg_dump/compress_io.c
A src/bin/pg_dump/compress_io.h
M src/bin/pg_dump/pg_backup_archiver.h
M src/bin/pg_dump/pg_backup_custom.c

Prevent inlining a SQL function with multiple OUT parameters.

commit   : 225f0aa3dfef55554cbe2e6da73df5e41b9eec18    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 1 Dec 2010 00:53:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 1 Dec 2010 00:53:18 -0500    

Click here for diff

There were corner cases in which the planner would attempt to inline such  
a function, which would result in a failure at runtime due to loss of  
information about exactly what the result record type is.  Fix by disabling  
inlining when the function's recorded result type is RECORD.  There might  
be some sub-cases where inlining could still be allowed, but this is a  
simple and backpatchable fix, so leave refinements for another day.  
Per bug #5777 from Nate Carson.  
  
Back-patch to all supported branches.  8.1 happens to avoid a core-dump  
here, but it still does the wrong thing.  

M src/backend/executor/functions.c
M src/backend/optimizer/util/clauses.c
M src/test/regress/expected/rangefuncs.out
M src/test/regress/sql/rangefuncs.sql

Simplify and speed up mapping of index opfamilies to pathkeys.

commit   : c0b5fac7010fa3468577d3a90ee8783639500fed    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 29 Nov 2010 12:29:42 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 29 Nov 2010 12:29:42 -0500    

Click here for diff

Formerly we looked up the operators associated with each index (caching  
them in relcache) and then the planner looked up the btree opfamily  
containing such operators in order to build the btree-centric pathkey  
representation that describes the index's sort order.  This is quite  
pointless for btree indexes: we might as well just use the index's opfamily  
information directly.  That saves syscache lookup cycles during planning,  
and furthermore allows us to eliminate the relcache's caching of operators  
altogether, which may help in reducing backend startup time.  
  
I added code to plancat.c to perform the same type of double lookup  
on-the-fly if it's ever faced with a non-btree amcanorder index AM.  
If such a thing actually becomes interesting for production, we should  
replace that logic with some more-direct method for identifying the  
corresponding btree opfamily; but it's not worth spending effort on now.  
  
There is considerably more to do pursuant to my recent proposal to get rid  
of sort-operator-based representations of sort orderings, but this patch  
grabs some of the low-hanging fruit.  I'll look at the remainder of that  
work after the current commitfest.  

M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/util/plancat.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/relcache.c
M src/include/nodes/relation.h
M src/include/utils/rel.h

Be consistent about writing "[, ...]" instead "[,...]" in the docs.

commit   : 3c42efceb21b8dfe1b5686bd914520980933fcd4    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 29 Nov 2010 11:49:51 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 29 Nov 2010 11:49:51 +0200    

Click here for diff

Christoph Berg.  

M doc/src/sgml/ref/alter_default_privileges.sgml
M doc/src/sgml/ref/grant.sgml
M doc/src/sgml/ref/revoke.sgml
M doc/src/sgml/sql.sgml

Fix typo.

commit   : fab7fdb988f25438ded6c4a5c4b4f112f9decddb    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 28 Nov 2010 20:46:11 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 28 Nov 2010 20:46:11 -0500    

Click here for diff

Fujii Masao  

M contrib/README

Move call to GetTopTransactionId() earlier in LockAcquire(), removing an infrequently occurring race condition in Hot Standby. An xid must be assigned before a lock appears in shared memory, rather than immediately after, else GetRunningTransactionLocks() may see InvalidTransactionId, causing assertion failures during lock processing on standby.

commit   : ed78384acd691e3336e170aa18af69d15d088027    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 29 Nov 2010 01:08:02 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 29 Nov 2010 01:08:02 +0000    

Click here for diff

Bug report and diagnosis by Fujii Masao, fix by me.  

M src/backend/storage/ipc/standby.c
M src/backend/storage/lmgr/lock.c
M src/include/storage/standby.h

Point out in default_tablespace's description that CREATE DATABASE ignores it.

commit   : c623365ff9a5ef937e05b85c2feb5a5c5cde9b3b    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 16:08:32 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 16:08:32 -0500    

Click here for diff

Per gripe from Andreas Scherbaum.  

M doc/src/sgml/config.sgml

commit   : 1f48290a9d6d000d1b5012b9304b734ecb9cc759    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 27 Nov 2010 11:02:44 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 27 Nov 2010 11:02:44 -0500    

Click here for diff

M src/interfaces/libpq/Makefile

New contrib module, auth_delay.

commit   : fe7a32fc87e68edf014ee7e575f92cb027437ff4    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 27 Nov 2010 07:22:25 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 27 Nov 2010 07:22:25 -0500    

Click here for diff

KaiGai Kohei, with a few changes by me.  

M contrib/Makefile
M contrib/README
A contrib/auth_delay/Makefile
A contrib/auth_delay/auth_delay.c
A doc/src/sgml/auth-delay.sgml
M doc/src/sgml/contrib.sgml
M doc/src/sgml/filelist.sgml

A bit more wordsmithing on the PQping documentation.

commit   : d53c1255d9730b07d56166ace1191250ca76f496    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 02:42:22 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 02:42:22 -0500    

Click here for diff

M doc/src/sgml/libpq.sgml

On further testing, PQping also needs an explicit check for AUTH_REQ.

commit   : 49cd8a3f810467632260f16c7779f19212c1d094    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 02:11:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 02:11:45 -0500    

Click here for diff

The pg_fe_sendauth code might fail if it can't handle the authentication  
request message type --- if so, ping should still say the server is up.  

M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/libpq-int.h

Rewrite PQping to be more like what we agreed to last week.

commit   : db96e1ccfcb8f3514eef931bea9435974ec7ad28    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 01:30:34 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 27 Nov 2010 01:30:34 -0500    

Click here for diff

Basically, we want to distinguish all cases where the connection was  
not made from those where it was.  A convenient proxy for this is to  
see if we got a message with a SQLSTATE code back from the postmaster.  
This presumes that the postmaster will always send us a SQLSTATE in  
a failure message, which is true for 7.4 and later postmasters in  
every case except fork failure.  (We could possibly complicate the  
postmaster code to do something about that, but it seems not worth  
the trouble, especially since pg_ctl's response for that case should  
be to keep waiting anyway.)  
  
If we did get a SQLSTATE from the postmaster, there are basically only  
two cases, as per last week's discussion: ERRCODE_CANNOT_CONNECT_NOW  
and everything else.  Any other error code implies that the postmaster  
is in principle willing to accept connections, it just didn't like or  
couldn't handle this particular request.  We want to make a special  
case for ERRCODE_CANNOT_CONNECT_NOW so that "pg_ctl start -w" knows  
it should keep waiting.  
  
In passing, pick names for the enum constants that are a tad less  
likely to present collision hazards in future.  

M doc/src/sgml/libpq.sgml
M src/bin/pg_ctl/pg_ctl.c
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/libpq-fe.h
M src/interfaces/libpq/libpq-int.h

Clean up IPv4 vs IPv6 bogosity in connectFailureMessage().

commit   : be3b666eb810089fd9a1d42e3888be52ab9ddb63    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 19:16:39 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 19:16:39 -0500    

Click here for diff

Newly added code was supposing that "struct sockaddr_in" applies to IPv6.  

M src/interfaces/libpq/fe-connect.c

Fix portability issues in new src/port/inet_net_ntop.c file.

commit   : 3840bc0847aa1b635127ff4a55b5257c9ebc79b8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 17:59:10 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 17:59:10 -0500    

Click here for diff

1. Don't #include postgres.h in a frontend build.  
  
2. Don't assume that the backend's symbol PGSQL_AF_INET6 has anything to do  
with the constant that will be used by system library functions (because,  
in point of fact, it usually doesn't).  Fortunately, PGSQL_AF_INET is equal  
to AF_INET, so we can just cater for both sets of values in one case  
construct without fear of conflict.  

M src/port/inet_net_ntop.c

Add more ALTER <object> .. SET SCHEMA commands.

commit   : 55109313f96fb5c7d671fe8954b6f7fc0cca9631    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 26 Nov 2010 17:27:23 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 26 Nov 2010 17:27:23 -0500    

Click here for diff

This adds support for changing the schema of a conversion, operator,  
operator class, operator family, text search configuration, text search  
dictionary, text search parser, or text search template.  
  
Dimitri Fontaine, with assorted corrections and other kibitzing.  

M doc/src/sgml/ref/alter_conversion.sgml
M doc/src/sgml/ref/alter_opclass.sgml
M doc/src/sgml/ref/alter_operator.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/alter_tsconfig.sgml
M doc/src/sgml/ref/alter_tsdictionary.sgml
M doc/src/sgml/ref/alter_tsparser.sgml
M doc/src/sgml/ref/alter_tstemplate.sgml
M src/backend/commands/alter.c
M src/backend/commands/conversioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/tsearchcmds.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/bin/psql/tab-complete.c
M src/include/commands/alter.h
M src/include/commands/conversioncmds.h
M src/include/commands/defrem.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Remove bogus use of PGDLLIMPORT.

commit   : 1d9a0abec1224193fea3acf766b587fc3963a3b8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 17:05:29 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 17:05:29 -0500    

Click here for diff

That macro should be attached to extern declarations, not actual  
definitions of variables.  

M src/backend/utils/init/globals.c

Fix significant memory leak in contrib/xml2 functions.

commit   : 4a2516a7f976e2f6671930904d4e97a4832eff9f    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 15:20:51 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 26 Nov 2010 15:20:51 -0500    

Click here for diff

Most of the functions that execute XPath queries leaked the data structures  
created by libxml2.  This memory would not be recovered until end of  
session, so it mounts up pretty quickly in any serious use of the feature.  
Per report from Pavel Stehule, though this isn't his patch.  
  
Back-patch to all supported branches.  

M contrib/xml2/xpath.c

Add inet_net_ntop.c as needed by MSVC, per Magnus.

commit   : e6e38b4ac21cc25fb8187e573a672ff17d9b2801    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 14:39:13 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 14:39:13 -0500    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm

Use conn->raddr consistently for non-connect libpq error reporting.

commit   : f2eba413db99fcde9a4d3a9f52578dc4e7f5d5ec    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 13:26:13 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 13:26:13 -0500    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Update comment that says we only report last libpq connection failure, per Peter.

commit   : bad8277f13c31350abd7571af51d272bd1401f3c    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:52:03 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:52:03 -0500    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Use only addr_cur when reporting connection failures in libpq.

commit   : ed51bd4968a903e13bdcded869a644fd0d28353c    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:49:35 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:49:35 -0500    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Abandon use of Makefile variables in libpq/Makefile because MSVC scrapes the OBJS lines from that file.

commit   : 4f6deef2fb7ddc6b3c6b901db66072cf65ccaa27    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:10:26 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 11:10:26 -0500    

Click here for diff

Cleanup where possible.  

M src/interfaces/libpq/Makefile

In libpq/Makefile, merge PERM_PGPORT and OPT_PGPORT into a single Makefile variable PGPORT, for clarity.

commit   : a9b02ec654434e7e395b8677ba142a99eed7eb5e    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 10:22:09 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 10:22:09 -0500    

Click here for diff

M src/interfaces/libpq/Makefile

Improve pg_ctl "cannot connect" spacing, per Tom, and wording.

commit   : 5f4b3d750b7648d90486827a3de58c226daa2c58    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 10:04:18 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 26 Nov 2010 10:04:18 -0500    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

Improve pg_ctl "cannot connect" warning, per suggestion from Magnus.

commit   : 4646e0cef70d2f9a6bb1764cee5c13b7bbd23625    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 14:38:20 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 14:38:20 -0500    

Click here for diff

M src/bin/pg_ctl/pg_ctl.c

For libpq/Makefile OPT_PGPORT, remove .o extension after we test configure's LIBOBJS. Should fix buildfarm failures.

commit   : 742ac738c33a1a6adf11a7e69c65f102b602a1e5    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 13:19:31 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 13:19:31 -0500    

Click here for diff

M src/interfaces/libpq/Makefile

Add PQping and PQpingParams to libpq to allow detection of the server's status, including a status where the server is running but refuses a postgres connection.

commit   : afd7d9adca971d9aae97e87ce617d8608d25ab10    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 13:09:38 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 13:09:38 -0500    

Click here for diff

Have pg_ctl use this new function.  This fixes the case where pg_ctl  
reports that the server is not running (cannot connect) but in fact it  
is running.  

M doc/src/sgml/libpq.sgml
M src/bin/pg_ctl/pg_ctl.c
M src/interfaces/libpq/exports.txt
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/libpq-fe.h

Fix getaddrinfo() in pgport to use proper parameters, as detected by Win32 buildfarm members.

commit   : 212a1c7b0b4164e15381af327ee6656ae7e02298    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 12:56:59 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 12:56:59 -0500    

Click here for diff

M src/port/getaddrinfo.c

Restructure how libpq includes external C files, for clarity.

commit   : c6978ecd6f761388d8479c8b32cfd0dd2d2bd4ac    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 12:51:06 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 25 Nov 2010 12:51:06 -0500    

Click here for diff

M src/interfaces/libpq/Makefile

Object access hook framework, with post-creation hook.

commit   : cc1ed40d57aa68322e43a7b0a3320a6c5aff010a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 11:48:49 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 11:48:49 -0500    

Click here for diff

After a SQL object is created, we provide an opportunity for security  
or logging plugins to get control; for example, a security label provider  
could use this to assign an initial security label to newly created  
objects.  The basic infrastructure is (hopefully) reusable for other types  
of events that might require similar treatment.  
  
KaiGai Kohei, with minor adjustments.  

M src/backend/catalog/heap.c
M src/backend/catalog/pg_constraint.c
M src/backend/catalog/pg_conversion.c
M src/backend/catalog/pg_namespace.c
M src/backend/catalog/pg_operator.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_type.c
M src/backend/commands/dbcommands.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/proclang.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/user.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/storage/large_object/inv_api.c
M src/backend/utils/init/globals.c
A src/include/catalog/objectaccess.h

commit   : d3c126544342728ab4b5c167b4f4b01a39270db5    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Thu, 25 Nov 2010 19:40:58 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Thu, 25 Nov 2010 19:40:58 +0900    

Click here for diff

M contrib/dblink/dblink.c

Add inet_net_ntop.c to .gitignore.

commit   : 2d1e426650fc93e5dfdd0178023485d38b03b102    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 00:12:25 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 00:12:25 -0500    

Click here for diff

M src/interfaces/libpq/.gitignore

Remove belt-and-suspenders guards against buffer pin leaks.

commit   : c2281ac87cf4828b6b828dc8585a10aeb3a176e0    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 00:06:46 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 25 Nov 2010 00:06:46 -0500    

Click here for diff

Forcibly releasing all leftover buffer pins should be unnecessary now  
that we have a robust ResourceOwner mechanism, and it significantly  
increases the cost of process shutdown.  Instead, in an assert-enabled  
build, assert that no pins are held; in a non-assert-enabled build, do  
nothing.  

M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/buffer/localbuf.c

Properly add new inet_net_ntop file to libpq Makefile.

commit   : 58dfb07b5d84c0088033e2d22fc44df812fa6eb5    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 21:58:47 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 21:58:47 -0500    

Click here for diff

M src/interfaces/libpq/Makefile

Document that a CHECKPOINT before taking a file system snapshot can reduce recovery time.

commit   : 7276ab5888d85782d988fc297ad2e176c7ad1bca    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 18:41:28 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 18:41:28 -0500    

Click here for diff

M doc/src/sgml/backup.sgml

When reporting the server as not responding, if the hostname was supplied, also print the IP address. This allows IPv4 and IPv6 failures to be distinguished. Also useful when a hostname resolves to multiple IP addresses.

commit   : ba11258ccbf364d85de48b8b7fd46953ea7bb4f4    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 17:04:19 -0500    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 24 Nov 2010 17:04:19 -0500    

Click here for diff

Also, remove use of inet_ntoa() and use our own inet_net_ntop() in all  
places, including in libpq, because it is thread-safe.  

M doc/src/sgml/libpq.sgml
M src/backend/utils/adt/Makefile
R055 src/backend/utils/adt/inet_net_ntop.c src/backend/utils/adt/inet_cidr_ntop.c
M src/include/port.h
M src/include/utils/builtins.h
M src/interfaces/libpq/fe-connect.c
M src/port/Makefile
M src/port/getaddrinfo.c
A src/port/inet_net_ntop.c

Create the system catalog infrastructure needed for KNNGIST.

commit   : 725d52d0c27cffe8c99bb78e2b0d2480d5cd702b    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 24 Nov 2010 14:20:39 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 24 Nov 2010 14:20:39 -0500    

Click here for diff

This commit adds columns amoppurpose and amopsortfamily to pg_amop, and  
column amcanorderbyop to pg_am.  For the moment all the entries in  
amcanorderbyop are "false", since the underlying support isn't there yet.  
  
Also, extend the CREATE OPERATOR CLASS/ALTER OPERATOR FAMILY commands with  
[ FOR SEARCH | FOR ORDER BY sort_operator_family ] clauses to allow the new  
columns of pg_amop to be populated, and create pg_dump support for dumping  
that information.  
  
I also added some documentation, although it's perhaps a bit premature  
given that the feature doesn't do anything useful yet.  
  
Teodor Sigaev, Robert Haas, Tom Lane  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/xindex.sgml
M src/backend/commands/opclasscmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/optimizer/util/plancat.c
M src/backend/optimizer/util/predtest.c
M src/backend/parser/gram.y
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/syscache.c
M src/bin/pg_dump/pg_dump.c
M src/include/catalog/catversion.h
M src/include/catalog/indexing.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_amop.h
M src/include/nodes/parsenodes.h
M src/include/nodes/relation.h
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/opr_sanity.sql

Add index entries for more functions

commit   : 4fc09ad00c3cc95003a5523d85999da1dd4f9d75    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 24 Nov 2010 00:00:34 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 24 Nov 2010 00:00:34 +0200    

Click here for diff

Also, move index entries into the tables, closer to the function description,  
for easier editing in the future.  Resort some tables to be more alphabetical.  
Remove the entries for count, max, min, and sum in the tutorial area, because  
that was felt to be confusing.  
  
Thom Brown  

M doc/src/sgml/func.sgml
M doc/src/sgml/query.sgml

Propagate ALTER TYPE operations to typed tables

commit   : f2a4278330ae12cd56b61c92a7debb9c9fca7b41    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 23 Nov 2010 22:50:17 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 23 Nov 2010 22:50:17 +0200    

Click here for diff

This adds RESTRICT/CASCADE flags to ALTER TYPE ... ADD/DROP/ALTER/  
RENAME ATTRIBUTE to control whether to alter typed tables as well.  

M doc/src/sgml/ref/alter_type.sgml
M src/backend/commands/alter.c
M src/backend/commands/tablecmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/include/commands/tablecmds.h
M src/include/nodes/parsenodes.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Remove useless whitespace at end of lines

commit   : fc946c39aeacdff7df60c83fca6582985e8546c8    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 23 Nov 2010 22:27:50 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 23 Nov 2010 22:27:50 +0200    

Click here for diff

M README
M config/ac_func_accept_argtypes.m4
M config/general.m4
M configure.in
M contrib/README
M contrib/btree_gin/Makefile
M contrib/btree_gin/expected/cidr.out
M contrib/btree_gin/expected/date.out
M contrib/btree_gin/expected/inet.out
M contrib/btree_gin/expected/interval.out
M contrib/btree_gin/expected/macaddr.out
M contrib/btree_gin/expected/time.out
M contrib/btree_gin/expected/timestamp.out
M contrib/btree_gin/expected/timestamptz.out
M contrib/btree_gin/expected/timetz.out
M contrib/btree_gin/sql/cidr.sql
M contrib/btree_gin/sql/date.sql
M contrib/btree_gin/sql/inet.sql
M contrib/btree_gin/sql/interval.sql
M contrib/btree_gin/sql/macaddr.sql
M contrib/btree_gin/sql/time.sql
M contrib/btree_gin/sql/timestamp.sql
M contrib/btree_gin/sql/timestamptz.sql
M contrib/btree_gin/sql/timetz.sql
M contrib/btree_gist/btree_gist.sql.in
M contrib/btree_gist/uninstall_btree_gist.sql
M contrib/citext/citext.sql.in
M contrib/citext/expected/citext.out
M contrib/citext/expected/citext_1.out
M contrib/citext/sql/citext.sql
M contrib/cube/CHANGES
M contrib/cube/cube.sql.in
M contrib/cube/cubeparse.y
M contrib/cube/cubescan.l
M contrib/cube/expected/cube.out
M contrib/cube/expected/cube_1.out
M contrib/cube/expected/cube_2.out
M contrib/cube/sql/cube.sql
M contrib/dblink/Makefile
M contrib/dblink/dblink.sql.in
M contrib/dblink/expected/dblink.out
M contrib/dblink/sql/dblink.sql
M contrib/earthdistance/earthdistance.sql.in
M contrib/fuzzystrmatch/fuzzystrmatch.sql.in
M contrib/hstore/expected/hstore.out
M contrib/hstore/sql/hstore.sql
M contrib/intarray/Makefile
M contrib/intarray/bench/bench.pl
M contrib/intarray/bench/create_test.pl
M contrib/isn/ISBN.h
M contrib/ltree/ltree.sql.in
M contrib/ltree/uninstall_ltree.sql
M contrib/pg_buffercache/Makefile
M contrib/pg_buffercache/pg_buffercache.sql.in
M contrib/pg_freespacemap/Makefile
M contrib/pg_trgm/pg_trgm.sql.in
M contrib/pg_trgm/uninstall_pg_trgm.sql
M contrib/pg_upgrade/IMPLEMENTATION
M contrib/pg_upgrade/TESTING
M contrib/pg_upgrade/relfilenode.c
M contrib/pgcrypto/expected/blowfish.out
M contrib/pgcrypto/expected/crypt-blowfish.out
M contrib/pgcrypto/expected/rijndael.out
M contrib/pgcrypto/rijndael.tbl
M contrib/pgcrypto/sql/blowfish.sql
M contrib/pgcrypto/sql/crypt-blowfish.sql
M contrib/pgcrypto/sql/rijndael.sql
M contrib/seg/expected/seg.out
M contrib/seg/expected/seg_1.out
M contrib/seg/seg.sql.in
M contrib/seg/segparse.y
M contrib/seg/segscan.l
M contrib/seg/sort-segments.pl
M contrib/seg/sql/seg.sql
M contrib/spi/autoinc.example
M contrib/spi/autoinc.sql.in
M contrib/spi/insert_username.example
M contrib/spi/insert_username.sql.in
M contrib/spi/moddatetime.example
M contrib/spi/refint.example
M contrib/spi/timetravel.example
M contrib/spi/timetravel.sql.in
M contrib/start-scripts/osx/PostgreSQL
M contrib/test_parser/expected/test_parser.out
M contrib/test_parser/sql/test_parser.sql
M contrib/tsearch2/expected/tsearch2.out
M contrib/tsearch2/expected/tsearch2_1.out
M contrib/tsearch2/sql/tsearch2.sql
M contrib/tsearch2/tsearch2.sql.in
M contrib/unaccent/Makefile
M contrib/xml2/expected/xml2.out
M contrib/xml2/expected/xml2_1.out
M contrib/xml2/sql/xml2.sql
M doc/bug.template
M doc/src/sgml/Makefile
M doc/src/sgml/auto-explain.sgml
M doc/src/sgml/biblio.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/contacts.sgml
M doc/src/sgml/contrib.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/datetime.sgml
M doc/src/sgml/dfunc.sgml
M doc/src/sgml/docguide.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/filelist.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/history.sgml
M doc/src/sgml/info.sgml
M doc/src/sgml/install-windows.sgml
M doc/src/sgml/keywords.sgml
M doc/src/sgml/legal.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/lobj.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/problems.sgml
M doc/src/sgml/ref/abort.sgml
M doc/src/sgml/ref/alter_aggregate.sgml
M doc/src/sgml/ref/alter_conversion.sgml
M doc/src/sgml/ref/alter_database.sgml
M doc/src/sgml/ref/alter_domain.sgml
M doc/src/sgml/ref/alter_function.sgml
M doc/src/sgml/ref/alter_group.sgml
M doc/src/sgml/ref/alter_index.sgml
M doc/src/sgml/ref/alter_language.sgml
M doc/src/sgml/ref/alter_large_object.sgml
M doc/src/sgml/ref/alter_opclass.sgml
M doc/src/sgml/ref/alter_operator.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/alter_schema.sgml
M doc/src/sgml/ref/alter_sequence.sgml
M doc/src/sgml/ref/alter_tablespace.sgml
M doc/src/sgml/ref/alter_tsconfig.sgml
M doc/src/sgml/ref/alter_tsdictionary.sgml
M doc/src/sgml/ref/alter_tsparser.sgml
M doc/src/sgml/ref/alter_tstemplate.sgml
M doc/src/sgml/ref/alter_user.sgml
M doc/src/sgml/ref/alter_view.sgml
M doc/src/sgml/ref/begin.sgml
M doc/src/sgml/ref/close.sgml
M doc/src/sgml/ref/clusterdb.sgml
M doc/src/sgml/ref/comment.sgml
M doc/src/sgml/ref/commit.sgml
M doc/src/sgml/ref/commit_prepared.sgml
M doc/src/sgml/ref/create_aggregate.sgml
M doc/src/sgml/ref/create_conversion.sgml
M doc/src/sgml/ref/create_function.sgml
M doc/src/sgml/ref/create_group.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/ref/create_operator.sgml
M doc/src/sgml/ref/create_opfamily.sgml
M doc/src/sgml/ref/create_role.sgml
M doc/src/sgml/ref/create_sequence.sgml
M doc/src/sgml/ref/create_table_as.sgml
M doc/src/sgml/ref/create_tsconfig.sgml
M doc/src/sgml/ref/create_tsdictionary.sgml
M doc/src/sgml/ref/create_tsparser.sgml
M doc/src/sgml/ref/create_tstemplate.sgml
M doc/src/sgml/ref/create_user.sgml
M doc/src/sgml/ref/createdb.sgml
M doc/src/sgml/ref/createlang.sgml
M doc/src/sgml/ref/createuser.sgml
M doc/src/sgml/ref/drop_cast.sgml
M doc/src/sgml/ref/drop_conversion.sgml
M doc/src/sgml/ref/drop_database.sgml
M doc/src/sgml/ref/drop_domain.sgml
M doc/src/sgml/ref/drop_function.sgml
M doc/src/sgml/ref/drop_index.sgml
M doc/src/sgml/ref/drop_language.sgml
M doc/src/sgml/ref/drop_opclass.sgml
M doc/src/sgml/ref/drop_operator.sgml
M doc/src/sgml/ref/drop_opfamily.sgml
M doc/src/sgml/ref/drop_role.sgml
M doc/src/sgml/ref/drop_rule.sgml
M doc/src/sgml/ref/drop_schema.sgml
M doc/src/sgml/ref/drop_sequence.sgml
M doc/src/sgml/ref/drop_table.sgml
M doc/src/sgml/ref/drop_tablespace.sgml
M doc/src/sgml/ref/drop_trigger.sgml
M doc/src/sgml/ref/drop_tsconfig.sgml
M doc/src/sgml/ref/drop_tsdictionary.sgml
M doc/src/sgml/ref/drop_tsparser.sgml
M doc/src/sgml/ref/drop_tstemplate.sgml
M doc/src/sgml/ref/drop_type.sgml
M doc/src/sgml/ref/drop_view.sgml
M doc/src/sgml/ref/dropdb.sgml
M doc/src/sgml/ref/droplang.sgml
M doc/src/sgml/ref/dropuser.sgml
M doc/src/sgml/ref/ecpg-ref.sgml
M doc/src/sgml/ref/end.sgml
M doc/src/sgml/ref/fetch.sgml
M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/lock.sgml
M doc/src/sgml/ref/move.sgml
M doc/src/sgml/ref/pg_config-ref.sgml
M doc/src/sgml/ref/pg_controldata.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_resetxlog.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/ref/prepare.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/release_savepoint.sgml
M doc/src/sgml/ref/rollback_prepared.sgml
M doc/src/sgml/ref/savepoint.sgml
M doc/src/sgml/ref/security_label.sgml
M doc/src/sgml/ref/set.sgml
M doc/src/sgml/ref/values.sgml
M doc/src/sgml/regress.sgml
M doc/src/sgml/rowtypes.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/sql.sgml
M doc/src/sgml/start.sgml
M doc/src/sgml/stylesheet.css
M doc/src/sgml/stylesheet.dsl
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xindex.sgml
M doc/src/sgml/xoper.sgml
M doc/src/sgml/xtypes.sgml
M src/Makefile.global.in
M src/Makefile.shlib
M src/backend/Makefile
M src/backend/access/gin/README
M src/backend/access/gist/README
M src/backend/access/nbtree/README
M src/backend/access/transam/xlog.c
M src/backend/bootstrap/Makefile
M src/backend/catalog/information_schema.sql
M src/backend/catalog/objectaddress.c
M src/backend/catalog/system_views.sql
M src/backend/commands/comment.c
M src/backend/commands/copy.c
M src/backend/commands/explain.c
M src/backend/commands/tablespace.c
M src/backend/libpq/README.SSL
M src/backend/nodes/README
M src/backend/optimizer/plan/README
M src/backend/parser/scan.l
M src/backend/port/Makefile
M src/backend/port/aix/mkldexport.sh
M src/backend/port/darwin/README
M src/backend/port/tas/sunstudio_sparc.s
M src/backend/snowball/Makefile
M src/backend/storage/buffer/README
M src/backend/storage/freespace/README
M src/backend/storage/ipc/README
M src/backend/storage/lmgr/Makefile
M src/backend/storage/lmgr/README
M src/backend/tsearch/wparser_def.c
M src/backend/utils/Gen_fmgrtab.pl
M src/backend/utils/adt/numeric.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/adt/xml.c
M src/backend/utils/mb/Unicode/UCS_to_EUC_CN.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JP.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_KR.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_TW.pl
M src/backend/utils/mb/Unicode/UCS_to_SHIFT_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_SJIS.pl
M src/backend/utils/mb/Unicode/ucs2utf.pl
M src/backend/utils/misc/Makefile
M src/backend/utils/misc/check_guc
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/postgresql.conf.sample
M src/backend/utils/mmgr/README
M src/bcc32.mak
M src/bin/pg_dump/README
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/psqlscan.l
M src/include/catalog/objectaddress.h
M src/include/pg_config.h.win32
M src/include/storage/s_lock.h
M src/interfaces/ecpg/README.dynSQL
M src/interfaces/ecpg/ecpglib/prepare.c
M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/ecpg/preproc/check_rules.pl
M src/interfaces/ecpg/preproc/ecpg.addons
M src/interfaces/ecpg/preproc/ecpg.header
M src/interfaces/ecpg/preproc/ecpg.tokens
M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/preproc/ecpg.type
M src/interfaces/ecpg/preproc/parse.pl
M src/interfaces/ecpg/preproc/pgc.l
M src/interfaces/ecpg/test/Makefile.regress
M src/interfaces/ecpg/test/compat_informix/describe.pgc
M src/interfaces/ecpg/test/compat_informix/sqlda.pgc
M src/interfaces/ecpg/test/compat_informix/test_informix.pgc
M src/interfaces/ecpg/test/compat_informix/test_informix2.pgc
M src/interfaces/ecpg/test/expected/compat_informix-describe.c
M src/interfaces/ecpg/test/expected/compat_informix-sqlda.c
M src/interfaces/ecpg/test/expected/compat_informix-test_informix.c
M src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
M src/interfaces/ecpg/test/expected/preproc-array_of_struct.c
M src/interfaces/ecpg/test/expected/preproc-cursor.c
M src/interfaces/ecpg/test/expected/preproc-init.c
M src/interfaces/ecpg/test/expected/preproc-outofscope.c
M src/interfaces/ecpg/test/expected/preproc-variable.c
M src/interfaces/ecpg/test/expected/preproc-whenever.c
M src/interfaces/ecpg/test/expected/sql-array.c
M src/interfaces/ecpg/test/expected/sql-code100.c
M src/interfaces/ecpg/test/expected/sql-describe.c
M src/interfaces/ecpg/test/expected/sql-dynalloc.c
M src/interfaces/ecpg/test/expected/sql-dynalloc2.c
M src/interfaces/ecpg/test/expected/sql-fetch.c
M src/interfaces/ecpg/test/expected/sql-sqlda.c
M src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
M src/interfaces/ecpg/test/preproc/array_of_struct.pgc
M src/interfaces/ecpg/test/preproc/cursor.pgc
M src/interfaces/ecpg/test/preproc/init.pgc
M src/interfaces/ecpg/test/preproc/outofscope.pgc
M src/interfaces/ecpg/test/preproc/variable.pgc
M src/interfaces/ecpg/test/preproc/whenever.pgc
M src/interfaces/ecpg/test/sql/Makefile
M src/interfaces/ecpg/test/sql/array.pgc
M src/interfaces/ecpg/test/sql/code100.pgc
M src/interfaces/ecpg/test/sql/describe.pgc
M src/interfaces/ecpg/test/sql/dynalloc.pgc
M src/interfaces/ecpg/test/sql/dynalloc2.pgc
M src/interfaces/ecpg/test/sql/fetch.pgc
M src/interfaces/ecpg/test/sql/sqlda.pgc
M src/interfaces/libpq/bcc32.mak
M src/interfaces/libpq/pg_service.conf.sample
M src/interfaces/libpq/win32.mak
M src/makefiles/Makefile.darwin
M src/makefiles/Makefile.irix
M src/makefiles/pgxs.mk
M src/pl/plperl/GNUmakefile
M src/pl/plperl/SPI.xs
M src/pl/plperl/Util.xs
M src/pl/plperl/expected/plperl.out
M src/pl/plperl/expected/plperl_plperlu.out
M src/pl/plperl/expected/plperl_trigger.out
M src/pl/plperl/plc_trusted.pl
M src/pl/plperl/plperl.c
M src/pl/plperl/sql/plperl.sql
M src/pl/plperl/sql/plperl_plperlu.sql
M src/pl/plperl/sql/plperl_trigger.sql
M src/pl/plperl/text2macro.pl
M src/pl/plpgsql/src/gram.y
M src/pl/plpython/expected/plpython_newline.out
M src/pl/plpython/expected/plpython_schema.out
M src/pl/plpython/expected/plpython_trigger.out
M src/pl/plpython/sql/plpython_newline.sql
M src/pl/plpython/sql/plpython_schema.sql
M src/pl/plpython/sql/plpython_trigger.sql
M src/pl/tcl/expected/pltcl_setup.out
M src/pl/tcl/sql/pltcl_setup.sql
M src/test/examples/Makefile
M src/test/locale/Makefile
M src/test/locale/README
M src/test/locale/de_DE.ISO8859-1/Makefile
M src/test/locale/gr_GR.ISO8859-7/Makefile
M src/test/locale/koi8-r/Makefile
M src/test/locale/koi8-to-win1251/Makefile
M src/test/mb/mbregress.sh
M src/test/performance/runtests.pl
M src/test/regress/GNUmakefile
M src/test/regress/expected/abstime.out
M src/test/regress/expected/aggregates.out
M src/test/regress/expected/alter_table.out
M src/test/regress/expected/arrays.out
M src/test/regress/expected/bit.out
M src/test/regress/expected/bitmapops.out
M src/test/regress/expected/boolean.out
M src/test/regress/expected/box.out
M src/test/regress/expected/char.out
M src/test/regress/expected/char_1.out
M src/test/regress/expected/char_2.out
M src/test/regress/expected/cluster.out
M src/test/regress/expected/copyselect.out
M src/test/regress/expected/create_aggregate.out
M src/test/regress/expected/create_index.out
M src/test/regress/expected/create_misc.out
M src/test/regress/expected/create_operator.out
M src/test/regress/expected/create_table.out
M src/test/regress/expected/create_type.out
M src/test/regress/expected/create_view.out
M src/test/regress/expected/drop_if_exists.out
M src/test/regress/expected/errors.out
M src/test/regress/expected/float4-exp-three-digits.out
M src/test/regress/expected/float4.out
M src/test/regress/expected/float8-exp-three-digits-win32.out
M src/test/regress/expected/float8-small-is-zero.out
M src/test/regress/expected/float8-small-is-zero_1.out
M src/test/regress/expected/float8.out
M src/test/regress/expected/foreign_key.out
M src/test/regress/expected/hash_index.out
M src/test/regress/expected/inet.out
M src/test/regress/expected/inherit.out
M src/test/regress/expected/int2.out
M src/test/regress/expected/int8-exp-three-digits.out
M src/test/regress/expected/int8.out
M src/test/regress/expected/interval.out
M src/test/regress/expected/limit.out
M src/test/regress/expected/numeric.out
M src/test/regress/expected/oid.out
M src/test/regress/expected/oidjoins.out
M src/test/regress/expected/plpgsql.out
M src/test/regress/expected/point.out
M src/test/regress/expected/polygon.out
M src/test/regress/expected/portals.out
M src/test/regress/expected/portals_p2.out
M src/test/regress/expected/rules.out
M src/test/regress/expected/select.out
M src/test/regress/expected/select_implicit.out
M src/test/regress/expected/select_implicit_1.out
M src/test/regress/expected/select_implicit_2.out
M src/test/regress/expected/sequence.out
M src/test/regress/expected/sequence_1.out
M src/test/regress/expected/subselect.out
M src/test/regress/expected/timestamp.out
M src/test/regress/expected/timestamptz.out
M src/test/regress/expected/tinterval.out
M src/test/regress/expected/transactions.out
M src/test/regress/expected/triggers.out
M src/test/regress/expected/truncate.out
M src/test/regress/expected/tsdicts.out
M src/test/regress/expected/tsearch.out
M src/test/regress/expected/type_sanity.out
M src/test/regress/expected/varchar.out
M src/test/regress/expected/varchar_1.out
M src/test/regress/expected/varchar_2.out
M src/test/regress/expected/window.out
M src/test/regress/input/copy.source
M src/test/regress/input/create_function_2.source
M src/test/regress/input/misc.source
M src/test/regress/output/copy.source
M src/test/regress/output/create_function_2.source
M src/test/regress/output/misc.source
M src/test/regress/sql/abstime.sql
M src/test/regress/sql/aggregates.sql
M src/test/regress/sql/alter_table.sql
M src/test/regress/sql/arrays.sql
M src/test/regress/sql/bit.sql
M src/test/regress/sql/bitmapops.sql
M src/test/regress/sql/boolean.sql
M src/test/regress/sql/box.sql
M src/test/regress/sql/char.sql
M src/test/regress/sql/cluster.sql
M src/test/regress/sql/copyselect.sql
M src/test/regress/sql/create_aggregate.sql
M src/test/regress/sql/create_index.sql
M src/test/regress/sql/create_misc.sql
M src/test/regress/sql/create_operator.sql
M src/test/regress/sql/create_table.sql
M src/test/regress/sql/create_type.sql
M src/test/regress/sql/create_view.sql
M src/test/regress/sql/drop.sql
M src/test/regress/sql/drop_if_exists.sql
M src/test/regress/sql/errors.sql
M src/test/regress/sql/float4.sql
M src/test/regress/sql/float8.sql
M src/test/regress/sql/foreign_key.sql
M src/test/regress/sql/hash_index.sql
M src/test/regress/sql/hs_primary_extremes.sql
M src/test/regress/sql/inet.sql
M src/test/regress/sql/inherit.sql
M src/test/regress/sql/int2.sql
M src/test/regress/sql/int8.sql
M src/test/regress/sql/interval.sql
M src/test/regress/sql/limit.sql
M src/test/regress/sql/numeric.sql
M src/test/regress/sql/oid.sql
M src/test/regress/sql/oidjoins.sql
M src/test/regress/sql/plpgsql.sql
M src/test/regress/sql/point.sql
M src/test/regress/sql/polygon.sql
M src/test/regress/sql/portals.sql
M src/test/regress/sql/portals_p2.sql
M src/test/regress/sql/rules.sql
M src/test/regress/sql/select.sql
M src/test/regress/sql/select_implicit.sql
M src/test/regress/sql/sequence.sql
M src/test/regress/sql/subselect.sql
M src/test/regress/sql/timestamp.sql
M src/test/regress/sql/timestamptz.sql
M src/test/regress/sql/tinterval.sql
M src/test/regress/sql/transactions.sql
M src/test/regress/sql/triggers.sql
M src/test/regress/sql/truncate.sql
M src/test/regress/sql/tsdicts.sql
M src/test/regress/sql/tsearch.sql
M src/test/regress/sql/type_sanity.sql
M src/test/regress/sql/varchar.sql
M src/test/regress/sql/window.sql
M src/test/thread/README
M src/tools/RELEASE_CHANGES
M src/tools/backend/README
M src/tools/backend/backend_dirs.html
M src/tools/check_keywords.pl
M src/tools/editors/emacs.samples
M src/tools/entab/Makefile
M src/tools/entab/entab.man
M src/tools/find_static
M src/tools/find_typedef
M src/tools/make_diff/README
M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/README
M src/tools/pginclude/pgrminclude
M src/tools/pgindent/README
M src/tools/pgindent/pgindent
M src/tools/pgtest
M src/tutorial/advanced.source
M src/tutorial/basics.source
M src/tutorial/complex.source
M src/tutorial/funcs.source
M src/tutorial/syscat.source
M src/win32.mak

Centralize some ALTER <whatever> .. SET SCHEMA checks.

commit   : 44475e782f4674d257b9e5c1a3930218a4b4deea    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 22 Nov 2010 19:46:15 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 22 Nov 2010 19:46:15 -0500    

Click here for diff

Any flavor of ALTER <whatever> .. SET SCHEMA fails if (1) the object  
is already in the new schema, (2) either the old or new schema is  
a temp schema, or (3) either the old or new schema is the TOAST schema.  
  
Extraced from a patch by Dimitri Fontaine, with additional hacking by me.  

M src/backend/catalog/dependency.c
M src/backend/catalog/namespace.c
M src/backend/commands/functioncmds.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/include/catalog/dependency.h
M src/include/catalog/namespace.h

Remove GucContext parameter from ParseConfigFile

commit   : 5272d7987506554f6b2bde740e1b4d7e4a0b8608    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 22 Nov 2010 19:00:31 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 22 Nov 2010 19:00:31 -0300    

Click here for diff

M src/backend/utils/misc/guc-file.l

Put back accidentally-deleted quote_literal() regression tests.

commit   : 95dacf85939b213584ae5d50cbddf87eb687e582    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 21 Nov 2010 20:46:54 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 21 Nov 2010 20:46:54 -0500    

Click here for diff

M src/test/regress/expected/text.out
M src/test/regress/sql/text.sql

Bump catversion. Should have done this as part of format(text) patch.

commit   : 506070be34dcdf35fd91c12c6745c745716de1d4    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 21 Nov 2010 06:34:42 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 21 Nov 2010 06:34:42 -0500    

Click here for diff

M src/include/catalog/catversion.h

Add new SQL function, format(text).

commit   : 750487077802861a2accd94164166747ec311fa4    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 00:21:17 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 00:21:17 -0500    

Click here for diff

Currently, three conversion format specifiers are supported: %s for a  
string, %L for an SQL literal, and %I for an SQL identifier.  The latter  
two are deliberately designed not to overlap with what sprintf() already  
supports, in case we want to add more of sprintf()'s functionality here  
later.  
  
Patch by Pavel Stehule, heavily revised by me.  Reviewed by Jeff Janes  
and, in earlier versions, by Itagaki Takahiro and Tom Lane.  

M doc/src/sgml/func.sgml
M doc/src/sgml/plpgsql.sgml
M src/backend/utils/adt/varlena.c
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h
M src/test/regress/expected/text.out
M src/test/regress/sql/text.sql

commit   : 89a368418c56125f79f46a81229e824d519f9718    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 20 Nov 2010 15:07:16 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 20 Nov 2010 15:07:16 -0500    

Click here for diff

We no longer need the terminating zero entry in opfamily[], so get rid of  
it.  Also replace assorted ad-hoc looping logic with simple for and foreach  
constructs.  This code is now noticeably more readable than it was an hour  
ago; credit to Robert for seeing that it could be simplified.  

M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/util/plancat.c
M src/include/nodes/relation.h

Minor cleanup of indxpath.c.

commit   : 99bc012d5198bdfd2aa67336f645dbf887bb0ec9    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 13:57:27 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 13:57:27 -0500    

Click here for diff

Eliminate some superfluous notational complexity around  
match_clause_to_indexcol(), and rip out the DoneMatchingIndexKeys  
crock.  

M src/backend/optimizer/path/indxpath.c

Assorted further cleanup for integer-conversion patch.

commit   : d1d8462d99620cd4384d77b0908d50a49c38eb31    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 20 Nov 2010 12:09:36 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 20 Nov 2010 12:09:36 -0500    

Click here for diff

Avoid depending on LL notation, which is likely to not work in pre-C99  
compilers; don't pointlessly use INT32_MIN/INT64_MIN in code that has  
the numerical value hard-wired into it anyway; remove some gratuitous  
style inconsistencies between pg_ltoa and pg_lltoa; fix int2 test case  
so it actually tests int2.  

M src/backend/utils/adt/numutils.c
M src/test/regress/expected/int2.out
M src/test/regress/sql/int2.sql

Expose quote_literal_cstr() from core.

commit   : 4343c0e546b216ab38a3397a4f0f7476d557b352    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 10:04:48 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 10:04:48 -0500    

Click here for diff

This eliminates the need for inefficient implementions of this  
functionality in both contrib/dblink and contrib/tablefunc, so remove  
them.  The upcoming patch implementing an in-core format() function  
will also require this functionality.  
  
In passing, add some regression tests.  

M contrib/dblink/dblink.c
M contrib/tablefunc/tablefunc.c
M src/backend/utils/adt/quote.c
M src/include/utils/builtins.h
M src/test/regress/expected/text.out
M src/test/regress/sql/text.sql

Update int8-exp-three-digits.out to match new contents of int8.out.

commit   : e8bf683fbee935181e207d7171630194ed01f6a1    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 07:06:52 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 07:06:52 -0500    

Click here for diff

M src/test/regress/expected/int8-exp-three-digits.out

Attempt to fix breakage caused by signed integer conversion patch.

commit   : 815810ed315a6d21203ec75a11f742f5ed655418    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 01:07:04 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 20 Nov 2010 01:07:04 -0500    

Click here for diff

Use INT_MIN rather than INT32_MIN as we do elsewhere in the code, and  
try to work around nonexistence of INT64_MIN if necessary.  Adjust the  
new regression tests to something hopefully saner, per observation by  
Tom Lane.  

M src/backend/utils/adt/numutils.c
M src/test/regress/expected/int2.out
M src/test/regress/expected/int4.out
M src/test/regress/expected/int8.out
M src/test/regress/sql/int2.sql
M src/test/regress/sql/int4.sql
M src/test/regress/sql/int8.sql

Fix leakage of cost_limit when multiple autovacuum workers are active.

commit   : b58c25055ef6d7097618c680f6768689a110d529    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 19 Nov 2010 22:28:20 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 19 Nov 2010 22:28:20 -0500    

Click here for diff

When using default autovacuum_vac_cost_limit, autovac_balance_cost relied  
on VacuumCostLimit to contain the correct global value ... but after the  
first time through in a particular worker process, it didn't, because we'd  
trashed it in previous iterations.  Depending on the state of other autovac  
workers, this could result in a steady reduction of the effective  
cost_limit setting as a particular worker processed more and more tables,  
causing it to go slower and slower.  Spotted by Simon Poole (bug #5759).  
Fix by saving and restoring the GUC variables in the loop in do_autovacuum.  
  
In passing, improve a few comments.  
  
Back-patch to 8.3 ... the cost rebalancing code has been buggy since it was  
put in.  

M src/backend/postmaster/autovacuum.c

Speed up conversion of signed integers to C strings.

commit   : 4fc115b2e981f8c63165ca86a23215380a3fda66    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 19 Nov 2010 22:13:11 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 19 Nov 2010 22:13:11 -0500    

Click here for diff

A hand-coded implementation turns out to be much faster than calling  
printf().  In passing, add a few more regresion tests.  
  
Andres Freund, with assorted, mostly cosmetic changes.  

M src/backend/utils/adt/int8.c
M src/backend/utils/adt/numutils.c
M src/include/utils/builtins.h
M src/test/regress/expected/int2.out
M src/test/regress/expected/int4.out
M src/test/regress/expected/int8.out
M src/test/regress/sql/int2.sql
M src/test/regress/sql/int4.sql
M src/test/regress/sql/int8.sql

Improve relation width estimation for subqueries.

commit   : 0f61d4dd1b4f95832dcd81c9688dac56fd6b5687    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 19 Nov 2010 17:31:50 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 19 Nov 2010 17:31:50 -0500    

Click here for diff

As per the ancient comment for set_rel_width, it really wasn't much good  
for relations that aren't plain tables: it would never find any stats and  
would always fall back on datatype-based estimates, which are often pretty  
silly.  Fix that by copying up width estimates from the subquery planning  
process.  
  
At some point we might want to do this for CTEs too, but that would be a  
significantly more invasive patch because the sub-PlannerInfo is no longer  
accessible by the time it's needed.  I refrained from doing anything about  
that, partly for fear of breaking the unmerged CTE-related patches.  
  
In passing, also generate less bogus width estimates for whole-row Vars.  
  
Per a gripe from Jon Nelson.  

M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/util/plancat.c
M src/include/optimizer/cost.h
M src/include/optimizer/plancat.h

Improve plpgsql's error reporting for no-such-column cases.

commit   : fe24d781612700646bfb3e08925e34c43926f9df    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 17:06:57 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 17:06:57 -0500    

Click here for diff

Given a column reference foo.bar, where there is a composite plpgsql  
variable foo but it doesn't contain a column bar, the pre-9.0 coding would  
immediately throw a "record foo has no field bar" error.  In 9.0 the parser  
hook instead falls through to let the core parser see if it can resolve the  
reference.  If not, you get a complaint about "missing FROM-clause entry  
for table foo", which while in some sense correct isn't terribly helpful.  
Complicate things a bit so that we can throw the old error message if  
neither the core parser nor the hook are able to resolve the column  
reference, while not changing the behavior in any other case.  
Per bug #5757 from Andrey Galkin.  

M src/pl/plpgsql/src/pl_comp.c

Add pg_describe_object function

commit   : 6cc2deb86e9183262493a6537700ee305fb3e096    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 18 Nov 2010 16:33:48 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 18 Nov 2010 16:33:48 -0300    

Click here for diff

This function is useful to obtain textual descriptions of objects as  
stored in pg_depend.  

M doc/src/sgml/func.sgml
M src/backend/catalog/dependency.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h

Dept of second thoughts: don't try to push LIMIT below a SRF.

commit   : 48c348f86ce09c668af7cf271757c3f156f28344    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 11:53:49 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 11:53:49 -0500    

Click here for diff

If we have Limit->Result->Sort, the Result might be projecting a tlist  
that contains a set-returning function.  If so, it's possible for the  
SRF to sometimes return zero rows, which means we could need to fetch  
more than N rows from the Sort in order to satisfy LIMIT N.  
So top-N sorting cannot be used in this scenario.  

M src/backend/executor/nodeLimit.c

Minor corrections to dummy_seclabel documentation.

commit   : 1fc2d60d8c9d8096373e94a8f8c9b28d2082b7d3    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 18 Nov 2010 10:28:00 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 18 Nov 2010 10:28:00 -0500    

Click here for diff

Problems noted by Thom Brown.  

M doc/src/sgml/dummy-seclabel.sgml

Remove unused parameter. Patch by Shigeru Hanada.

commit   : ecf70b916b480ce26c710942f9111115d9e63e88    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Nov 2010 10:04:02 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 18 Nov 2010 10:04:02 +0200    

Click here for diff

M src/backend/commands/vacuum.c

Further fallout from the MergeAppend patch.

commit   : 6fbc323c8042303a737028f9da7616896bccc517    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 00:30:10 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 18 Nov 2010 00:30:10 -0500    

Click here for diff

Fix things so that top-N sorting can be used in child Sort nodes of a  
MergeAppend node, when there is a LIMIT and no intervening joins or  
grouping.  Actually doing this on the executor side isn't too bad,  
but it's a bit messier to get the planner to cost it properly.  
Per gripe from Robert Haas.  
  
In passing, fix an oversight in the original top-N-sorting patch:  
query_planner should not assume that a LIMIT can be used to make an  
explicit sort cheaper when there will be grouping or aggregation in  
between.  Possibly this should be back-patched, but I'm not sure the  
mistake is serious enough to be a real problem in practice.  

M src/backend/executor/nodeLimit.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/util/pathnode.c
M src/include/nodes/relation.h

Document the dummy_seclabel contrib module.

commit   : 45768d10e3abd513b4c959efeb5907798f2fac3f    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 17 Nov 2010 20:46:19 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 17 Nov 2010 20:46:19 -0500    

Click here for diff

KaiGai Kohei, with editing and markup fixes by me.  

M doc/src/sgml/contrib.sgml
A doc/src/sgml/dummy-seclabel.sgml
M doc/src/sgml/filelist.sgml

Make TRUNCATE ... RESTART IDENTITY restart sequences transactionally.

commit   : 511e902b51c2a1c0d012426ceb6486b1202120f3    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 17 Nov 2010 16:42:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 17 Nov 2010 16:42:18 -0500    

Click here for diff

In the previous coding, we simply issued ALTER SEQUENCE RESTART commands,  
which do not roll back on error.  This meant that an error between  
truncating and committing left the sequences out of sync with the table  
contents, with potentially bad consequences as were noted in a Warning on  
the TRUNCATE man page.  
  
To fix, create a new storage file (relfilenode) for a sequence that is to  
be reset due to RESTART IDENTITY.  If the transaction aborts, we'll  
automatically revert to the old storage file.  This acts just like a  
rewriting ALTER TABLE operation.  A penalty is that we have to take  
exclusive lock on the sequence, but since we've already got exclusive lock  
on its owning table, that seems unlikely to be much of a problem.  
  
The interaction of this with usual nontransactional behaviors of sequence  
operations is a bit weird, but it's hard to see what would be completely  
consistent.  Our choice is to discard cached-but-unissued sequence values  
both when the RESTART is executed, and at rollback if any; but to not touch  
the currval() state either time.  
  
In passing, move the sequence reset operations to happen before not after  
any AFTER TRUNCATE triggers are fired.  The previous ordering was not  
logically sensible, but was forced by the need to minimize inconsistency  
if the triggers caused an error.  Transactional rollback is a much better  
solution to that.  
  
Patch by Steve Singer, rather heavily adjusted by me.  

M doc/src/sgml/ref/truncate.sgml
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/utils/cache/relcache.c
M src/include/commands/sequence.h
M src/test/regress/expected/truncate.out
M src/test/regress/sql/truncate.sql

Additional fixes for parallel make

commit   : cfad144f894b306fc300f5d03ea52a32d4624db0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 17 Nov 2010 08:08:41 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 17 Nov 2010 08:08:41 +0200    

Click here for diff

Add some additional dependencies to constrain the build order to prevent  
parallel make from failing.  In the case of src/Makefile, this is likely to be  
too complicated to be worth maintaining, so just add .NOTPARALLEL to get the  
old for-loop-like behavior.  
  
More fine-tuning might be necessary for some platforms or configurations.  

M src/Makefile
M src/interfaces/Makefile
M src/interfaces/ecpg/Makefile

Require VALUE keyword when extending an enum type. Based on a patch from Alvaro Herrera.

commit   : b7fcf68e8632e757a50352c9567bb630ed285201    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 16 Nov 2010 22:18:33 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 16 Nov 2010 22:18:33 -0500    

Click here for diff

M doc/src/sgml/ref/alter_type.sgml
M src/backend/parser/gram.y
M src/test/regress/expected/enum.out
M src/test/regress/sql/enum.sql

Send paramHandle to subprocesses as 64-bit on Win64

commit   : 4acf99b2f3bb665d2febef183ede5f08b8f7545d    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 16 Nov 2010 12:40:56 +0100    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 16 Nov 2010 12:40:56 +0100    

Click here for diff

The handle to the shared memory segment containing startup  
parameters was sent as 32-bit even on 64-bit systems. Since  
HANDLEs appear to be allocated sequentially this shouldn't  
be a problem until we reach 2^32 open handles in the postmaster,  
but a 64-bit value should be sent across as 64-bit, and not  
zero out the top 32 bits.  
  
Noted by Tom Lane.  

M src/backend/postmaster/postmaster.c

The GiST scan algorithm uses LSNs to detect concurrent pages splits, but temporary indexes are not WAL-logged. We used a constant LSN for temporary indexes, on the assumption that we don't need to worry about concurrent page splits in temporary indexes because they're only visible to the current session. But that assumption is wrong, it's possible to insert rows and split pages in the same session, while a scan is in progress. For example, by opening a cursor and fetching some rows, and INSERTing new rows before fetching some more.

commit   : 2edc5cd493ce3d7834026970e9d3cd00e203f51a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 16 Nov 2010 11:02:11 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 16 Nov 2010 11:02:11 +0200    

Click here for diff

Fix by generating fake increasing LSNs, used in place of real LSNs in  
temporary GiST indexes.  

M src/backend/access/gist/gist.c
M src/backend/access/gist/gistutil.c
M src/backend/access/gist/gistvacuum.c
M src/include/access/gist_private.h

Fix aboriginal mistake in plpython's set-returning-function support.

commit   : add0ea88e7722b48d1f3a7c38e3cfd7f1e854674    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 15 Nov 2010 14:26:55 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 15 Nov 2010 14:26:55 -0500    

Click here for diff

We must stay in the function's SPI context until done calling the iterator  
that returns the set result.  Otherwise, any attempt to invoke SPI features  
in the python code called by the iterator will malfunction.  Diagnosis and  
patch by Jan Urbanski, per bug report from Jean-Baptiste Quenot.  
  
Back-patch to 8.2; there was no support for SRFs in previous versions of  
plpython.  

M src/pl/plpython/expected/plpython_setof.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_setof.sql

Add new buffers_backend_fsync field to pg_stat_bgwriter.

commit   : 3134d8863e8473e3ed791e27d484f9e548220411    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 12:42:59 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 12:42:59 -0500    

Click here for diff

This new field counts the number of times that a backend which writes a  
buffer out to the OS must also fsync() it.  This happens when the  
bgwriter fsync request queue is full, and is generally detrimental to  
performance, so it's good to know when it's happening.  Along the way,  
log a new message at level DEBUG1 whenever we fail to hand off an fsync,  
so that the problem can also be seen in examination of log files  
(if the logging level is cranked up high enough).  
  
Greg Smith, with minor tweaks by me.  

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/bgwriter.c
M src/backend/postmaster/pgstat.c
M src/backend/storage/smgr/md.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/pgstat.h
M src/test/regress/expected/rules.out

Remove outdated comments from the regression test files.

commit   : 8d70ed84ba577abf9e985518024fb92e2081dac9    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 10:55:43 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 10:55:43 -0500    

Click here for diff

Since 2004, int2 and int4 operators do detect overflow; this was fixed by  
commit 4171bb869f234281a13bb862d3b1e577bf336242.  
  
Extracted from a larger patch by Andres Freund.  

M src/test/regress/expected/int2.out
M src/test/regress/expected/int4.out
M src/test/regress/sql/int2.sql
M src/test/regress/sql/int4.sql

Fix copy-and-pasteo a little more completely.

commit   : 20cf8ae478c2712d4c211b49868e334357f05356    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 10:10:58 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 15 Nov 2010 10:10:58 -0500    

Click here for diff

copydir.c is no longer in src/port  

M src/include/storage/copydir.h

Fix copy-and-pasteo.

commit   : ae4b17edeebc6670ba222a8cfbb1658d02203d29    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 15 Nov 2010 11:52:56 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 15 Nov 2010 11:52:56 -0300    

Click here for diff

M src/include/storage/copydir.h

commit   : 52010027efc8757fdd830a4d0113763a501259bc    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 15 Nov 2010 09:30:13 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 15 Nov 2010 09:30:13 +0000    

Click here for diff

M src/backend/storage/ipc/standby.c

Adjust comments about what's needed to avoid make 3.80 bug.

commit   : 357edc9a9952582c510cff1b08ebc5fd8df81a3b    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 15 Nov 2010 01:00:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 15 Nov 2010 01:00:48 -0500    

Click here for diff

... based on further tracing through that code.  

M src/Makefile.global.in

Correct poor grammar in comment.

commit   : 5ccbc3d802d1690b78f887b2310d2a7258eaae94    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 23:10:45 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 23:10:45 -0500    

Click here for diff

M src/backend/utils/cache/relcache.c

Fix bug in cube picksplit algorithm.

commit   : 4fa0a23c70cc346011a3dd8ea902f8d1668644b0    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 21:27:34 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 21:27:34 -0500    

Click here for diff

Alexander Korotkov  

M contrib/cube/cube.c

Cleanup various comparisons with the constant "true".

commit   : 5aa446c961a6fdf15ff9c398751efd6ecff0c64a    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 21:03:48 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 14 Nov 2010 21:03:48 -0500    

Click here for diff

Itagaki Takahiro, with slight modifications.  

M contrib/pg_upgrade/pg_upgrade.c
M src/backend/access/gin/ginget.c
M src/backend/access/gist/gistproc.c
M src/backend/commands/sequence.c
M src/backend/tsearch/regis.c
M src/backend/utils/adt/geo_ops.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/adt/tsvector_op.c
M src/bin/psql/print.c
M src/interfaces/ecpg/ecpglib/connect.c
M src/interfaces/ecpg/preproc/ecpg.addons

commit   : 3892a2d8619ee5623fc3ebee775538fdea1f529e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 14 Nov 2010 15:57:37 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 14 Nov 2010 15:57:37 -0500    

Click here for diff

We must not return any "okay to proceed" result code without having checked  
for too many children, else we might fail later on when trying to add the  
new child to one of the per-child state arrays.  It's not clear whether  
this oversight explains Stefan Kaltenbrunner's recent report, but it could  
certainly produce a similar symptom.  
  
Back-patch to 8.4; the logic was not broken before that.  

M src/backend/postmaster/postmaster.c

Work around make 3.80 bug with long expansions of $(eval).

commit   : 1bd201214965b3eba23bee2c4ce4c14accde170f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 14 Nov 2010 12:50:06 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 14 Nov 2010 12:50:06 -0500    

Click here for diff

3.80 breaks if the expansion of $(eval) is long enough to require expansion  
of its internal variable_buffer.  For the purposes of $(recurse) that means  
it'll work so long as no single evaluation of _create_recursive_target  
produces more than 195 bytes.  We can manage that by looping over  
subdirectories outside the call instead of complicating the generated rule.  
This coding is simpler and more readable anyway.  
  
Or at least, this works for me.  We'll see if the buildfarm likes it.  

M src/Makefile.global.in

Add missing outfuncs.c support for struct InhRelation.

commit   : 2138c701a397885d4f360c90bf8b95d0d98aecd0    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 13 Nov 2010 00:34:45 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 13 Nov 2010 00:34:45 -0500    

Click here for diff

This is needed to support debug_print_parse, per report from Jon Nelson.  
Cursory testing via the regression tests suggests we aren't missing  
anything else.  

M src/backend/nodes/outfuncs.c

Attempt to fix MSVC builds broken by parallel make changes.

commit   : 52e2c12288cdcdcaa46a18937cc051d3322bbc99    
  
author   : Andrew Dunstan <[email protected]>    
date     : Fri, 12 Nov 2010 22:55:15 -0500    
  
committer: Andrew Dunstan <[email protected]>    
date     : Fri, 12 Nov 2010 22:55:15 -0500    

Click here for diff

M src/tools/msvc/Mkvcbuild.pm

Move copydir() prototype into its own header file.

commit   : 11e482c350c431fb2f51c6ceb847e5e31ea38911    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 12 Nov 2010 16:39:53 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 12 Nov 2010 16:39:53 -0500    

Click here for diff

Having this in src/include/port.h makes no sense, now that copydir.c lives  
in src/backend/strorage rather than src/port.  Along the way, remove an  
obsolete comment from contrib/pg_upgrade that makes reference to the old  
location.  

M contrib/pg_upgrade/pg_upgrade.c
M src/backend/commands/dbcommands.c
M src/backend/storage/file/copydir.c
M src/include/port.h
A src/include/storage/copydir.h

Fix old oversight in const-simplification of COALESCE() expressions.

commit   : d7304244e26b92d533f7e44f0afbcf1ff2f46286    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 12 Nov 2010 15:14:51 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 12 Nov 2010 15:14:51 -0500    

Click here for diff

Once we have found a non-null constant argument, there is no need to  
examine additional arguments of the COALESCE.  The previous coding got it  
right only if the constant was in the first argument position; otherwise  
it tried to simplify following arguments too, leading to unexpected  
behavior like this:  
  
regression=# select coalesce(f1, 42, 1/0) from int4_tbl;  
ERROR:  division by zero  
  
It's a minor corner case, but a bug is a bug, so back-patch all the way.  

M src/backend/optimizer/util/clauses.c

Improved parallel make support

commit   : 19e231bbdaef792dce22100012b504e2fb72f971    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 12 Nov 2010 22:15:16 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 12 Nov 2010 22:15:16 +0200    

Click here for diff

Replace for loops in makefiles with proper dependencies.  Parallel  
make can now span across directories.  Also, make -k and make -q work  
properly.  
  
GNU make 3.80 or newer is now required.  

M GNUmakefile.in
M contrib/Makefile
M contrib/dblink/Makefile
M doc/src/sgml/installation.sgml
M src/Makefile
M src/Makefile.global.in
M src/Makefile.shlib
M src/backend/Makefile
M src/backend/common.mk
M src/backend/replication/libpqwalreceiver/Makefile
M src/backend/utils/mb/conversion_procs/Makefile
M src/bin/Makefile
M src/bin/initdb/Makefile
M src/bin/pg_config/Makefile
M src/bin/pg_controldata/Makefile
M src/bin/pg_ctl/Makefile
M src/bin/pg_dump/Makefile
M src/bin/pg_resetxlog/Makefile
M src/bin/psql/Makefile
M src/bin/scripts/Makefile
M src/interfaces/Makefile
M src/interfaces/ecpg/Makefile
M src/interfaces/ecpg/compatlib/Makefile
M src/interfaces/ecpg/ecpglib/Makefile
M src/interfaces/ecpg/preproc/Makefile
M src/pl/Makefile
M src/test/regress/GNUmakefile
M src/timezone/Makefile
M src/tools/findoidjoins/Makefile
M src/tools/fsync/Makefile

docs -> documentation

commit   : d6754f67b08ad6a05640fc5d9d97c6f225512ea0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 12 Nov 2010 21:25:57 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 12 Nov 2010 21:25:57 +0200    

Click here for diff

M doc/src/sgml/regress.sgml

Add missing support for removing foreign data wrapper / server privileges belonging to a user at DROP OWNED BY. Foreign data wrappers and servers don't do anything useful yet, which is why no-one has noticed, but since we have them, seems prudent to fix this. Per report from Chetan Suttraway. Backpatch to 9.0, 8.4 has the same problem but this patch didn't apply there so I'm not going to bother.

commit   : e356743f3ed45c36dcc4d0dbf6c1e8751b3d70b5    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 12 Nov 2010 15:19:14 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 12 Nov 2010 15:19:14 +0200    

Click here for diff

M src/backend/catalog/aclchk.c

Fix bug introduced by the recent patch to check that the checkpoint redo location read from backup label file can be found: wasShutdown was set incorrectly when a backup label file was found.

commit   : 542bdb2146327972545630d0a428e1c9367266cb    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 11 Nov 2010 19:21:49 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 11 Nov 2010 19:21:49 +0200    

Click here for diff

Jeff Davis, with a little tweaking by me.  

M src/backend/access/transam/xlog.c

Fix line_construct_pm() for the case of "infinite" (DBL_MAX) slope.

commit   : b0f2d681bdfd6a5b3e90d092f9d924f943b4fc5f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 10 Nov 2010 16:51:39 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 10 Nov 2010 16:51:39 -0500    

Click here for diff

This code was just plain wrong: what you got was not a line through the  
given point but a line almost indistinguishable from the Y-axis, although  
not truly vertical.  The only caller that tries to use this function with  
m == DBL_MAX is dist_ps_internal for the case where the lseg is horizontal;  
it would end up producing the distance from the given point to the place  
where the lseg's line crosses the Y-axis.  That function is used by other  
operators too, so there are several operators that could compute wrong  
distances from a line segment to something else.  Per bug #5745 from  
jindiax.  
  
Back-patch to all supported branches.  

M src/backend/utils/adt/geo_ops.c

Mention that pg_upgrade requires compatible 32/64-bit binaries.

commit   : 8f742d1cdab987ba4624ad0c6aa008ced15cd87c    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 10 Nov 2010 14:08:30 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 10 Nov 2010 14:08:30 +0000    

Click here for diff

M doc/src/sgml/pgupgrade.sgml

Add monitoring function pg_last_xact_replay_timestamp.

commit   : 7ba6e4f0e08bd7bdf4d12974ac1e37fb0459c97c    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 9 Nov 2010 22:39:43 -0500    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 9 Nov 2010 22:39:43 -0500    

Click here for diff

Fujii Masao, with a little wordsmithing by me.  

M doc/src/sgml/func.sgml
M src/backend/access/transam/xlog.c
M src/include/access/xlog_internal.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h

Don't use __declspec (dllimport) for PGDLLEXPORT to reduce warnings by gcc version 4 on mingw and cygwin. We don't use dllexport here because dllexport and dllwrap don't work well together.

commit   : 844ed5dc97d4374a4056f0f1cc3b0b78347c74c5    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 10 Nov 2010 12:17:43 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 10 Nov 2010 12:17:43 +0900    

Click here for diff

M src/include/port/cygwin.h
M src/include/port/win32.h

Merge docs for CREATE CONSTRAINT TRIGGER and CREATE TRIGGER

commit   : b47953f9c69d48a9261bd643e3170017b93f6337    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 9 Nov 2010 16:52:46 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 9 Nov 2010 16:52:46 -0300    

Click here for diff

M doc/src/sgml/ref/allfiles.sgml
D doc/src/sgml/ref/create_constraint.sgml
M doc/src/sgml/ref/create_trigger.sgml
M doc/src/sgml/reference.sgml

Improve pg_ctl's man page.

commit   : 0de92fd13cc436c76fbbd4759c94e2d3623a6bf1    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 9 Nov 2010 14:05:11 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 9 Nov 2010 14:05:11 -0500    

Click here for diff

Explicitly document that the -o options of pg_ctl init mode are meant  
for initdb, not postgres (Euler Taveira de Oliveira).  Assorted other  
copy-editing (Tom).  

M doc/src/sgml/ref/pg_ctl-ref.sgml

Repair memory leakage while ANALYZE-ing complex index expressions.

commit   : 80fb2c1f4037d10cc259aee95558bca4a5fe4c30    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 9 Nov 2010 11:28:18 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 9 Nov 2010 11:28:18 -0500    

Click here for diff

The general design of memory management in Postgres is that intermediate  
results computed by an expression are not freed until the end of the tuple  
cycle.  For expression indexes, ANALYZE has to re-evaluate each expression  
for each of its sample rows, and it wasn't bothering to free intermediate  
results until the end of processing of that index.  This could lead to very  
substantial leakage if the intermediate results were large, as in a recent  
example from Jakub Ouhrabka.  Fix by doing ResetExprContext for each sample  
row.  This necessitates adding a datumCopy step to ensure that the final  
expression value isn't recycled too.  Some quick testing suggests that this  
change adds at worst about 10% to the time needed to analyze a table with  
an expression index; which is annoying, but seems a tolerable price to pay  
to avoid unexpected out-of-memory problems.  
  
Back-patch to all supported branches.  

M src/backend/commands/analyze.c

In rewriteheap.c (used by VACUUM FULL and CLUSTER), calculate the tuple length stored in the line pointer the same way it's calculated in the normal heap_insert() codepath. As noted by Jeff Davis, the length stored by raw_heap_insert() included padding but the one stored by the normal codepath did not. While the mismatch seems to be harmless, inconsistency isn't good, and the normal codepath has received a lot more testing over the years.

commit   : 000efc3dfdf425136ef9564e86d1800cbe584e75    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 9 Nov 2010 17:40:09 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 9 Nov 2010 17:40:09 +0200    

Click here for diff

Backpatch to 8.3 where the heap rewrite code was introduced.  

M src/backend/access/heap/rewriteheap.c

plpython has plpy.Error instead of plpy.ERROR

commit   : 73bc5218df0330a4beb737f497fa8d7b337c9f90    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 9 Nov 2010 11:00:56 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 9 Nov 2010 11:00:56 -0300    

Click here for diff

Author: Marti Raudsepp <[email protected]>  

M doc/src/sgml/plpython.sgml

Fix error handling in temp-file deletion with log_temp_files active.

commit   : 54428dbe90cf11d17439acad9b8dcf375a14819d    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 8 Nov 2010 22:14:48 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 8 Nov 2010 22:14:48 -0500    

Click here for diff

The original coding in FileClose() reset the file-is-temp flag before  
unlinking the file, so that if control came back through due to an error,  
it wouldn't try to unlink the file twice.  This was correct when written,  
but when the log_temp_files feature was added, the logging action was put  
in between those two steps.  An error occurring during the logging action  
--- such as a query cancel --- would result in the unlink not getting done  
at all, as in recent report from Michael Glaesemann.  
  
To fix this, make sure that we do both the stat and the unlink before doing  
anything that could conceivably CHECK_FOR_INTERRUPTS.  There is a judgment  
call here, which is which log message to emit first: if you can see only  
one, which should it be?  I chose to log unlink failure at the risk of  
losing the log_temp_files log message --- after all, if the unlink does  
fail, the temp file is still there for you to see.  
  
Back-patch to all versions that have log_temp_files.  The code was OK  
before that.  

M src/backend/storage/file/fd.c

Fix permanent memory leak in autovacuum launcher

commit   : 854ae8c3a6bab2053f8bdbc453787be878ce8c81    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 8 Nov 2010 18:35:42 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 8 Nov 2010 18:35:42 -0300    

Click here for diff

get_database_list was uselessly allocating its output data, along some  
created along the way, in a permanent memory context.  This didn't  
matter when autovacuum was a single, short-lived process, but now that  
the launcher is permanent, it shows up as a permanent leak.  
  
To fix, make get_database list allocate its output data in the caller's  
context, which is in charge of freeing it when appropriate; and the  
memory leaked by heap_beginscan et al is allocated in a throwaway  
transaction context.  

M src/backend/postmaster/autovacuum.c

Use appendrel planning logic for top-level UNION ALL structures.

commit   : 947d0c862c895618a874344322e7b07c9df05cb2    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 8 Nov 2010 15:15:02 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 8 Nov 2010 15:15:02 -0500    

Click here for diff

Formerly, we could convert a UNION ALL structure inside a subquery-in-FROM  
into an appendrel, as a side effect of pulling up the subquery into its  
parent; but top-level UNION ALL always caused use of plan_set_operations().  
That didn't matter too much because you got an Append-based plan either  
way.  However, now that the appendrel code can do things with MergeAppend,  
it's worthwhile to hack up the top-level case so it also uses appendrels.  
  
This is a bit of a stopgap; but going much further than this will require  
a major rewrite of the planner's set-operations support, which I'm not  
prepared to undertake now.  For the moment let's grab the low-hanging fruit.  

M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepjointree.c
M src/include/optimizer/prep.h

Prevent invoking I/O conversion casts via functional/attribute notation.

commit   : 543d22fc7423747afd59fe7214f2ddf6259efc62    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 7 Nov 2010 13:03:19 -0500    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 7 Nov 2010 13:03:19 -0500    

Click here for diff

PG 8.4 added a built-in feature for casting pretty much any data type to  
string types (text, varchar, etc).  We allowed this to work in any of the  
historically-allowed syntaxes: CAST(x AS text), x::text, text(x), or  
x.text.  However, multiple complaints have shown that it's too easy to  
invoke such casts unintentionally in the latter two styles, particularly  
field selection.  To cure the problem with the narrowest possible change  
of behavior, disallow use of I/O conversion casts from composite types to  
string types via functional/attribute syntax.  The new functionality is  
still available via cast syntax.  
  
In passing, document the equivalence of functional and attribute syntax  
in a more visible place.  

M doc/src/sgml/ref/create_cast.sgml
M doc/src/sgml/syntax.sgml
M doc/src/sgml/xfunc.sgml
M src/backend/parser/parse_func.c
M src/test/regress/expected/rowtypes.out
M src/test/regress/sql/rowtypes.sql

Implement an "S" option for psql's \dn command.

commit   : e43fb604d6db229d70d3101aa53348cc16a5473a    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 21:41:14 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 21:41:14 -0400    

Click here for diff

\dn without "S" now hides all pg_XXX schemas as well as information_schema.  
Thus, in a bare database you'll only see "public".  ("public" is considered  
a user schema, not a system schema, mainly because it's droppable.)  
Per discussion back in late September.  

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h

Add support for detecting register-stack overrun on IA64.

commit   : d7a2ce4905da7d812407b6354f038aac17e97024    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 19:36:29 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 19:36:29 -0400    

Click here for diff

Per recent investigation, the register stack can grow faster than the  
regular stack depending on compiler and choice of options.  To avoid  
crashes we must check both stacks in check_stack_depth().  
  
Since this is poorly-tested code, committing only to HEAD for the  
moment ... but we might want to consider back-patching later.  

M src/backend/tcop/postgres.c

Make get_stack_depth_rlimit() handle RLIM_INFINITY more sanely.

commit   : dd1c781903811416db4e03383a4cb0bfc8cfac40    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 16:50:18 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 6 Nov 2010 16:50:18 -0400    

Click here for diff

Rather than considering this result as meaning "unknown", report LONG_MAX.  
This won't change what superusers can set max_stack_depth to, but it will  
cause InitializeGUCOptions() to set the built-in default to 2MB not 100kB.  
The latter seems like a fairly unreasonable interpretation of "infinity".  
Per my investigation of odd buildfarm results as well as an old complaint  
from Heikki.  
  
Since this should persuade all the buildfarm animals to use a reasonable  
stack depth setting during "make check", revert previous patch that dumbed  
down a recursive regression test to only 5 levels.  

M src/backend/tcop/postgres.c
M src/backend/utils/misc/guc.c
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Include the current value of max_stack_depth in stack depth complaints.

commit   : 6736916f5f5a5f340aa20d4b27540764b5646585    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 17:15:38 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 17:15:38 -0400    

Click here for diff

I'm mainly interested in finding out what it is on buildfarm machines,  
but including the active value in the message seems like good practice  
in any case.  Add the info to the HINT, not the ERROR string, so as not  
to change the regression tests' expected output.  

M src/backend/tcop/postgres.c

Allow moddatetime's target column to be of type timestamptz.

commit   : 5e8b7b0b73b6d0aba4a5a05704601dd031ad0a49    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 16:34:47 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 16:34:47 -0400    

Click here for diff

Dirk Heinrichs  

M contrib/spi/moddatetime.c
M doc/src/sgml/contrib-spi.sgml

Use appendStringInfoString() where appropriate in elog.c.

commit   : 09211659d9d8fd62f9de09703c90ed4f072c4a47    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 15:28:35 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 15:28:35 -0400    

Click here for diff

The nominally equivalent call appendStringInfo(buf, "%s", str) can be  
significantly slower when str is large.  In particular, the former usage in  
EVALUATE_MESSAGE led to O(N^2) behavior when collecting a large number of  
context lines, as I found out while testing recursive functions.  The other  
changes are just neatnik-ism and seem unlikely to save anything meaningful,  
but a cycle shaved is a cycle earned.  

M src/backend/utils/error/elog.c

Reimplement planner's handling of MIN/MAX aggregate optimization.

commit   : 034967bdcbb0c7be61d0500955226e1234ec5f04    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 12:01:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 4 Nov 2010 12:01:17 -0400    

Click here for diff

Per my recent proposal, get rid of all the direct inspection of indexes  
and manual generation of paths in planagg.c.  Instead, set up  
EquivalenceClasses for the aggregate argument expressions, and let the  
regular path generation logic deal with creating paths that can satisfy  
those sort orders.  This makes planagg.c a bit more visible to the rest  
of the planner than it was originally, but the approach is basically a lot  
cleaner than before.  A major advantage of doing it this way is that we get  
MIN/MAX optimization on inheritance trees (using MergeAppend of indexscans)  
practically for free, whereas in the old way we'd have had to add a whole  
lot more duplicative logic.  
  
One small disadvantage of this approach is that MIN/MAX aggregates can no  
longer exploit partial indexes having an "x IS NOT NULL" predicate, unless  
that restriction or something that implies it is specified in the query.  
The previous implementation was able to use the added "x IS NOT NULL"  
condition as an extra predicate proof condition, but in this version we  
rely entirely on indexes that are considered usable by the main planning  
process.  That seems a fair tradeoff for the simplicity and functionality  
gained.  

M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/var.c
M src/backend/rewrite/rewriteManip.c
M src/include/nodes/nodes.h
M src/include/nodes/relation.h
M src/include/optimizer/paths.h
M src/include/optimizer/planmain.h
M src/test/regress/expected/aggregates.out
M src/test/regress/sql/aggregates.sql

Reduce recursion depth in recently-added regression test.

commit   : 0abc8fdd4df3dd0524cd9fd8e2d761cf932dd80f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 3 Nov 2010 13:41:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 3 Nov 2010 13:41:46 -0400    

Click here for diff

Some buildfarm members fail the test with the original depth of 10 levels,  
apparently because they are running at the minimum max_stack_depth setting  
of 100kB and using ~ 10k per recursion level.  While it might be  
interesting to try to figure out why they're eating so much stack, it isn't  
likely that any fix for that would be back-patchable.  So just change the  
test to recurse only 5 levels.  The extra levels don't prove anything  
correctness-wise anyway.  

M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Use only one hash entry for all instances of a pltcl trigger function.

commit   : 70a0160b07b66dc7fa1555c489330ea8fb58f8fe    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 3 Nov 2010 12:26:55 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 3 Nov 2010 12:26:55 -0400    

Click here for diff

Like plperl and unlike plpgsql, there isn't any cached state that could  
depend on exactly which relation the trigger is being fired for.  So we  
can use just one hash entry for all relations, which might save a little  
something.  
  
Alex Hunsaker  

M src/pl/tcl/pltcl.c

Print a make warning when using GNU make older than 3.80

commit   : dd21f0b047078ae724c0de4bc87b175154a83707    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 3 Nov 2010 17:30:59 +0200    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 3 Nov 2010 17:30:59 +0200    

Click here for diff

A proposed patch will require GNU make 3.80 or newer.  We will let this patch  
run for a while to see how much damage that would do to the buildfarm.  

M GNUmakefile.in

Fix adjust_semi_join to be more cautious about clauseless joins.

commit   : 61d6dd0c03eb4da654f435097cd0bf1da11c3272    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 18:45:36 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 18:45:36 -0400    

Click here for diff

It was reporting that these were fully indexed (hence cheap), when of  
course they're the exact opposite of that.  I'm not certain if the case  
would arise in practice, since a clauseless semijoin is hard to produce  
in SQL, but if it did happen we'd make some dumb decisions.  

M src/backend/optimizer/path/costsize.c

Fix buffer overrun in pg_upgrade.

commit   : 71baff1786e0c50b514745c64c4b0947b64bf9d0    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 17:31:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 17:31:41 -0400    

Click here for diff

Problem reported, and cause identified, by Hernan Gonzalez.  

M contrib/pg_upgrade/controldata.c

Ensure an index that uses a whole-row Var still depends on its table.

commit   : 9f376e146b2f1fe1bc4d07380f2a047d5c375581    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 17:15:07 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 2 Nov 2010 17:15:07 -0400    

Click here for diff

We failed to record any dependency on the underlying table for an index  
declared like "create index i on t (foo(t.*))".  This would create trouble  
if the table were dropped without previously dropping the index.  To fix,  
simplify some overly-cute code in index_create(), accepting the possibility  
that sometimes the whole-table dependency will be redundant.  Also document  
this hazard in dependency.c.  Per report from Kevin Grittner.  
  
In passing, prevent a core dump in pg_get_indexdef() if the index's table  
can't be found.  I came across this while experimenting with Kevin's  
example.  Not sure it's a real issue when the catalogs aren't corrupt, but  
might as well be cautious.  
  
Back-patch to all supported versions.  

M src/backend/catalog/dependency.c
M src/backend/catalog/index.c
M src/backend/utils/adt/ruleutils.c

Some cleanup in ecpg code:

commit   : 35d5d962e1777560baf6f5edec906a907a853c9a    
  
author   : Michael Meskes <[email protected]>    
date     : Tue, 2 Nov 2010 18:12:01 +0100    
  
committer: Michael Meskes <[email protected]>    
date     : Tue, 2 Nov 2010 18:12:01 +0100    

Click here for diff

Use bool as type for booleans instead of int.  
Do not implicitely cast size_t to int.  
Make the compiler stop complaining about unused variables by adding an empty statement.  

M src/interfaces/ecpg/compatlib/informix.c
M src/interfaces/ecpg/ecpglib/connect.c
M src/interfaces/ecpg/ecpglib/extern.h
M src/interfaces/ecpg/ecpglib/memory.c
M src/interfaces/ecpg/ecpglib/prepare.c
M src/interfaces/ecpg/preproc/ecpg.c
M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/preproc/extern.h

Bootstrap WAL to begin at segment logid=0 logseg=1 (000000010000000000000001) rather than 0/0, so that we can safely use 0/0 as an invalid value. This is a more future-proof fix for the corner-case bug in streaming replication that was fixed yesterday. We had a similar corner-case bug with log/seg 0/0 back in February as well. Avoiding 0/0 as a valid value should prevent bugs like that in the future. Per Tom Lane's idea.

commit   : 8c843fff2d8db7889b81782ab4f3324cbda4ed2a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 2 Nov 2010 11:23:43 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 2 Nov 2010 11:23:43 +0200    

Click here for diff

Back-patch to 9.0. Since this only affects bootstrapping, it makes no  
difference to existing installations. We don't need to worry about the  
bug in existing installations, because if you've managed to get past the  
initial base backup already, you won't hit the bug in the future either.  

M src/backend/access/transam/xlog.c
M src/backend/replication/walsender.c

commit   : 0811ff2063be973953eda89e76dac0d299f0fb6b    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 1 Nov 2010 13:54:21 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 1 Nov 2010 13:54:21 -0400    

Click here for diff

We already had a redundant FunctionCallInfoData struct in FuncExprState,  
but were using that copy only in set-returning-function cases, to avoid  
keeping function evaluation state in the expression tree for the benefit  
of plpgsql's "simple expression" logic.  But of course that didn't work  
anyway.  Given the recent fixes in plpgsql there is no need to have two  
separate behaviors here.  Getting rid of the local FunctionCallInfoData  
structs should make things a little faster (because we don't need to do  
InitFunctionCallInfoData each time), and it also makes for a noticeable  
reduction in stack space consumption during recursive calls.  

M src/backend/executor/execQual.c
M src/include/nodes/execnodes.h

Fix corner-case bug in tracking of latest removed WAL segment during streaming replication. We used log/seg 0/0 to indicate that no WAL segments have been removed since startup, but 0/0 is a valid value for the very first WAL segment after initdb. To make that disambiguous, store (latest removed WAL segment + 1) in the global variable.

commit   : 931b6db39b808608a3c80c42b47e3cbcda9e66db    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 1 Nov 2010 09:56:45 +0200    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 1 Nov 2010 09:56:45 +0200    

Click here for diff

Per report from Matt Chesler, also reproduced by Greg Smith.  

M src/backend/access/transam/xlog.c
M src/backend/replication/walsender.c

Revert removal of trigger flag from plperl function hash key.

commit   : 76b12e0af765b2ca2eeddcabdd5e7c22eda164da    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 31 Oct 2010 11:42:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 31 Oct 2010 11:42:51 -0400    

Click here for diff

As noted by Jan Urbanski, this flag is in fact needed to ensure that the  
function's input/result conversion functions are set up as expected.  
  
Add a regression test to discourage anyone from making same mistake  
in future.  

M src/pl/plperl/expected/plperl_trigger.out
M src/pl/plperl/plperl.c
M src/pl/plperl/sql/plperl_trigger.sql

Provide hashing support for arrays.

commit   : 186cbbda8f8dc5e42f68fc7892f206a76d56a20f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 30 Oct 2010 21:55:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 30 Oct 2010 21:55:20 -0400    

Click here for diff

The core of this patch is hash_array() and associated typcache  
infrastructure, which works just about exactly like the existing support  
for array comparison.  
  
In addition I did some work to ensure that the planner won't think that an  
array type is hashable unless its element type is hashable, and similarly  
for sorting.  This includes adding a datatype parameter to op_hashjoinable  
and op_mergejoinable, and adding an explicit "hashable" flag to  
SortGroupClause.  The lack of a cross-check on the element type was a  
pre-existing bug in mergejoin support --- but it didn't matter so much  
before, because if you couldn't sort the element type there wasn't any good  
alternative to failing anyhow.  Now that we have the alternative of hashing  
the array type, there are cases where we can avoid a failure by being picky  
at the planner stage, so it's time to be picky.  
  
The issue of exactly how to combine the per-element hash values to produce  
an array hash is still open for discussion, but the rest of this is pretty  
solid, so I'll commit it as-is.  

M src/backend/commands/analyze.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/tlist.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_oper.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/typcache.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_amop.h
M src/include/catalog/pg_amproc.h
M src/include/catalog/pg_opclass.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_opfamily.h
M src/include/catalog/pg_proc.h
M src/include/nodes/parsenodes.h
M src/include/parser/parse_oper.h
M src/include/utils/array.h
M src/include/utils/lsyscache.h
M src/include/utils/typcache.h

Change version number in release notes to 9.1alpha2

commit   : bd1ff9713369c2f54391112b92e0c22ab5c99180    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 30 Oct 2010 23:37:36 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 30 Oct 2010 23:37:36 +0300    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Last-minute updates to 9.1alpha2 release notes

commit   : 71165685b265a8e5fdd615485917affdb0e8fa32    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 30 Oct 2010 22:34:20 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 30 Oct 2010 22:34:20 +0300    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Fix comparisons of pointers with zero to compare with NULL instead.

commit   : bfd3f37be309c3647844aed937e6a66aad5fd3cb    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 15:51:52 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 15:51:52 -0400    

Click here for diff

Per C standard, these are semantically the same thing; but saying NULL  
when you mean NULL is good for readability.  
  
Marti Raudsepp, per results of INRIA's Coccinelle.  

M src/backend/regex/regc_lex.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/fmgr/dfmgr.c
M src/bin/pg_dump/pg_backup_tar.c
M src/port/dirmod.c
M src/timezone/zic.c

Oops, missed one fix for EquivalenceClass rearrangement.

commit   : 48a1fb23900d73e7d9cb2dc0408c745cd03597a7    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 14:44:49 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 14:44:49 -0400    

Click here for diff

Now that we're expecting a mergeclause's left_ec/right_ec to persist from  
the initial assignments, we can't just blithely zero these out when  
transforming such a clause in adjust_appendrel_attrs.  But really it should  
be okay to keep the parent's values, since a child table's derived Var  
ought to be equivalent to the parent Var for all EquivalenceClass purposes.  
(Indeed, I'm wondering whether we couldn't find a way to dispense with  
add_child_rel_equivalences altogether.  But this is wrong in any case.)  

M src/backend/optimizer/prep/prepunion.c

Avoid creation of useless EquivalenceClasses during planning.

commit   : 14231a41a94b2345cc679ff67dbee1bf7dac7029    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 11:52:16 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 29 Oct 2010 11:52:16 -0400    

Click here for diff

Zoltan Boszormenyi exhibited a test case in which planning time was  
dominated by construction of EquivalenceClasses and PathKeys that had no  
actual relevance to the query (and in fact got discarded immediately).  
This happened because we generated PathKeys describing the sort ordering of  
every index on every table in the query, and only after that checked to see  
if the sort ordering was relevant.  The EC/PK construction code is O(N^2)  
in the number of ECs, which is all right for the intended number of such  
objects, but it gets out of hand if there are ECs for lots of irrelevant  
indexes.  
  
To fix, twiddle the handling of mergeclauses a little bit to ensure that  
every interesting EC is created before we begin path generation.  (This  
doesn't cost anything --- in fact I think it's a bit cheaper than before  
--- since we always eventually created those ECs anyway.)  Then, if an  
index column can't be found in any pre-existing EC, we know that that sort  
ordering is irrelevant for the query.  Instead of creating a useless EC,  
we can just not build a pathkey for the index column in the first place.  
The index will still be considered if it's useful for non-order-related  
reasons, but we will think of its output as unsorted.  

M src/backend/optimizer/README
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/joinpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/initsplan.c
M src/include/optimizer/paths.h

Give a more specific error message if you try to COMMIT, ROLLBACK or COPY FROM STDIN in PL/pgSQL. We alread did this for dynamic EXECUTE statements, ie. "EXECUTE 'COMMIT'", but not otherwise.

commit   : f184de351d6a35355aa8f1c1b655c3f6a5087205    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 29 Oct 2010 11:41:28 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 29 Oct 2010 11:41:28 +0300    

Click here for diff

M src/pl/plpgsql/src/pl_exec.c

Allow generic record arguments to plperl functions

commit   : 6c3c7b533e4b73bef99996f92da26c7c4124edd3    
  
author   : Andrew Dunstan <[email protected]>    
date     : Thu, 28 Oct 2010 20:48:12 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Thu, 28 Oct 2010 20:48:12 -0400    

Click here for diff

M src/pl/plperl/plperl.c

Add tab completion for psql \dg and \z

commit   : a3d40e9fb51f8aab9cde5d5018be5e46332275fd    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 23:05:28 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 23:05:28 +0300    

Click here for diff

Josh Kupershmidt  

M src/bin/psql/tab-complete.c

Make \? output of \dg and \du the same

commit   : 299591d1a293e737d72d57aa8545c6c00d19db1d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 23:01:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 23:01:45 +0300    

Click here for diff

The previous wording might have suggested that \du only showed login roles  
and \dg only group roles, but that is no longer the case.  
  
proposed by Josh Kupershmidt  

M src/bin/psql/help.c

Save a few cycles in plpgsql simple-expression initialization.

commit   : 37e0a016547abb3526b685d7aacbd0a4d57f6937    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 28 Oct 2010 13:29:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 28 Oct 2010 13:29:13 -0400    

Click here for diff

Instead of using ExecPrepareExpr, call ExecInitExpr.  The net change here  
is that we don't apply expression_planner() to the expression tree.  There  
is no need to do so, because that tree is extracted from a fully planned  
plancache entry, so all the needed work is already done.  This reduces  
the setup costs by about a factor of 2 according to some simple tests.  
Oversight noted while fooling around with the simple-expression code for  
previous fix.  

M src/pl/plpgsql/src/pl_exec.c

Fix plpgsql's handling of "simple" expression evaluation.

commit   : 8ce22dd4c51b6e8155889653c0116cad13877512    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 28 Oct 2010 13:00:54 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 28 Oct 2010 13:00:54 -0400    

Click here for diff

In general, expression execution state trees aren't re-entrantly usable,  
since functions can store private state information in them.  
For efficiency reasons, plpgsql tries to cache and reuse state trees for  
"simple" expressions.  It can get away with that most of the time, but it  
can fail if the state tree is dirty from a previous failed execution (as  
in an example from Alvaro) or is being used recursively (as noted by me).  
  
Fix by tracking whether a state tree is in use, and falling back to the  
"non-simple" code path if so.  This results in a pretty considerable speed  
hit when the non-simple path is taken, but the available alternatives seem  
even more unpleasant because they add overhead in the simple path.  Per  
idea from Heikki.  
  
Back-patch to all supported branches.  

M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/plpgsql.h
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Release notes for 9.1alpha2

commit   : e9eb4f401333209139af1acee2cd4251b05e0397    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:42:58 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:42:58 +0300    

Click here for diff

M doc/src/sgml/release-9.1.sgml

Remove obsolete release-alpha.sgml

commit   : 18d6437885d2cf50bb16b09676ff054054591290    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:40:56 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:40:56 +0300    

Click here for diff

This was only used while the final release notes for 9.0 were being prepared.  
The alpha release notes are now in release-9.1.sgml.  

D doc/src/sgml/release-alpha.sgml

Remove tabs from SGML

commit   : 2999f4ef354a72f00ab0033ed9c0463d89212b99    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:40:27 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 28 Oct 2010 17:40:27 +0300    

Click here for diff

M doc/src/sgml/wal.sgml

Revert "Correct WAL space calculation formula in docs."

commit   : 2cae0aeb9c61aef48b6de3fb5c4f7785a06bca0b    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 27 Oct 2010 21:24:02 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 27 Oct 2010 21:24:02 -0400    

Click here for diff

This reverts commit 915116bc62db2aaec7001bde6610128f4cbd29f9.  
  
Per discussion, the previous formula was in fact correct.  
  
http://archives.postgresql.org/pgsql-docs/2010-10/msg00038.php  

M doc/src/sgml/wal.sgml

Reorganize OS-specific details about write caching into a list.

commit   : 0d5deebe11818a54f79ca66e1a1d41dae0e0b52b    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 27 Oct 2010 21:19:11 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 27 Oct 2010 21:19:11 -0400    

Click here for diff

Along the way, clarify that sdparm can be used on Linux as well as FreeBSD.  

M doc/src/sgml/wal.sgml

Previous patch had no detectable virtue other than being a one-liner.

commit   : e6721c6e1617a0fc8b4bce8eacba8b5a381f1f21    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 27 Oct 2010 15:26:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 27 Oct 2010 15:26:24 -0400    

Click here for diff

Try to make the code look self-consistent again, so it doesn't confuse  
future developers.  

M src/backend/postmaster/postmaster.c

Fix long-standing segfault when accept() or one of the calls made right after accepting a connection fails, and the server is compiled with GSSAPI support. Report and patch by Alexander V. Chernikov, bug #5731.

commit   : 869af50fcfdd4448b2dc637d905f1afda689741d    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 27 Oct 2010 20:03:00 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 27 Oct 2010 20:03:00 +0300    

Click here for diff

M src/backend/postmaster/postmaster.c

Fix up some oversights in psql's Unicode-escape support.

commit   : 35d89401525677441824c6f2116b9f7d0cc3caac    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 26 Oct 2010 22:23:04 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 26 Oct 2010 22:23:04 -0400    

Click here for diff

Original patch failed to include new exclusive states in a switch that  
needed to include them; and also was guilty of very fuzzy thinking  
about how to handle error cases.  Per bug #5729 from Alan Choi.  

M src/bin/psql/psqlscan.l

Note that effective_io_concurrency only affects bitmap heap scans.

commit   : 5a12c808cf223c7a5498217142cc9cb45efe033a    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 21:44:14 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 21:44:14 -0400    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/config.sgml

Add a client authentication hook.

commit   : 20709f813601976076a346c0b0f8e92006e3b3fa    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 21:20:02 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 21:20:02 -0400    

Click here for diff

KaiGai Kohei, with minor cleanup of the comments by me.  

M src/backend/libpq/auth.c
M src/include/libpq/auth.h

Minor fixups for psql's process_file() function.

commit   : 1fea0c05eb4ac4a21d79471b9a7fe96163306b88    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 19:28:18 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 19:28:18 -0400    

Click here for diff

- Avoid closing stdin, since we didn't open it.  Previously multiple  
inclusions of stdin would be terminated with a single quit, now a separate  
quit is needed for each invocation. Previous behavior also accessed stdin  
after it was fclose()d, which is undefined behavior per ANSI C.  
  
- Properly restore pset.inputfile, since the caller expects to be able  
to free that memory.  
  
Marti Raudsepp  

M src/bin/psql/command.c

Note explicitly that hash indexes are also not replicated because they're not WAL-logged. Make the notice about the lack of WAL-logging more visible by making it a <caution>. Also remove the false statement from hot standby caveats section that hash indexes are not used during hot standby.

commit   : 5c38782cc8b3219d43ac2ccaf4254fd590bde758    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 26 Oct 2010 22:50:31 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 26 Oct 2010 22:50:31 +0300    

Click here for diff

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/indices.sgml

Fix dumb typo in SECURITY LABEL error message.

commit   : 3579a94d6acd9374fbc3b45d0be593331ffd414d    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 14:54:31 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 26 Oct 2010 14:54:31 -0400    

Click here for diff

Report by Peter Eisentraut.  

M src/backend/commands/seclabel.c
M src/test/regress/output/security_label.source

Before removing backup_label and irrevocably changing pg_control file, check that WAL file containing the checkpoint redo-location can be found. This avoids making the cluster irrecoverable if the redo location is in an earlie WAL file than the checkpoint record.

commit   : 0c6293dd0361a0d3c72c94ced389c509019713a7    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 26 Oct 2010 21:15:42 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 26 Oct 2010 21:15:42 +0300    

Click here for diff

Report, analysis and patch by Jeff Davis, with small changes by me.  

M src/backend/access/transam/xlog.c

Add missing newlines at end of files

commit   : a87d21263600a978ff85142c53375ab25eb30bce    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 26 Oct 2010 20:11:43 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 26 Oct 2010 20:11:43 +0300    

Click here for diff

M contrib/btree_gist/data/interval.data
M contrib/btree_gist/data/macaddr.data
M contrib/btree_gist/data/numeric.data
M contrib/btree_gist/data/text.data
M contrib/btree_gist/data/timetz.data
M contrib/btree_gist/data/varbit.data
M src/test/locale/de_DE.ISO8859-1/test-de-sort.in

Fix typos "are are".

commit   : bf76ad07fe59affc64f1554d4ff20ddf4d5e8e59    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 26 Oct 2010 17:15:17 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 26 Oct 2010 17:15:17 +0900    

Click here for diff

M src/include/nodes/execnodes.h
M src/include/nodes/plannodes.h

Add .gitignore for contrib/uuid-ossp.

commit   : 07ca728f699694781ce62eae9e2fa61cd4ffa542    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 26 Oct 2010 12:25:34 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 26 Oct 2010 12:25:34 +0900    

Click here for diff

A contrib/uuid-ossp/.gitignore

Refactor typenameTypeId()

commit   : 35670340f57d78d6ab023b1fb42fd81339f85d4c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 25 Oct 2010 21:40:46 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 25 Oct 2010 21:40:46 +0300    

Click here for diff

Split the old typenameTypeId() into two functions: A new typenameTypeId() that  
returns only a type OID, and typenameTypeIdAndMod() that returns type OID and  
typmod.  This isolates call sites better that actually care about the typmod.  

M src/backend/access/common/tupdesc.c
M src/backend/catalog/objectaddress.c
M src/backend/commands/aggregatecmds.c
M src/backend/commands/comment.c
M src/backend/commands/functioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/prepare.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_type.c
M src/backend/utils/misc/guc.c
M src/include/parser/parse_type.h

Fix overly-enthusiastic Assert in printing of Param reference expressions.

commit   : c6873eac4c33720140240cdbd1a663fecc922c57    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 14:25:10 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 14:25:10 -0400    

Click here for diff

A NestLoopParam's value can only be a Var or Aggref, but this isn't the  
case in general for SubPlan parameters, so print_parameter_expr had better  
be prepared to cope.  Brain fade in my recent patch to print the referenced  
expression instead of just printing $N for PARAM_EXEC Params.  Per report  
from Pavel Stehule.  

M src/backend/utils/adt/ruleutils.c

Fix inline_set_returning_function() to preserve the invalItems list properly.

commit   : ef55e294e66725c412d55b9689328235141d816d    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 13:04:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 13:04:37 -0400    

Click here for diff

This avoids a possible crash when inlining a SRF whose argument list  
contains a reference to an inline-able user function.  The crash is quite  
reproducible with CLOBBER_FREED_MEMORY enabled, but would be less certain  
in a production build.  Problem introduced in 9.0 by the named-arguments  
patch, which requires invoking eval_const_expressions() before we can try  
to inline a SRF.  Per report from Brendan Jurd.  

M src/backend/optimizer/util/clauses.c

find -path is not portable, so use grep -v instead.

commit   : 9350824e708678f6af9657979ba656cf1951b408    
  
author   : Alvaro Herrera <[email protected]>    
date     : Mon, 25 Oct 2010 09:24:02 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Mon, 25 Oct 2010 09:24:02 -0300    

Click here for diff

Per previous failure of buildfarm member koi (which is no longer  
failing, alas).  

M config/prep_buildtree

Work around rounding misbehavior exposed by buildfarm.

commit   : 4ba61a487e39eaf859cd9face9520b30127e6a91    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 01:13:22 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 25 Oct 2010 01:13:22 -0400    

Click here for diff

M src/backend/catalog/pg_enum.c

Remove unnecessary use of trigger flag to hash plperl functions

commit   : 2d01ec0708d571eef926f3f5795aa73759df5d9a    
  
author   : Andrew Dunstan <[email protected]>    
date     : Sun, 24 Oct 2010 23:53:44 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Sun, 24 Oct 2010 23:53:44 -0400    

Click here for diff

M src/pl/plperl/plperl.c

Allow new values to be added to an existing enum type.

commit   : 84c123be1de8a9955741e20c9f945571e40c545e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 24 Oct 2010 23:04:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 24 Oct 2010 23:04:37 -0400    

Click here for diff

After much expenditure of effort, we've got this to the point where the  
performance penalty is pretty minimal in typical cases.  
  
Andrew Dunstan, reviewed by Brendan Jurd, Dean Rasheed, and Tom Lane  

M contrib/pg_upgrade/function.c
M contrib/pg_upgrade_support/pg_upgrade_support.c
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/ref/alter_type.sgml
M src/backend/catalog/pg_enum.c
M src/backend/commands/typecmds.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/backend/utils/adt/enum.c
M src/backend/utils/cache/typcache.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/describe.c
M src/include/catalog/catversion.h
M src/include/catalog/indexing.h
M src/include/catalog/pg_enum.h
M src/include/commands/typecmds.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/utils/typcache.h
M src/test/regress/expected/enum.out
M src/test/regress/sql/enum.sql

Support suffix matching of host names in pg_hba.conf

commit   : 24b29ca8f9dc4a5e5f873f0fcb56438c526700f6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 24 Oct 2010 15:54:00 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 24 Oct 2010 15:54:00 +0300    

Click here for diff

A name starting with a dot can be used to match a suffix of the actual  
host name (e.g., .example.com matches foo.example.com).  

M doc/src/sgml/client-auth.sgml
M src/backend/libpq/hba.c
M src/backend/libpq/pg_hba.conf.sample

Correct a mistake in levenshtein_less_equal() multibyte character handling.

commit   : dd1587089c3dadd4bc1c85e8e75edf3a24686934    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 22 Oct 2010 15:27:39 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 22 Oct 2010 15:27:39 -0400    

Click here for diff

Spotted by Alexander Korotkov.  
  
Along the way, remove a misleading comment line.  

M contrib/fuzzystrmatch/levenshtein.c

Add semicolon, missed in previous patch. And update the keyword list in the docs to reflect that OFF is now unreserved. Spotted by Tom Lane.

commit   : 57b80b4c466f224b6623e38081cea6e6d2fe0744    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 22 Oct 2010 18:38:31 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 22 Oct 2010 18:38:31 +0300    

Click here for diff

M doc/src/sgml/keywords.sgml
M src/backend/parser/gram.y

Make OFF keyword unreserved. It's not hard to imagine wanting to use 'off' as a variable or column name, and it's not reserved in recent versions of the SQL spec either. This became particularly annoying in 9.0, before that PL/pgSQL replaced variable names in queries with parameter markers, so it was possible to use OFF and many other backend parser keywords as variable names. Because of that, backpatch to 9.0.

commit   : 5c84fe4607907b22e45433195fec800d23ac1f49    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 22 Oct 2010 17:37:38 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 22 Oct 2010 17:37:38 +0300    

Click here for diff

M src/backend/parser/gram.y
M src/include/parser/kwlist.h

Mention limited usefulness of .pgpass database field.

commit   : 71be8db5dfada851c45d6f4d1d7364456fd40be5    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 21 Oct 2010 21:46:42 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 21 Oct 2010 21:46:42 +0000    

Click here for diff

M doc/src/sgml/libpq.sgml

Improve handling of domains over arrays.

commit   : 529cb267a6843a6a8190c86b75d091771d99d6a9    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 21 Oct 2010 16:07:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 21 Oct 2010 16:07:17 -0400    

Click here for diff

This patch eliminates various bizarre behaviors caused by sloppy thinking  
about the difference between a domain type and its underlying array type.  
In particular, the operation of updating one element of such an array  
has to be considered as yielding a value of the underlying array type,  
*not* a value of the domain, because there's no assurance that the  
domain's CHECK constraints are still satisfied.  If we're intending to  
store the result back into a domain column, we have to re-cast to the  
domain type so that constraints are re-checked.  
  
For similar reasons, such a domain can't be blindly matched to an ANYARRAY  
polymorphic parameter, because the polymorphic function is likely to apply  
array-ish operations that could invalidate the domain constraints.  For the  
moment, we just forbid such matching.  We might later wish to insert an  
automatic downcast to the underlying array type, but such a change should  
also change matching of domains to ANYELEMENT for consistency.  
  
To ensure that all such logic is rechecked, this patch removes the original  
hack of setting a domain's pg_type.typelem field to match its base type;  
the typelem will always be zero instead.  In those places where it's really  
okay to look through the domain type with no other logic changes, use the  
newly added get_base_element_type function in place of get_element_type.  
catversion bumped due to change in pg_type contents.  
  
Per bug #5717 from Richard Huxton and subsequent discussion.  

M doc/src/sgml/catalogs.sgml
M src/backend/commands/functioncmds.c
M src/backend/commands/typecmds.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_target.c
M src/backend/utils/adt/format_type.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/xml.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/fmgr/fmgr.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_type.h
M src/include/parser/parse_node.h
M src/include/utils/lsyscache.h
M src/pl/plpgsql/src/pl_exec.c
M src/test/regress/expected/domain.out
M src/test/regress/sql/domain.sql

Remove obsolete comment, per Josh Kupershmidt.

commit   : 572ab1a542c170ddd2e4c30ef472e13f531b64a4    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 17:05:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 17:05:15 -0400    

Click here for diff

M src/backend/catalog/information_schema.sql

Clean up pg_upgrade cache lookup code; remove useless NULL pointer tests.

commit   : a52aa6c6db13155bc0b1b1b18fedf2310d9e7a84    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 20:02:00 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 20:02:00 +0000    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h

If pk is NULL, the backend would segfault when accessing ->algo and the following NULL check was never reached.

commit   : 18e752f226300292c6182b68b2568dc2d66db8bd    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 20 Oct 2010 22:20:33 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 20 Oct 2010 22:20:33 +0300    

Click here for diff

This problem was found by Coccinelle (null_ref.cocci from coccicheck).  
  
Marti Raudsepp  

M contrib/pgcrypto/pgp-pubenc.c

Don't try to fetch database name when SetTransactionIdLimit() is executed outside a transaction.

commit   : def30e84c41389225ee9e56cb7c722980bab9746    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 12:48:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 12:48:51 -0400    

Click here for diff

This repairs brain fade in my patch of 2009-08-30: the reason we had been  
storing oldest-database name, not OID, in ShmemVariableCache was of course  
to avoid having to do a catalog lookup at times when it might be unsafe.  
  
This error explains why Aleksandr Dushein is having trouble getting out of  
an XID wraparound state in bug #5718, though not how he got into that state  
in the first place.  I suspect pg_upgrade is at fault there.  

M src/backend/access/transam/varsup.c

Remove AtStart_Cache() call in CommandCounterIncrement().

commit   : 17a16663d0c1c70c5c70ba97de6fe2c9c6a3bc07    
  
author   : Alvaro Herrera <[email protected]>    
date     : Sun, 17 Oct 2010 23:08:30 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Sun, 17 Oct 2010 23:08:30 -0300    

Click here for diff

This call was present in the aboriginal code from Berkeley, and has  
never been touched; it may very well be that it was there to mask  
effects of bugs in other places and it may no longer be necessary.  
The removal has been foreseen in a code comment since 2007; this seems  
to be a good time to test this hypothesis.  

M src/backend/access/transam/xact.c

Fix ecpg test building process to not generate *.dSYM junk on Macs.

commit   : c75e1436467f32a06b5ab9d594d2a390e7f4594d    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 00:54:58 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 20 Oct 2010 00:54:58 -0400    

Click here for diff

The trick is to not try to build executables directly from .c files,  
but to always build the intermediate .o files.  For obscure reasons,  
Darwin's version of gcc will leave debug cruft behind in the first  
case but not the second.  Per complaint from Robert Haas.  

M src/interfaces/ecpg/test/Makefile.regress

Add some caveats to the contrib/isn docs.

commit   : 4b6623a7e8f0f0116ff68ebfd4c98830fe59419d    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 22:46:55 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 22:46:55 -0400    

Click here for diff

M doc/src/sgml/isn.sgml

Updates to contrib/isn ISBN tables.

commit   : 6d1af7b2180719102a907bd3e35d218b43e76ad1    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 22:24:33 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 22:24:33 -0400    

Click here for diff

Jan Otto, reviewed by Peter Geoghegan  

M contrib/isn/ISBN.h
M contrib/isn/isn.c

Rename pg_upgrade 'log' to 'log_opts', to avoid platform naming conflict.

commit   : 691a67b922f2e8374356215228700958165e7d44    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 02:31:17 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 02:31:17 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/util.c

Further speed up pg_upgrade lookups.

commit   : 3325c9bddb332487914c5c96d838286350044814    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 02:05:43 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 02:05:43 +0000    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h

Update storage.sgml to describe the 9.0 tablespace directory layout.

commit   : c33bfb8b9b0d955b813d99e8f9f5c62c31f7387c    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 19 Oct 2010 21:52:59 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 19 Oct 2010 21:52:59 -0400    

Click here for diff

M doc/src/sgml/storage.sgml

Fix for new pg_upgrade cache code.

commit   : 1c72614be710127b198411f49301a56453e3abc4    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 01:24:31 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 01:24:31 +0000    

Click here for diff

M contrib/pg_upgrade/info.c

Cache most recent relfilenode lookups, for speed, after report of pg_upgrade slowness for 150k tables.

commit   : 333b4a45f1d984bd7f32aecb1ba551feed088ec4    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 00:55:16 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 00:55:16 +0000    

Click here for diff

M contrib/pg_upgrade/info.c

In pg_upgrade, use cached copy of directory listing, rather than calling scandir() with a pattern for every table.

commit   : ad06db2610f479d559ee4a3b9e3241d40be07440    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 00:33:19 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 20 Oct 2010 00:33:19 +0000    

Click here for diff

Optimization after report of pg_upgrade slowness with 150k tables.  

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c

Pgindent run on pg_upgrade source after restructuring.

commit   : 07456b45e6359e8a15807e3f71c0f2e6a76fa4e9    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 22:37:04 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 22:37:04 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/version_old_8_3.c

Restructure the pg_upgrade code to use several global structures rather than packing everything into 'ctx' and passing that to every function.

commit   : e13f7e9a711c9117e438516537066bbe61df6455    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 21:38:16 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 21:38:16 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/page.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/util.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c

Fix incorrect generation of whole-row variables in planner.

commit   : 6e74a91b2bf0e0032ccd60dd99d6cf47c190c428    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 19 Oct 2010 15:08:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 19 Oct 2010 15:08:37 -0400    

Click here for diff

A couple of places in the planner need to generate whole-row Vars, and were  
cutting corners by setting vartype = RECORDOID in the Vars, even in cases  
where there's an identifiable named composite type for the RTE being  
referenced.  While we mostly got away with this, it failed when there was  
also a parser-generated whole-row reference to the same RTE, because the  
two Vars weren't equal() due to the difference in vartype.  Fix by  
providing a subroutine the planner can call to generate whole-row Vars  
the same way the parser does.  
  
Per bug #5716 from Andrew Tipton.  Back-patch to 9.0 where one of the bogus  
calls was introduced (the other one is new in HEAD).  

M src/backend/nodes/makefuncs.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/parser/parse_expr.c
M src/backend/rewrite/rewriteHandler.c
M src/include/nodes/makefuncs.h
M src/test/regress/expected/rowtypes.out
M src/test/regress/sql/rowtypes.sql

In pg_upgrade, rename SHELL_EXT to SCRIPT_EXT, for clarity.

commit   : 722d5beeb266ae83f548fc3953df700a71f30134    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 15:57:55 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 15:57:55 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h

Add removal of PG_VERSION to optional old cluster deletion script. Backpatch to 9.0.X.

commit   : 51eeccd6cc2e0fcb95112e0e4a7a20d0f95c181a    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 15:52:43 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 15:52:43 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h

Add mention of using tools/fsync to test fsync methods. Restructure recent wal_sync_method doc paragraph to be clearer.

commit   : f75d6a1b19ec334a9b1455c4b8030a09d582581d    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 14:56:33 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 14:56:33 +0000    

Click here for diff

M doc/src/sgml/config.sgml
M doc/src/sgml/wal.sgml

Add levenshtein_less_equal, optimized version for small distances.

commit   : 604ab08145d0dde91279c430e08d570717c12b30    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 09:51:06 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 09:51:06 -0400    

Click here for diff

Alexander Korotkov, heavily revised by me.  

M contrib/fuzzystrmatch/fuzzystrmatch.c
M contrib/fuzzystrmatch/fuzzystrmatch.sql.in
A contrib/fuzzystrmatch/levenshtein.c
M contrib/fuzzystrmatch/uninstall_fuzzystrmatch.sql
M doc/src/sgml/fuzzystrmatch.sgml

Unbreak comments on composite type attributes.

commit   : 262c1a42dcd36831a964099659026fb9cec0eecc    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 07:21:58 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 19 Oct 2010 07:21:58 -0400    

Click here for diff

Report and diagnosis by Peter Eisentraut.  

M src/backend/catalog/objectaddress.c
M src/test/regress/expected/create_type.out
M src/test/regress/sql/create_type.sql

In pg_upgrade, rename macro EXEC_EXT to SHELL_EXT for clarity.

commit   : 9df96f9bb1cb8bc0350f02bbd0a113480e84224a    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 02:55:54 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 19 Oct 2010 02:55:54 +0000    

Click here for diff

Backpatch to 9.0.X.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h

Support key word 'all' in host column of pg_hba.conf

commit   : bc8624b15d8055cdead310352e5943da18500d16    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 18 Oct 2010 22:14:47 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 18 Oct 2010 22:14:47 +0300    

Click here for diff

M doc/src/sgml/client-auth.sgml
M src/backend/libpq/hba.c
M src/include/libpq/hba.h

Document the tablespace directory "should" be empty, rather than "must" be empty. Because of binary migration usage, it might not be empty.

commit   : 433c7a654556cc43b8f4e5c4c1b175480b266ba5    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 18 Oct 2010 18:15:58 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 18 Oct 2010 18:15:58 +0000    

Click here for diff

M doc/src/sgml/ref/create_tablespace.sgml

Change example pg_hba.conf in docs to match altered pg_hba.conf.sample

commit   : 9c73e20f38e21f68d92f45238cd6314b241dd96e    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 18 Oct 2010 12:17:06 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 18 Oct 2010 12:17:06 -0400    

Click here for diff

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

M doc/src/sgml/high-availability.sgml

Fix a passel of inappropriately-named global functions in GIN.

commit   : 419d2374bfbc1eae562121fde31c1aa0e8a164cb    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Oct 2010 21:43:26 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Oct 2010 21:43:26 -0400    

Click here for diff

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.  

M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/include/access/gin.h

Improve GIN indexscan cost estimation.

commit   : 48c7d9f6ff99714495b7d6d2ebc44fbbe992cc8f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 17 Oct 2010 20:52:32 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 17 Oct 2010 20:52:32 -0400    

Click here for diff

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.  

M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/backend/utils/adt/selfuncs.c
M src/include/access/gin.h

Fix msvc build for localized versions of Visual C++

commit   : cd0e8253216907982fe369b91f6d788d699b6c47    
  
author   : Magnus Hagander <[email protected]>    
date     : Sun, 17 Oct 2010 16:36:54 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Sun, 17 Oct 2010 16:36:54 +0200    

Click here for diff

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.  

M src/tools/msvc/Solution.pm

Fix recent changes to not break non-IPV6-aware systems.

commit   : 9771125c18c5746be57a55cfc31340f5311fca2c    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 16 Oct 2010 10:12:16 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 16 Oct 2010 10:12:16 -0400    

Click here for diff

M src/backend/libpq/hba.c

Document that translate() removes characters in "from" that don't have a corresponding "to" character.

commit   : 33ae03f4003adb27651d00688016d1c4a979686f    
  
author   : Alvaro Herrera <[email protected]>    
date     : Sat, 16 Oct 2010 01:11:38 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Sat, 16 Oct 2010 01:11:38 -0300    

Click here for diff

Author: Josh Kupershmidt  

M doc/src/sgml/func.sgml

Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements.

commit   : 07f1264dda0e776a7e329b091c127059bce8cc54    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 15 Oct 2010 19:53:59 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 15 Oct 2010 19:53:59 -0400    

Click here for diff

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.  

M doc/src/sgml/queries.sgml
M doc/src/sgml/ref/delete.sgml
M doc/src/sgml/ref/insert.sgml
M doc/src/sgml/ref/update.sgml
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/analyze.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/utils/adt/ruleutils.c
M src/include/catalog/catversion.h
M src/include/nodes/parsenodes.h
M src/test/regress/expected/with.out
M src/test/regress/sql/with.sql

Support host names in pg_hba.conf

commit   : 6ab42ae36713b1e6f961c37e22f99d3e6267523b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 15 Oct 2010 22:53:39 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 15 Oct 2010 22:53:39 +0300    

Click here for diff

Peter Eisentraut, reviewed by KaiGai Kohei and Tom Lane  

M doc/src/sgml/client-auth.sgml
M src/backend/libpq/hba.c
M src/backend/libpq/pg_hba.conf.sample
M src/backend/postmaster/postmaster.c
M src/include/libpq/hba.h
M src/include/libpq/libpq-be.h

Change references to SQL/XML:2003 to :2008 and renumber sections accordingly

commit   : 3cde44374ac6cd83915d34042a10030a3bbfcd31    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 15 Oct 2010 21:18:47 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 15 Oct 2010 21:18:47 +0300    

Click here for diff

M src/backend/utils/adt/xml.c

Document the DISTINCT noise word in the UNION/INTERSECT/EXCEPT constructs.

commit   : 71d24466fb84bf51c479dcc85b52a0c2b71b9c50    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 15 Oct 2010 15:48:45 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 15 Oct 2010 15:48:45 -0400    

Click here for diff

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.  

M doc/src/sgml/ref/select.sgml
M doc/src/sgml/ref/select_into.sgml

Allow pg_ctl to register the service in either AUTO or DEMAND start type

commit   : 0c9b166db5329119b6553e0f38fe486521f1352f    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 15 Oct 2010 14:30:03 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 15 Oct 2010 14:30:03 -0300    

Click here for diff

Author: Quan Zongliang  
Documentation updates by David Fetter  

M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/bin/pg_ctl/pg_ctl.c

Fix low-risk potential denial of service against RADIUS login.

commit   : 0e7f7071e893bb171150e53271404b0819a40669    
  
author   : Magnus Hagander <[email protected]>    
date     : Fri, 15 Oct 2010 16:59:10 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Fri, 15 Oct 2010 16:59:10 +0200    

Click here for diff

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.  

M src/backend/libpq/auth.c

Correct WAL space calculation formula in docs.

commit   : 915116bc62db2aaec7001bde6610128f4cbd29f9    
  
author   : Simon Riggs <[email protected]>    
date     : Fri, 15 Oct 2010 10:17:12 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Fri, 15 Oct 2010 10:17:12 +0100    

Click here for diff

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

M doc/src/sgml/wal.sgml

Improve comment about ignoring 128 error code on Windows:

commit   : 23177114c6f4f12d313d453e9153daf80c94c70b    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 15 Oct 2010 01:57:41 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 15 Oct 2010 01:57:41 +0000    

Click here for diff

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

M src/backend/postmaster/postmaster.c

Add pg_user_mappings to the table of system views.

commit   : e4682133586c641096969ff26dc520d1d6bac7cc    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 14 Oct 2010 19:12:24 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 14 Oct 2010 19:12:24 -0400    

Click here for diff

M doc/src/sgml/catalogs.sgml

Support MergeAppend plans, to allow sorted output from append relations.

commit   : 11cad29c91524aac1d0b61e0ea0357398ab79bf8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 14 Oct 2010 16:56:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 14 Oct 2010 16:56:39 -0400    

Click here for diff

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.  

M src/backend/commands/explain.c
M src/backend/executor/Makefile
M src/backend/executor/execAmi.c
M src/backend/executor/execCurrent.c
M src/backend/executor/execProcnode.c
A src/backend/executor/nodeMergeAppend.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/README
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/pathnode.c
M src/backend/utils/adt/ruleutils.c
A src/include/executor/nodeMergeAppend.h
M src/include/nodes/execnodes.h
M src/include/nodes/nodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/relation.h
M src/include/optimizer/cost.h
M src/include/optimizer/pathnode.h
M src/test/regress/expected/inherit.out
M src/test/regress/sql/inherit.sql

Fix makefile logic to not break the build when xgettext is missing

commit   : 30e749dece0e6502d4dd0a3b2892eab61f8c073b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 22:15:46 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 22:15:46 +0300    

Click here for diff

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.  

M src/nls-global.mk

Remove reference.ced

commit   : 402e11913fe05a7523828554cc2de3f1eb982d9c    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 21:32:45 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 21:32:45 +0300    

Click here for diff

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.  

M doc/src/sgml/docguide.sgml
D doc/src/sgml/reference.ced

Complete the documentation of the USAGE privilege for foreign servers

commit   : 9f2d7f6e2de23ecc1cfdd4172e23bd8b949fbcd2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 20:36:42 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 20:36:42 +0300    

Click here for diff

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.  

M doc/src/sgml/ref/grant.sgml

Document (compositeval).* field selection syntax

commit   : 80ada4c0dbc877d494f7c8886fdaebda0fbbe0bc    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 20:07:13 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 14 Oct 2010 20:07:13 +0300    

Click here for diff

M doc/src/sgml/syntax.sgml

Improvements to docs about pg_archive_cleanup and use of archives

commit   : 7085891784784fda7314c0510da901fc8402380a    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:30:15 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:30:15 +0100    

Click here for diff

Brendan Jurd  

M doc/src/sgml/high-availability.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/recovery-config.sgml

Make startup process respond to signals to cancel waiting on latch. A tidy up for recently committed changes to startup latch.

commit   : 3bbcc5c9992f21fa735f438f5ff5f3a81efea39c    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:15:26 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:15:26 +0100    

Click here for diff

Fujii Masao  

M src/backend/access/transam/xlog.c

Fix bug in comment of timeline history file.

commit   : 45cd9199c2498b04cccc3989a5abbd04def806b3    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:06:06 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 14 Oct 2010 19:06:06 +0100    

Click here for diff

Fujii Masao  

M src/backend/access/transam/xlog.c

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.

commit   : 816b008eaf1a1ff1069f3bafff363a9a8bf04a21    
  
author   : Michael Meskes <[email protected]>    
date     : Thu, 14 Oct 2010 17:55:07 +0200    
  
committer: Michael Meskes <[email protected]>    
date     : Thu, 14 Oct 2010 17:55:07 +0200    

Click here for diff

M src/interfaces/ecpg/ecpglib/connect.c
M src/interfaces/ecpg/ecpglib/execute.c
M src/interfaces/ecpg/ecpglib/extern.h
M src/interfaces/ecpg/ecpglib/misc.c

Remove executable permission from files where it doesn't belong

commit   : 1a996d6c2972b343d8ec446d1c7c4c5fa8e19ef4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 22:30:25 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 22:30:25 +0300    

Click here for diff

M doc/src/sgml/ref/alter_large_object.sgml
M src/include/catalog/pg_largeobject_metadata.h
M src/interfaces/ecpg/test/expected/compat_informix-dec_test-MinGW32.stdout
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test-MinGW32.stdout
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test2-MinGW32.stdout

Add index entries for pg_stat* views

commit   : e8a47b3cb92de64e80ae444e90f5a9cbb4294d48    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 21:29:10 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 21:29:10 +0300    

Click here for diff

M doc/src/sgml/monitoring.sgml

Mention the default pg_ctl wait time in the -t option documentation

commit   : ceb5b787c6fcfbb8667f3b0254d2f2796cee20e2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 20:24:51 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 20:24:51 +0300    

Click here for diff

M doc/src/sgml/ref/pg_ctl-ref.sgml

Make title capitalization consistent with surroundings

commit   : ef204db5778f04225dcf145f6480402a614fff73    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 20:05:16 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 20:05:16 +0300    

Click here for diff

M doc/src/sgml/ddl.sgml

commit   : 3bf79839c81b84a234c40faa56c8e0464a533b6a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 19:46:05 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 13 Oct 2010 19:46:05 +0300    

Click here for diff

M doc/src/sgml/stylesheet.dsl

Accept 'public' as a pseudo-role name in has_table_privilege() and friends to see if a particular privilege has been granted to PUBLIC.

commit   : d0f876ca8ccb7dc8820302543b114014b7bac090    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Wed, 13 Oct 2010 14:37:23 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Wed, 13 Oct 2010 14:37:23 +0900    

Click here for diff

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

M doc/src/sgml/func.sgml
M src/backend/utils/adt/acl.c

Remove some unnecessary tests of pgstat_track_counts.

commit   : f4d242ef94730c447d87b9840a40b0ec3371fe0f    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 12 Oct 2010 14:44:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 12 Oct 2010 14:44:25 -0400    

Click here for diff

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.  

M src/backend/postmaster/pgstat.c
M src/include/pgstat.h

Fix typo

commit   : 82659e0456f5c5a52a35ee41e63882c280ec2496    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 12 Oct 2010 13:24:10 -0300    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 12 Oct 2010 13:24:10 -0300    

Click here for diff

M doc/src/sgml/ecpg.sgml

Fix plpython so that it again honors typmod while assigning to tuple fields.

commit   : 09130e5867d49c72ef0f11bef30c5385d83bf194    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 11 Oct 2010 22:16:40 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 11 Oct 2010 22:16:40 -0400    

Click here for diff

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

M src/pl/plpython/expected/plpython_trigger.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_trigger.sql

Fix assorted bugs in GIN's WAL replay logic.

commit   : 4016bdef8aded77b4903c457050622a5a1815c16    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 11 Oct 2010 19:04:37 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 11 Oct 2010 19:04:37 -0400    

Click here for diff

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.  

M src/backend/access/gin/ginxlog.c

Improve the planner's simplification of NOT constructs.

commit   : 220e45bf325b061b8dbd7451f87cedc07da61706    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 23:19:50 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 23:19:50 -0400    

Click here for diff

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.  

M src/backend/optimizer/prep/prepqual.c
M src/backend/optimizer/util/clauses.c
M src/include/optimizer/prep.h

Teach psql to do tab completion for names of psql variables.

commit   : b48b9cb3a46d80401b122fd10780e8c623983a26    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 18:42:35 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 18:42:35 -0400    

Click here for diff

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  

M src/bin/psql/tab-complete.c

Support triggers on views.

commit   : 2ec993a7cbdd8e251817ac6bbc9a704ce8346f73    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 13:43:33 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 10 Oct 2010 13:43:33 -0400    

Click here for diff

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.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/information_schema.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/ref/create_rule.sgml
M doc/src/sgml/ref/create_trigger.sgml
M doc/src/sgml/rules.sgml
M doc/src/sgml/trigger.sgml
M src/backend/catalog/index.c
M src/backend/catalog/information_schema.sql
M src/backend/catalog/sql_features.txt
M src/backend/commands/copy.c
M src/backend/commands/tablecmds.c
M src/backend/commands/trigger.c
M src/backend/executor/execMain.c
M src/backend/executor/nodeModifyTable.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/parser/gram.y
M src/backend/rewrite/rewriteHandler.c
M src/backend/rewrite/rewriteManip.c
M src/backend/utils/adt/ruleutils.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/describe.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_trigger.h
M src/include/commands/trigger.h
M src/include/nodes/parsenodes.h
M src/include/utils/rel.h
M src/pl/plperl/expected/plperl_trigger.out
M src/pl/plperl/plperl.c
M src/pl/plperl/sql/plperl_trigger.sql
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpython/expected/plpython_trigger.out
M src/pl/plpython/plpython.c
M src/pl/plpython/sql/plpython_trigger.sql
M src/pl/tcl/expected/pltcl_queries.out
M src/pl/tcl/expected/pltcl_queries_1.out
M src/pl/tcl/expected/pltcl_setup.out
M src/pl/tcl/pltcl.c
M src/pl/tcl/sql/pltcl_queries.sql
M src/pl/tcl/sql/pltcl_setup.sql
M src/test/regress/expected/triggers.out
M src/test/regress/sql/triggers.sql

Extensive ECPG documentation improvements

commit   : f7b15b5098ee89a2628129fbbef9901bded9d27b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 10 Oct 2010 13:46:02 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 10 Oct 2010 13:46:02 +0300    

Click here for diff

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  

M doc/src/sgml/ecpg.sgml
M doc/src/sgml/stylesheet-man.xsl

Adjust EXPLAIN documentation, so that it's not unreasonably wide.

commit   : ab6d9f16414af946083fab2347c8ccc4761fc004    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Oct 2010 22:59:48 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Oct 2010 22:59:48 -0400    

Click here for diff

The new formatting matches what we do for COPY.  
  
Per a complaint from Bruce Momjian.  

M doc/src/sgml/ref/explain.sgml

Single-word clarification in postgresql.conf log_truncate_on_rotation comment.

commit   : f7dbddac69d01fb27484ad27c1d042f36f55ea12    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 8 Oct 2010 19:10:06 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 8 Oct 2010 19:10:06 +0000    

Click here for diff

M src/backend/utils/misc/postgresql.conf.sample

Fix sloppy usage of TRIGGER_FIRED_BEFORE/TRIGGER_FIRED_AFTER.

commit   : caaf2e84698940c093e6cf6203014883e4fb18c5    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 8 Oct 2010 13:27:31 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 8 Oct 2010 13:27:31 -0400    

Click here for diff

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.  

M contrib/spi/autoinc.c
M contrib/spi/insert_username.c
M contrib/spi/moddatetime.c
M contrib/spi/refint.c
M contrib/spi/timetravel.c
M src/backend/utils/adt/tsvector_op.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpython/plpython.c
M src/test/regress/regress.c

Warn that views can be safely used to hide columns, but not rows.

commit   : 56ccff59806793198020a6a3d154bbce6dfb7a06    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 8 Oct 2010 09:15:17 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 8 Oct 2010 09:15:17 -0400    

Click here for diff

M doc/src/sgml/ref/create_view.sgml
M doc/src/sgml/rules.sgml

Improve logging in VACUUM FULL VERBOSE and CLUSTER VERBOSE.

commit   : 9cc8c84e738737baed4b7edeaaa2bee35ad38847    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 21:46:46 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 21:46:46 -0400    

Click here for diff

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  

M src/backend/access/heap/rewriteheap.c
M src/backend/commands/cluster.c
M src/include/access/rewriteheap.h

Eliminate some repetitive coding in tuplesort.c.

commit   : 26a7b48e10bea67be719f5bb88cbaa8d4ec1c9b3    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 20:32:21 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 20:32:21 -0400    

Click here for diff

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.  

M src/backend/utils/sort/tuplesort.c

Teach CLUSTER to use seqscan-and-sort when it's faster than indexscan.

commit   : 3ba11d3df2115b04171a8eda8e0389e02578d8d0    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 20:00:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 7 Oct 2010 20:00:28 -0400    

Click here for diff

... or at least, when the planner's cost estimates say it will be faster.  
  
Leonardo Francalanci, reviewed by Itagaki Takahiro and Tom Lane  

M doc/src/sgml/ref/cluster.sgml
M src/backend/commands/cluster.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/plancat.c
M src/backend/utils/sort/tuplesort.c
M src/include/optimizer/cost.h
M src/include/optimizer/plancat.h
M src/include/optimizer/planner.h
M src/include/utils/tuplesort.h

Improve WAL reliability documentation, and add more cross-references to it.

commit   : 694c56af2b586551afda624901d6dec951b58027    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 7 Oct 2010 12:19:03 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 7 Oct 2010 12:19:03 -0400    

Click here for diff

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.  

M doc/src/sgml/config.sgml
M doc/src/sgml/wal.sgml

Reduce the memory requirement for large ispell dictionaries.

commit   : 3e5f9412d0a818be77c974e5af710928097b91f3    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 6 Oct 2010 19:31:05 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 6 Oct 2010 19:31:05 -0400    

Click here for diff

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  

M src/backend/tsearch/spell.c
M src/include/tsearch/dicts/spell.h

Clean up temporary-memory management during ispell dictionary loading.

commit   : 9b910def24e85c1c4ff993eae0fe511271fc8682    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 6 Oct 2010 15:15:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 6 Oct 2010 15:15:15 -0400    

Click here for diff

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.  

M src/backend/tsearch/dict_ispell.c
M src/backend/tsearch/spell.c
M src/include/tsearch/dicts/spell.h

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.

commit   : bdf45797abe53a9e2bebd54e5475591e468a0ad1    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 6 Oct 2010 00:19:05 +0100    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 6 Oct 2010 00:19:05 +0100    

Click here for diff

Spotted by Bernd Helmle  

M doc/src/sgml/high-availability.sgml

Undo some poorly-thought-out "proofreading improvements". Per Tatsuhito Kasahara.

commit   : d79a1a138e5dc9bc190b907e754268e819678a2a    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 5 Oct 2010 18:48:13 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 5 Oct 2010 18:48:13 -0400    

Click here for diff

M doc/src/sgml/user-manag.sgml

Behave correctly if INSERT ... VALUES is decorated with additional clauses.

commit   : 3a13f12b3a18da0a61571cb134fdecea03a10d6f    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 20:02:27 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 20:02:27 -0400    

Click here for diff

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.  

M src/backend/parser/analyze.c

Remove excess argument to open(2).

commit   : e77f605d431c488983d6c96cb3513c691bf1907c    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 18:40:28 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 18:40:28 -0400    

Click here for diff

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  

M src/tools/fsync/test_fsync.c

Throw an appropriate error if ALTER COLUMN TYPE finds a dependent trigger.

commit   : 1f0b62e8c28026f5d1d3693087f7b4aef6a191af    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 18:21:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 2 Oct 2010 18:21:41 -0400    

Click here for diff

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.  

M src/backend/commands/tablecmds.c

Use a separate interpreter for each calling SQL userid in plperl and pltcl.

commit   : 50595b5fce2e15b5ef26b057799b4a4cdd1c10e8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 30 Sep 2010 17:18:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 30 Sep 2010 17:18:51 -0400    

Click here for diff

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  

M doc/src/sgml/installation.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml
M src/pl/plperl/plperl.c
M src/pl/tcl/pltcl.c

Adjust pg_archivecleanup docs to match message changes made 2010-06-17.

commit   : 1f0eb5de9eb56a2eb71cc538f12861b084e7b03b    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 30 Sep 2010 17:05:15 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 30 Sep 2010 17:05:15 -0400    

Click here for diff

Erik Rijkers  

M doc/src/sgml/pgarchivecleanup.sgml

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.

commit   : a5683ea0423752cca323e528cb160273ad794054    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 30 Sep 2010 14:27:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 30 Sep 2010 14:27:15 -0400    

Click here for diff

M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml

Add/fix caching on some configure checks

commit   : 804a786c958d44fdf3b2e2d4774618f919759dc8    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 29 Sep 2010 22:38:04 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 29 Sep 2010 22:38:04 +0300    

Click here for diff

M config/c-compiler.m4
M config/programs.m4
M configure
M configure.in

Update ecpglib error code listing

commit   : fe48d9471eea6a5e8f8162bfed7d8f7c264904ab    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 29 Sep 2010 13:58:35 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 29 Sep 2010 13:58:35 +0300    

Click here for diff

Satoshi Nagayasu  

M doc/src/sgml/ecpg.sgml

Have pg_upgrade use strtoul(), not strtol().

commit   : fe61db6f0ceb508357bcddc39b388e2806cf11d0    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 29 Sep 2010 02:40:25 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 29 Sep 2010 02:40:25 +0000    

Click here for diff

M contrib/pg_upgrade/util.c

Use macro atooid() for conversion of strings to oids, per suggestion from Tom.

commit   : 807005c024aa57b5af729d021263cbf179fd5121    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 22:11:17 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 22:11:17 +0000    

Click here for diff

M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c

Improve messages for too many private files/dirs. Per Alexey Parshin.

commit   : 5ac144d5c2906cc4b45423ac6575653a8df1b3d0    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 18:08:02 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 18:08:02 -0400    

Click here for diff

M src/backend/storage/file/fd.c

In pg_upgrade, properly handle oids > 2^31 by using strtoul() internally rather than atol().

commit   : 9340fb80b1dba5528c0d16b24985369659a19377    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 21:41:03 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 21:41:03 +0000    

Click here for diff

Per report from Brian Hirt  

M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/util.c

Fix leak patch that was using fclose() instead of close().

commit   : a1bb570de97c71eba3c1b7a067063e8ba28c41d5    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 21:27:32 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 21:27:32 +0000    

Click here for diff

M contrib/pg_upgrade/file.c

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.

commit   : f175884520949fbc52908d2f4b2baacde5906ebc    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 19:25:12 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 19:25:12 +0000    

Click here for diff

Per patch from Grzegorz Ja?kiewicz.  

M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/page.c

Fix another small oversight in command_no_begin patch.

commit   : 112c3fc6db62b39ded8965eddce1f4213308b957    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 14:47:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 14:47:25 -0400    

Click here for diff

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.  

M src/bin/psql/common.c

Mention that pg_upgrade requires write permission in the current directory.

commit   : ae9acb677950cf2afa037349b73fa3351d6e1d31    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 18:43:01 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 18:43:01 +0000    

Click here for diff

Per report from Harald Armin Massa.  

M doc/src/sgml/pgupgrade.sgml

Mention in pg_upgrade docs that the proper Win32 service name should be used.

commit   : 6b44b9ba56e02d63425a8d950ef141bb007745ff    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 18:32:06 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 18:32:06 +0000    

Click here for diff

Per report from Harald Armin Massa  

M doc/src/sgml/pgupgrade.sgml

Fix PlaceHolderVar mechanism's interaction with outer joins.

commit   : eb229505103eb5494c33832d422584bfdee03fc6    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 12:08:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 28 Sep 2010 12:08:56 -0400    

Click here for diff

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.  

M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/plan/analyzejoins.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/util/placeholder.c
M src/include/nodes/relation.h
M src/include/optimizer/placeholder.h
M src/test/regress/expected/join.out
M src/test/regress/sql/join.sql

Add mention of installing pg_upgrade_support in pg_upgrade doc section title, per suggestion from Ian Barwick.

commit   : 9c5f4f6cb50dd22028acc0b6f20291a5edcac62b    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 17:25:20 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 28 Sep 2010 17:25:20 +0000    

Click here for diff

M doc/src/sgml/pgupgrade.sgml

Add missing agg_type nonterminal description in new reference page.

commit   : 3bb27fb503b421dae5c5d95d75842bbc048f2fab    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 28 Sep 2010 11:24:00 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 28 Sep 2010 11:24:00 -0400    

Click here for diff

M doc/src/sgml/ref/security_label.sgml

Fix MSVC builds for dummy_seclabel breakage.

commit   : f00847dc012e9c5219ef0e8e212d173d24700275    
  
author   : Andrew Dunstan <[email protected]>    
date     : Tue, 28 Sep 2010 10:00:28 -0400    
  
committer: Andrew Dunstan <[email protected]>    
date     : Tue, 28 Sep 2010 10:00:28 -0400    

Click here for diff

M src/tools/msvc/vcregress.pl

Fix duplicate OIDs introduced by SECURITY LABEL patch.

commit   : eacb22ec476a7bc49bdb2054a76a2b27a429a295    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 28 Sep 2010 07:03:10 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 28 Sep 2010 07:03:10 -0400    

Click here for diff

Report by Shigeru Hanada.  

M src/include/catalog/catversion.h
M src/include/catalog/indexing.h
M src/include/catalog/pg_seclabel.h
M src/include/catalog/toasting.h

Only DISCARD ALL should be in the command_no_begin list. We allowes DISCARD PLANS and TEMP in a transaction.

commit   : 62b6aaa40b2abb26edf18d1cd00dffcac090f67a    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 28 Sep 2010 15:55:25 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 28 Sep 2010 15:55:25 +0900    

Click here for diff

M src/bin/psql/common.c

Add DISCARD to the command_no_begin list for AUTOCOMMIT=off. Backpatch to 8.3.

commit   : d08c698d9d47f9d004fd0bb6212ca80259e2fe9c    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 28 Sep 2010 14:20:17 +0900    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 28 Sep 2010 14:20:17 +0900    

Click here for diff

Reported by Sergey Burladyan.  

M src/bin/psql/common.c

Add a SECURITY LABEL command.

commit   : 4d355a8336e0f2265b31d678ffd1ee5cf9e79fae    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 27 Sep 2010 20:55:27 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 27 Sep 2010 20:55:27 -0400    

Click here for diff

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  

M contrib/Makefile
A contrib/dummy_seclabel/Makefile
A contrib/dummy_seclabel/dummy_seclabel.c
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/ref/allfiles.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_restore.sgml
A doc/src/sgml/ref/security_label.sgml
M doc/src/sgml/reference.sgml
M src/backend/catalog/Makefile
M src/backend/catalog/dependency.c
M src/backend/catalog/system_views.sql
M src/backend/commands/Makefile
A src/backend/commands/seclabel.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c
M src/bin/psql/tab-complete.c
M src/include/catalog/catversion.h
M src/include/catalog/indexing.h
A src/include/catalog/pg_seclabel.h
M src/include/catalog/toasting.h
A src/include/commands/seclabel.h
M src/include/nodes/nodes.h
M src/include/nodes/parsenodes.h
M src/include/parser/kwlist.h
M src/test/regress/GNUmakefile
M src/test/regress/expected/.gitignore
M src/test/regress/expected/rules.out
M src/test/regress/expected/sanity_check.out
A src/test/regress/input/security_label.source
A src/test/regress/output/security_label.source
M src/test/regress/parallel_schedule
M src/test/regress/serial_schedule
M src/test/regress/sql/.gitignore

Add "(change requires restart)" note to some postgresql.conf parameters.

commit   : 2ce003973db82205cec55d596d51e957293019d1    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 27 Sep 2010 09:14:14 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 27 Sep 2010 09:14:14 -0400    

Click here for diff

Devrim GÜNDÜZ  

M src/backend/utils/misc/postgresql.conf.sample

Improve git_changelog as per discussion with Robert Haas.

commit   : bf429cebd059764198580ca576608921e2022992    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 20:22:17 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 20:22:17 -0400    

Click here for diff

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).  

M src/tools/git_changelog

Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE

commit   : e440e12c562432a2a695b8054964fb34e3bd823e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 26 Sep 2010 14:41:03 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 26 Sep 2010 14:41:03 +0300    

Click here for diff

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

M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/create_type.sgml
M doc/src/sgml/ref/drop_type.sgml
M src/backend/commands/alter.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/tcop/utility.c
M src/bin/pg_dump/pg_dump.c
M src/bin/psql/tab-complete.c
M src/include/nodes/parsenodes.h
M src/include/parser/kwlist.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Still more tweaking of git_changelog.

commit   : 899beb78941aa955aac2e19cb82458c6f4c7dd52    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 01:51:20 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 01:51:20 -0400    

Click here for diff

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.  

M src/tools/git_changelog

Fix some more bugs in git_changelog.

commit   : 30d2e1005838c7ece353ef2ac269cfdc37e937be    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 00:21:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 26 Sep 2010 00:21:51 -0400    

Click here for diff

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.  

M src/tools/git_changelog

Minor improvements to git_changelog.

commit   : 901a5a786fa3cf107ceb11d2622cf8bb99221f3a    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 20:50:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 20:50:57 -0400    

Click here for diff

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.  

M src/tools/git_changelog

Rename git_topo_order -> git_changelog, per discussion.

commit   : ce1dcd468f8a728398424296165a8d87eb36f0d8    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 19:31:26 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 19:31:26 -0400    

Click here for diff

M src/tools/RELEASE_CHANGES
R092 src/tools/git_topo_order src/tools/git_changelog

Fix another join removal bug: the check on PlaceHolderVars was wrong.

commit   : c8c03d72e10cab3cc47975b2689c8efbb4eade94    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 19:03:50 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 25 Sep 2010 19:03:50 -0400    

Click here for diff

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.  

M src/backend/optimizer/plan/analyzejoins.c
M src/test/regress/expected/join.out
M src/test/regress/sql/join.sql

Fix man page markup for <cmdsynopsis> with multiple variants

commit   : 635de8365f0299cfa2db24c56abcfccb65d020f0    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 25 Sep 2010 09:57:09 +0300    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 25 Sep 2010 09:57:09 +0300    

Click here for diff

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  

M doc/src/sgml/ref/clusterdb.sgml
M doc/src/sgml/ref/createlang.sgml
M doc/src/sgml/ref/droplang.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/vacuumdb.sgml

In levenshtein_internal(), describe algorithm a bit more clearly.

commit   : 12679b8bc908f941710bed185aa142ad5de539c6    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 24 Sep 2010 14:35:01 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 24 Sep 2010 14:35:01 -0400    

Click here for diff

M contrib/fuzzystrmatch/fuzzystrmatch.c

Still more .gitignore cleanup.

commit   : 54c88dee46ae63d1f183ed864b624881ed05d370    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 24 Sep 2010 13:48:15 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 24 Sep 2010 13:48:15 -0400    

Click here for diff

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

M src/interfaces/ecpg/test/.gitignore
M src/interfaces/ecpg/test/compat_informix/.gitignore
M src/interfaces/ecpg/test/connect/.gitignore
M src/interfaces/ecpg/test/pgtypeslib/.gitignore
M src/interfaces/ecpg/test/preproc/.gitignore
M src/interfaces/ecpg/test/sql/.gitignore
M src/interfaces/ecpg/test/thread/.gitignore

Prevent doc/src/sgml subdirs from being created, instead of deleting them after the fact. This is a more elegant fix for bug #5595.

commit   : fde5ce4fe2286d3c66cd77db0b7116566ac7b66b    
  
author   : Alvaro Herrera <[email protected]>    
date     : Fri, 24 Sep 2010 01:32:52 -0400    
  
committer: Alvaro Herrera <[email protected]>    
date     : Fri, 24 Sep 2010 01:32:52 -0400    

Click here for diff

M config/prep_buildtree

Add contrib/xml2/pgxml.sql to .gitignore

commit   : 0a8ed2cdb4f7a34f65976a87a2b08a39df17939a    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 23 Sep 2010 22:00:26 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 23 Sep 2010 22:00:26 -0400    

Click here for diff

Kevin Grittner  

M contrib/xml2/.gitignore

Replace doc references to install-win32 with install-windows.

commit   : 3186560f46b5076feb8776ae5e600b7ea0f31852    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 23 Sep 2010 17:44:22 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 23 Sep 2010 17:44:22 -0400    

Click here for diff

Windows is not necessarily 32-bit, any more.  
  
As suggested by Mike Toews.  

M doc/src/sgml/filelist.sgml
R099 doc/src/sgml/install-win32.sgml doc/src/sgml/install-windows.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/release-9.0.sgml

ProcessIncomingNotify *must* reset notifyInterruptOccurred when called.

commit   : a959c67cb73cf7cfe8b368632062c625c0e01858    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 17:16:51 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 17:16:51 -0400    

Click here for diff

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

M src/backend/commands/async.c

Prevent show_session_authorization from crashing when session_authorization hasn't been set.

commit   : 660fbec560335292db9e05e4ad5d46437bb806bc    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 16:53:16 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 16:53:16 -0400    

Click here for diff

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.  

M src/backend/commands/variable.c

Avoid sharing subpath list structure when flattening nested AppendRels.

commit   : ee63981c1fe26299162b9c7f1218d7e3ef802409    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 15:34:56 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 15:34:56 -0400    

Click here for diff

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.  

M src/backend/optimizer/path/allpaths.c

Make _outPathInfo print the relid set of the path's parent rel.

commit   : 003788e81e7f72bc545b509e1517a672d891273b    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 15:16:49 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 15:16:49 -0400    

Click here for diff

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.  

M src/backend/nodes/outfuncs.c

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.

commit   : 7e8c25c66e9837d5dafeb2b3a0786611226af269    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 23 Sep 2010 14:49:00 +0300    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 23 Sep 2010 14:49:00 +0300    

Click here for diff

M src/bin/pg_dump/pg_dump.c

Re-allow input of Julian dates prior to 0001-01-01 AD.

commit   : 9aae81527f3174b9b6fd6366f04435310903dab2    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 23:48:07 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 23:48:07 -0400    

Click here for diff

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.  

M src/backend/utils/adt/datetime.c
M src/test/regress/expected/horology.out
M src/test/regress/sql/horology.sql

More fixes for libpq's .gitignore file.

commit   : 804b27613ba90bf67f903f114353d608e1d752d0    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 02:32:03 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 23 Sep 2010 02:32:03 -0400    

Click here for diff

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.  

M src/interfaces/libpq/.gitignore

Fix inconsistent capitalization of "PL/pgSQL".

commit   : 0c8ed2dafb13fbb41e49524190b94553ad4348a7    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 22 Sep 2010 21:57:37 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 22 Sep 2010 21:57:37 -0400    

Click here for diff

Josh Kupershmidt  

M doc/src/sgml/external-projects.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/release-old.sgml
M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Do some copy-editing on the Git usage docs.

commit   : 8687fbbe42a11d6fd4db5a89c15e5c967bd65757    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 20:22:26 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 20:22:26 -0400    

Click here for diff

M doc/src/sgml/sourcerepo.sgml

Fix remaining stray references to CVS.

commit   : 651377933e031526379cae97034d1c50cdaad28c    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 19:51:39 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 19:51:39 -0400    

Click here for diff

These are just cosmetic and don't seem worth back-patching far.  
I put them into 9.0 just because it was trivial to do so.  

M config/ac_func_accept_argtypes.m4
M config/perl.m4
M config/prep_buildtree
M config/programs.m4
M configure
M doc/src/sgml/acronyms.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/nls.sgml
M src/tools/codelines
M src/tools/msvc/Install.pm

Add assorted other documentation build targets to documentation gitignore.

commit   : cb71efe164aea6d37a938fae9d9109dbd7d7dd64    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 18:08:45 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 18:08:45 -0400    

Click here for diff

M doc/src/sgml/.gitignore

Some more gitignore cleanups: cover contrib and PL regression test outputs.

commit   : cc2c8152e624e4985660e7042960bf300bb78a39    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 17:21:53 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 22 Sep 2010 17:21:53 -0400    

Click here for diff

Also do some further work in the back branches, where quite a bit wasn't  
covered by Magnus' original back-patch.  

M contrib/btree_gin/.gitignore
M contrib/btree_gist/.gitignore
M contrib/citext/.gitignore
M contrib/cube/.gitignore
M contrib/dblink/.gitignore
M contrib/dict_int/.gitignore
M contrib/dict_xsyn/.gitignore
M contrib/earthdistance/.gitignore
M contrib/hstore/.gitignore
M contrib/intarray/.gitignore
M contrib/ltree/.gitignore
M contrib/pg_trgm/.gitignore
M contrib/pgcrypto/.gitignore
M contrib/seg/.gitignore
M contrib/tablefunc/.gitignore
M contrib/test_parser/.gitignore
M contrib/tsearch2/.gitignore
M contrib/unaccent/.gitignore
A contrib/xml2/.gitignore
M src/pl/plperl/.gitignore
A src/pl/plpython/.gitignore
A src/pl/tcl/.gitignore
A src/pl/tcl/modules/.gitignore

Add gitignore files for ecpg regression tests.

commit   : 6c137da018ad3ec52c872e0bb88c5968830e58d0    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 21:49:06 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 21:49:06 +0200    

Click here for diff

Backpatch to 8.2 as that's how far the structure looks the same.  

A src/interfaces/ecpg/test/.gitignore
A src/interfaces/ecpg/test/compat_informix/.gitignore
A src/interfaces/ecpg/test/connect/.gitignore
A src/interfaces/ecpg/test/pgtypeslib/.gitignore
A src/interfaces/ecpg/test/preproc/.gitignore
A src/interfaces/ecpg/test/sql/.gitignore
A src/interfaces/ecpg/test/thread/.gitignore

Remove anonymous cvs instructions, and replace them with instructions for git. Change other references from cvs to git as well.

commit   : 726f9ddcd1b98b1c702e54b6dc40e57982c15036    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 20:10:28 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 20:10:28 +0200    

Click here for diff

M doc/src/sgml/Makefile
M doc/src/sgml/acronyms.sgml
D doc/src/sgml/cvs.sgml
M doc/src/sgml/filelist.sgml
M doc/src/sgml/install-win32.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/postgres.sgml
M doc/src/sgml/problems.sgml
M doc/src/sgml/release.sgml
A doc/src/sgml/sourcerepo.sgml

Convert cvsignore to gitignore, and add .gitignore for build targets.

commit   : fe9b36fd59a771a98c0d33dd97039e6fc45d0f43    
  
author   : Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 12:57:04 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Wed, 22 Sep 2010 12:57:04 +0200    

Click here for diff

A .gitignore
A contrib/adminpack/.gitignore
A contrib/btree_gin/.gitignore
A contrib/btree_gist/.gitignore
A contrib/chkpass/.gitignore
A contrib/citext/.gitignore
D contrib/cube/.cvsignore
A contrib/cube/.gitignore
A contrib/dblink/.gitignore
A contrib/dict_int/.gitignore
A contrib/dict_xsyn/.gitignore
A contrib/earthdistance/.gitignore
A contrib/fuzzystrmatch/.gitignore
A contrib/hstore/.gitignore
A contrib/intarray/.gitignore
A contrib/isn/.gitignore
A contrib/lo/.gitignore
A contrib/ltree/.gitignore
A contrib/oid2name/.gitignore
A contrib/pageinspect/.gitignore
A contrib/pg_archivecleanup/.gitignore
A contrib/pg_buffercache/.gitignore
A contrib/pg_freespacemap/.gitignore
A contrib/pg_standby/.gitignore
A contrib/pg_stat_statements/.gitignore
A contrib/pg_trgm/.gitignore
A contrib/pg_upgrade/.gitignore
A contrib/pgbench/.gitignore
A contrib/pgcrypto/.gitignore
A contrib/pgrowlocks/.gitignore
A contrib/pgstattuple/.gitignore
D contrib/seg/.cvsignore
A contrib/seg/.gitignore
A contrib/spi/.gitignore
A contrib/sslinfo/.gitignore
A contrib/tablefunc/.gitignore
A contrib/test_parser/.gitignore
A contrib/tsearch2/.gitignore
A contrib/unaccent/.gitignore
A contrib/vacuumlo/.gitignore
D doc/src/sgml/.cvsignore
A doc/src/sgml/.gitignore
A src/.gitignore
A src/backend/.gitignore
D src/backend/bootstrap/.cvsignore
A src/backend/bootstrap/.gitignore
D src/backend/catalog/.cvsignore
A src/backend/catalog/.gitignore
D src/backend/parser/.cvsignore
A src/backend/parser/.gitignore
A src/backend/port/.gitignore
A src/backend/snowball/.gitignore
D src/backend/utils/.cvsignore
A src/backend/utils/.gitignore
A src/backend/utils/mb/conversion_procs/.gitignore
D src/backend/utils/misc/.cvsignore
A src/backend/utils/misc/.gitignore
A src/bin/initdb/.gitignore
A src/bin/pg_config/.gitignore
A src/bin/pg_controldata/.gitignore
A src/bin/pg_ctl/.gitignore
A src/bin/pg_dump/.gitignore
A src/bin/pg_resetxlog/.gitignore
D src/bin/psql/.cvsignore
A src/bin/psql/.gitignore
A src/bin/scripts/.gitignore
A src/include/.gitignore
A src/include/catalog/.gitignore
A src/include/parser/.gitignore
A src/include/utils/.gitignore
D src/interfaces/ecpg/compatlib/.cvsignore
A src/interfaces/ecpg/compatlib/.gitignore
D src/interfaces/ecpg/ecpglib/.cvsignore
A src/interfaces/ecpg/ecpglib/.gitignore
A src/interfaces/ecpg/include/.gitignore
D src/interfaces/ecpg/pgtypeslib/.cvsignore
A src/interfaces/ecpg/pgtypeslib/.gitignore
D src/interfaces/ecpg/preproc/.cvsignore
A src/interfaces/ecpg/preproc/.gitignore
D src/interfaces/libpq/.cvsignore
A src/interfaces/libpq/.gitignore
A src/pl/plperl/.gitignore
D src/pl/plpgsql/src/.cvsignore
A src/pl/plpgsql/src/.gitignore
A src/port/.gitignore
A src/test/regress/.gitignore
A src/test/regress/expected/.gitignore
A src/test/regress/sql/.gitignore
A src/timezone/.gitignore

Typo fix. "CVS" is not the same thing as "CSV".

commit   : 01003ec3bcd78a261e9b017837c961a96024abd4    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 22 Sep 2010 06:37:46 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 22 Sep 2010 06:37:46 -0400    

Click here for diff

M src/backend/commands/copy.c

pgcvslog isn't useful anymore, either.

commit   : 38d78b0f412cd11999de836920ee013ccb038c65    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:45:55 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:45:55 -0400    

Click here for diff

See git_topo_order instead.  

D src/tools/pgcvslog

add_cvs_markers isn't useful anymore.

commit   : 7dcc4e75d50139fa71e1e2c7b475d13c3499741f    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:40:24 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:40:24 -0400    

Click here for diff

D src/tools/add_cvs_markers

Some more cleanup of CVS keyword noise.

commit   : 538d685a1a266e2149587bf895d1b494afd37bd3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:18:57 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 17:18:57 -0400    

Click here for diff

Poking around for remaining occurrences of CVS keyword strings, I came  
across one that apparently reflects the use of a $Revision: ...$ string  
in the original input data.  Dunno why anybody would be using that in  
an MTA's Received: lines, but there it is.  Put it back to the way that  
it was originally, according to inspection of the CVS repo.  

M src/backend/optimizer/plan/README

commit   : a6d4089d49a151496f6c26bf3537053aacd7f949    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 16:53:25 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 16:53:25 -0400    

Click here for diff

Not sure why these symlinks are removed here and not in the port/  
Makefile, but I won't second-guess that choice right now.  

M src/backend/Makefile

Fix a missed explanation of auto-analyze threshold, per Joe Miller.

commit   : 2cdf6c155110cd068933e3be71f2af747e648fb0    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 16:40:41 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 16:40:41 -0400    

Click here for diff

M doc/src/sgml/maintenance.sgml

Trivial typo fix.

commit   : eacc4a3b9a7ea8a2608cb95981646f947efed625    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 14:16:00 -0400    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 21 Sep 2010 14:16:00 -0400    

Click here for diff

M README.git

Remove various mentions of CVS from src/tools/RELEASE_CHANGES.

commit   : 8f00f73dc240a034668023f6d1ab18695bb1be32    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Sep 2010 00:25:07 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Sep 2010 00:25:07 -0400    

Click here for diff

M src/tools/RELEASE_CHANGES

git_topo_order script, to match up commits across branches.

commit   : 1b984d43e54a969da26277d913a41ffd5ccfc1e8    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 21 Sep 2010 00:18:20 -0400    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 21 Sep 2010 00:18:20 -0400    

Click here for diff

This script is intended to substitute for cvs2cl in generating release  
notes and scrutinizing what got back-patched to which branches.  
  
Script by me.  Support for --since by Alex Hunsaker.  

A src/tools/git_topo_order

Rename README.CVS to README.git and change references in it.

commit   : 397761827aa3a3ac95b8a60dd21900f7bae88f05    
  
author   : Magnus Hagander <[email protected]>    
date     : Tue, 21 Sep 2010 12:40:16 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Tue, 21 Sep 2010 12:40:16 +0200    

Click here for diff

M GNUmakefile.in
R073 README.CVS README.git

Remove cvs keywords from all files.

commit   : 9f2e211386931f7aee48ffbc2fcaef1632d8329f    
  
author   : Magnus Hagander <[email protected]>    
date     : Mon, 20 Sep 2010 22:08:53 +0200    
  
committer: Magnus Hagander <[email protected]>    
date     : Mon, 20 Sep 2010 22:08:53 +0200    

Click here for diff

M GNUmakefile.in
M aclocal.m4
M config/Makefile
M config/ac_func_accept_argtypes.m4
M config/c-compiler.m4
M config/c-library.m4
M config/docbook.m4
M config/general.m4
M config/install-sh
M config/missing
M config/perl.m4
M config/programs.m4
M config/python.m4
M config/tcl.m4
M configure.in
M contrib/Makefile
M contrib/adminpack/Makefile
M contrib/adminpack/adminpack.c
M contrib/adminpack/adminpack.sql.in
M contrib/adminpack/uninstall_adminpack.sql
M contrib/auto_explain/Makefile
M contrib/auto_explain/auto_explain.c
M contrib/btree_gin/Makefile
M contrib/btree_gin/btree_gin.c
M contrib/btree_gin/btree_gin.sql.in
M contrib/btree_gin/uninstall_btree_gin.sql
M contrib/btree_gist/Makefile
M contrib/btree_gist/btree_bit.c
M contrib/btree_gist/btree_bytea.c
M contrib/btree_gist/btree_cash.c
M contrib/btree_gist/btree_date.c
M contrib/btree_gist/btree_float4.c
M contrib/btree_gist/btree_float8.c
M contrib/btree_gist/btree_gist.c
M contrib/btree_gist/btree_gist.h
M contrib/btree_gist/btree_gist.sql.in
M contrib/btree_gist/btree_inet.c
M contrib/btree_gist/btree_int2.c
M contrib/btree_gist/btree_int4.c
M contrib/btree_gist/btree_int8.c
M contrib/btree_gist/btree_interval.c
M contrib/btree_gist/btree_macaddr.c
M contrib/btree_gist/btree_numeric.c
M contrib/btree_gist/btree_oid.c
M contrib/btree_gist/btree_text.c
M contrib/btree_gist/btree_time.c
M contrib/btree_gist/btree_ts.c
M contrib/btree_gist/btree_utils_num.c
M contrib/btree_gist/btree_utils_num.h
M contrib/btree_gist/btree_utils_var.c
M contrib/btree_gist/btree_utils_var.h
M contrib/btree_gist/uninstall_btree_gist.sql
M contrib/chkpass/Makefile
M contrib/chkpass/chkpass.c
M contrib/chkpass/chkpass.sql.in
M contrib/chkpass/uninstall_chkpass.sql
M contrib/citext/Makefile
M contrib/citext/citext.c
M contrib/citext/citext.sql.in
M contrib/citext/uninstall_citext.sql
M contrib/contrib-global.mk
M contrib/cube/Makefile
M contrib/cube/cube.c
M contrib/cube/cube.sql.in
M contrib/cube/cubedata.h
M contrib/cube/cubeparse.y
M contrib/cube/cubescan.l
M contrib/cube/uninstall_cube.sql
M contrib/dblink/Makefile
M contrib/dblink/dblink.c
M contrib/dblink/dblink.h
M contrib/dblink/dblink.sql.in
M contrib/dblink/uninstall_dblink.sql
M contrib/dict_int/Makefile
M contrib/dict_int/dict_int.c
M contrib/dict_int/dict_int.sql.in
M contrib/dict_int/uninstall_dict_int.sql
M contrib/dict_xsyn/Makefile
M contrib/dict_xsyn/dict_xsyn.c
M contrib/dict_xsyn/dict_xsyn.sql.in
M contrib/dict_xsyn/uninstall_dict_xsyn.sql
M contrib/earthdistance/Makefile
M contrib/earthdistance/earthdistance.c
M contrib/earthdistance/earthdistance.sql.in
M contrib/earthdistance/uninstall_earthdistance.sql
M contrib/fuzzystrmatch/Makefile
M contrib/fuzzystrmatch/dmetaphone.c
M contrib/fuzzystrmatch/fuzzystrmatch.c
M contrib/fuzzystrmatch/fuzzystrmatch.sql.in
M contrib/fuzzystrmatch/uninstall_fuzzystrmatch.sql
M contrib/hstore/Makefile
M contrib/hstore/crc32.c
M contrib/hstore/crc32.h
M contrib/hstore/hstore.h
M contrib/hstore/hstore.sql.in
M contrib/hstore/hstore_compat.c
M contrib/hstore/hstore_gin.c
M contrib/hstore/hstore_gist.c
M contrib/hstore/hstore_io.c
M contrib/hstore/hstore_op.c
M contrib/hstore/uninstall_hstore.sql
M contrib/intagg/Makefile
M contrib/intagg/int_aggregate.sql
M contrib/intagg/uninstall_int_aggregate.sql
M contrib/intarray/Makefile
M contrib/intarray/_int.h
M contrib/intarray/_int.sql.in
M contrib/intarray/_int_bool.c
M contrib/intarray/_int_gin.c
M contrib/intarray/_int_gist.c
M contrib/intarray/_int_op.c
M contrib/intarray/_int_tool.c
M contrib/intarray/_intbig_gist.c
M contrib/intarray/bench/create_test.pl
M contrib/intarray/uninstall__int.sql
M contrib/isn/EAN13.h
M contrib/isn/ISBN.h
M contrib/isn/ISMN.h
M contrib/isn/ISSN.h
M contrib/isn/Makefile
M contrib/isn/UPC.h
M contrib/isn/isn.c
M contrib/isn/isn.h
M contrib/isn/isn.sql.in
M contrib/isn/uninstall_isn.sql
M contrib/lo/Makefile
M contrib/lo/lo.c
M contrib/lo/lo.sql.in
M contrib/lo/lo_test.sql
M contrib/lo/uninstall_lo.sql
M contrib/ltree/Makefile
M contrib/ltree/_ltree_gist.c
M contrib/ltree/_ltree_op.c
M contrib/ltree/crc32.c
M contrib/ltree/crc32.h
M contrib/ltree/lquery_op.c
M contrib/ltree/ltree.h
M contrib/ltree/ltree.sql.in
M contrib/ltree/ltree_gist.c
M contrib/ltree/ltree_io.c
M contrib/ltree/ltree_op.c
M contrib/ltree/ltreetest.sql
M contrib/ltree/ltxtquery_io.c
M contrib/ltree/ltxtquery_op.c
M contrib/ltree/uninstall_ltree.sql
M contrib/oid2name/Makefile
M contrib/oid2name/oid2name.c
M contrib/pageinspect/Makefile
M contrib/pageinspect/btreefuncs.c
M contrib/pageinspect/fsmfuncs.c
M contrib/pageinspect/heapfuncs.c
M contrib/pageinspect/pageinspect.sql.in
M contrib/pageinspect/rawpage.c
M contrib/pageinspect/uninstall_pageinspect.sql
M contrib/passwordcheck/Makefile
M contrib/passwordcheck/passwordcheck.c
M contrib/pg_archivecleanup/Makefile
M contrib/pg_archivecleanup/pg_archivecleanup.c
M contrib/pg_buffercache/Makefile
M contrib/pg_buffercache/pg_buffercache.sql.in
M contrib/pg_buffercache/pg_buffercache_pages.c
M contrib/pg_buffercache/uninstall_pg_buffercache.sql
M contrib/pg_freespacemap/Makefile
M contrib/pg_freespacemap/pg_freespacemap.c
M contrib/pg_freespacemap/pg_freespacemap.sql.in
M contrib/pg_freespacemap/uninstall_pg_freespacemap.sql
M contrib/pg_standby/Makefile
M contrib/pg_standby/pg_standby.c
M contrib/pg_stat_statements/Makefile
M contrib/pg_stat_statements/pg_stat_statements.c
M contrib/pg_stat_statements/pg_stat_statements.sql.in
M contrib/pg_stat_statements/uninstall_pg_stat_statements.sql
M contrib/pg_trgm/Makefile
M contrib/pg_trgm/pg_trgm.sql.in
M contrib/pg_trgm/trgm.h
M contrib/pg_trgm/trgm_gin.c
M contrib/pg_trgm/trgm_gist.c
M contrib/pg_trgm/trgm_op.c
M contrib/pg_trgm/uninstall_pg_trgm.sql
M contrib/pg_upgrade/IMPLEMENTATION
M contrib/pg_upgrade/Makefile
M contrib/pg_upgrade/TESTING
M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/controldata.c
M contrib/pg_upgrade/dump.c
M contrib/pg_upgrade/exec.c
M contrib/pg_upgrade/file.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/info.c
M contrib/pg_upgrade/option.c
M contrib/pg_upgrade/page.c
M contrib/pg_upgrade/pg_upgrade.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/relfilenode.c
M contrib/pg_upgrade/server.c
M contrib/pg_upgrade/tablespace.c
M contrib/pg_upgrade/util.c
M contrib/pg_upgrade/version.c
M contrib/pg_upgrade/version_old_8_3.c
M contrib/pg_upgrade_support/Makefile
M contrib/pg_upgrade_support/pg_upgrade_support.c
M contrib/pgbench/Makefile
M contrib/pgbench/pgbench.c
M contrib/pgcrypto/Makefile
M contrib/pgcrypto/blf.c
M contrib/pgcrypto/blf.h
M contrib/pgcrypto/crypt-blowfish.c
M contrib/pgcrypto/crypt-des.c
M contrib/pgcrypto/crypt-gensalt.c
M contrib/pgcrypto/crypt-md5.c
M contrib/pgcrypto/fortuna.c
M contrib/pgcrypto/fortuna.h
M contrib/pgcrypto/imath.c
M contrib/pgcrypto/imath.h
M contrib/pgcrypto/internal-sha2.c
M contrib/pgcrypto/internal.c
M contrib/pgcrypto/mbuf.c
M contrib/pgcrypto/mbuf.h
M contrib/pgcrypto/md5.c
M contrib/pgcrypto/md5.h
M contrib/pgcrypto/openssl.c
M contrib/pgcrypto/pgcrypto.c
M contrib/pgcrypto/pgcrypto.h
M contrib/pgcrypto/pgcrypto.sql.in
M contrib/pgcrypto/pgp-armor.c
M contrib/pgcrypto/pgp-cfb.c
M contrib/pgcrypto/pgp-compress.c
M contrib/pgcrypto/pgp-decrypt.c
M contrib/pgcrypto/pgp-encrypt.c
M contrib/pgcrypto/pgp-info.c
M contrib/pgcrypto/pgp-mpi-internal.c
M contrib/pgcrypto/pgp-mpi-openssl.c
M contrib/pgcrypto/pgp-mpi.c
M contrib/pgcrypto/pgp-pgsql.c
M contrib/pgcrypto/pgp-pubdec.c
M contrib/pgcrypto/pgp-pubenc.c
M contrib/pgcrypto/pgp-pubkey.c
M contrib/pgcrypto/pgp-s2k.c
M contrib/pgcrypto/pgp.c
M contrib/pgcrypto/pgp.h
M contrib/pgcrypto/px-crypt.c
M contrib/pgcrypto/px-crypt.h
M contrib/pgcrypto/px-hmac.c
M contrib/pgcrypto/px.c
M contrib/pgcrypto/px.h
M contrib/pgcrypto/random.c
M contrib/pgcrypto/rijndael.c
M contrib/pgcrypto/rijndael.h
M contrib/pgcrypto/sha1.c
M contrib/pgcrypto/sha1.h
M contrib/pgcrypto/sha2.c
M contrib/pgcrypto/sha2.h
M contrib/pgcrypto/uninstall_pgcrypto.sql
M contrib/pgrowlocks/Makefile
M contrib/pgrowlocks/pgrowlocks.c
M contrib/pgrowlocks/pgrowlocks.sql.in
M contrib/pgrowlocks/uninstall_pgrowlocks.sql
M contrib/pgstattuple/Makefile
M contrib/pgstattuple/pgstatindex.c
M contrib/pgstattuple/pgstattuple.c
M contrib/pgstattuple/pgstattuple.sql.in
M contrib/pgstattuple/uninstall_pgstattuple.sql
M contrib/seg/Makefile
M contrib/seg/seg.c
M contrib/seg/seg.sql.in
M contrib/seg/segdata.h
M contrib/seg/uninstall_seg.sql
M contrib/spi/Makefile
M contrib/spi/autoinc.c
M contrib/spi/autoinc.sql.in
M contrib/spi/insert_username.c
M contrib/spi/insert_username.sql.in
M contrib/spi/moddatetime.c
M contrib/spi/moddatetime.sql.in
M contrib/spi/refint.c
M contrib/spi/refint.sql.in
M contrib/spi/timetravel.c
M contrib/spi/timetravel.sql.in
M contrib/sslinfo/Makefile
M contrib/sslinfo/sslinfo.c
M contrib/sslinfo/sslinfo.sql.in
M contrib/sslinfo/uninstall_sslinfo.sql
M contrib/start-scripts/freebsd
M contrib/start-scripts/linux
M contrib/tablefunc/Makefile
M contrib/tablefunc/tablefunc.c
M contrib/tablefunc/tablefunc.h
M contrib/tablefunc/tablefunc.sql.in
M contrib/tablefunc/uninstall_tablefunc.sql
M contrib/test_parser/Makefile
M contrib/test_parser/test_parser.c
M contrib/test_parser/test_parser.sql.in
M contrib/test_parser/uninstall_test_parser.sql
M contrib/tsearch2/Makefile
M contrib/tsearch2/tsearch2.c
M contrib/tsearch2/tsearch2.sql.in
M contrib/tsearch2/uninstall_tsearch2.sql
M contrib/unaccent/Makefile
M contrib/unaccent/unaccent.c
M contrib/unaccent/unaccent.sql.in
M contrib/unaccent/uninstall_unaccent.sql
M contrib/uuid-ossp/Makefile
M contrib/uuid-ossp/uninstall_uuid-ossp.sql
M contrib/uuid-ossp/uuid-ossp.c
M contrib/uuid-ossp/uuid-ossp.sql.in
M contrib/vacuumlo/Makefile
M contrib/vacuumlo/vacuumlo.c
M contrib/xml2/Makefile
M contrib/xml2/pgxml.sql.in
M contrib/xml2/uninstall_pgxml.sql
M contrib/xml2/xpath.c
M contrib/xml2/xslt_proc.c
M doc/Makefile
M doc/src/Makefile
M doc/src/sgml/Makefile
M doc/src/sgml/README.links
M doc/src/sgml/acronyms.sgml
M doc/src/sgml/adminpack.sgml
M doc/src/sgml/advanced.sgml
M doc/src/sgml/arch-dev.sgml
M doc/src/sgml/array.sgml
M doc/src/sgml/auto-explain.sgml
M doc/src/sgml/backup.sgml
M doc/src/sgml/biblio.sgml
M doc/src/sgml/bki.sgml
M doc/src/sgml/btree-gin.sgml
M doc/src/sgml/btree-gist.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/charset.sgml
M doc/src/sgml/chkpass.sgml
M doc/src/sgml/citext.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/contacts.sgml
M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/contrib.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/cvs.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/datetime.sgml
M doc/src/sgml/dblink.sgml
M doc/src/sgml/ddl.sgml
M doc/src/sgml/dfunc.sgml
M doc/src/sgml/dict-int.sgml
M doc/src/sgml/dict-xsyn.sgml
M doc/src/sgml/diskusage.sgml
M doc/src/sgml/dml.sgml
M doc/src/sgml/docguide.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/errcodes.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/features.sgml
M doc/src/sgml/filelist.sgml
M doc/src/sgml/fixrtf
M doc/src/sgml/func.sgml
M doc/src/sgml/fuzzystrmatch.sgml
M doc/src/sgml/generate_history.pl
M doc/src/sgml/geqo.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/gist.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/history.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/indices.sgml
M doc/src/sgml/info.sgml
M doc/src/sgml/information_schema.sgml
M doc/src/sgml/install-win32.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/intagg.sgml
M doc/src/sgml/intarray.sgml
M doc/src/sgml/intro.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/jadetex.cfg
M doc/src/sgml/keywords.sgml
M doc/src/sgml/legal.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/lo.sgml
M doc/src/sgml/lobj.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/maintenance.sgml
M doc/src/sgml/manage-ag.sgml
M doc/src/sgml/mk_feature_tables.pl
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/nls.sgml
M doc/src/sgml/notation.sgml
M doc/src/sgml/oid2name.sgml
M doc/src/sgml/pageinspect.sgml
M doc/src/sgml/passwordcheck.sgml
M doc/src/sgml/perform.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgbench.sgml
M doc/src/sgml/pgbuffercache.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgfreespacemap.sgml
M doc/src/sgml/pgrowlocks.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/pgstatstatements.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/planstats.sgml
M doc/src/sgml/plhandler.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/postgres.sgml
M doc/src/sgml/problems.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/query.sgml
M doc/src/sgml/recovery-config.sgml
M doc/src/sgml/ref/abort.sgml
M doc/src/sgml/ref/allfiles.sgml
M doc/src/sgml/ref/alter_aggregate.sgml
M doc/src/sgml/ref/alter_conversion.sgml
M doc/src/sgml/ref/alter_database.sgml
M doc/src/sgml/ref/alter_default_privileges.sgml
M doc/src/sgml/ref/alter_domain.sgml
M doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
M doc/src/sgml/ref/alter_function.sgml
M doc/src/sgml/ref/alter_group.sgml
M doc/src/sgml/ref/alter_index.sgml
M doc/src/sgml/ref/alter_language.sgml
M doc/src/sgml/ref/alter_large_object.sgml
M doc/src/sgml/ref/alter_opclass.sgml
M doc/src/sgml/ref/alter_operator.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/alter_role.sgml
M doc/src/sgml/ref/alter_schema.sgml
M doc/src/sgml/ref/alter_sequence.sgml
M doc/src/sgml/ref/alter_server.sgml
M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/alter_tablespace.sgml
M doc/src/sgml/ref/alter_trigger.sgml
M doc/src/sgml/ref/alter_tsconfig.sgml
M doc/src/sgml/ref/alter_tsdictionary.sgml
M doc/src/sgml/ref/alter_tsparser.sgml
M doc/src/sgml/ref/alter_tstemplate.sgml
M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/alter_user.sgml
M doc/src/sgml/ref/alter_user_mapping.sgml
M doc/src/sgml/ref/alter_view.sgml
M doc/src/sgml/ref/analyze.sgml
M doc/src/sgml/ref/begin.sgml
M doc/src/sgml/ref/checkpoint.sgml
M doc/src/sgml/ref/close.sgml
M doc/src/sgml/ref/cluster.sgml
M doc/src/sgml/ref/clusterdb.sgml
M doc/src/sgml/ref/comment.sgml
M doc/src/sgml/ref/commit.sgml
M doc/src/sgml/ref/commit_prepared.sgml
M doc/src/sgml/ref/copy.sgml
M doc/src/sgml/ref/create_aggregate.sgml
M doc/src/sgml/ref/create_cast.sgml
M doc/src/sgml/ref/create_constraint.sgml
M doc/src/sgml/ref/create_conversion.sgml
M doc/src/sgml/ref/create_database.sgml
M doc/src/sgml/ref/create_domain.sgml
M doc/src/sgml/ref/create_foreign_data_wrapper.sgml
M doc/src/sgml/ref/create_function.sgml
M doc/src/sgml/ref/create_group.sgml
M doc/src/sgml/ref/create_index.sgml
M doc/src/sgml/ref/create_language.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/ref/create_operator.sgml
M doc/src/sgml/ref/create_opfamily.sgml
M doc/src/sgml/ref/create_role.sgml
M doc/src/sgml/ref/create_rule.sgml
M doc/src/sgml/ref/create_schema.sgml
M doc/src/sgml/ref/create_sequence.sgml
M doc/src/sgml/ref/create_server.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_table_as.sgml
M doc/src/sgml/ref/create_tablespace.sgml
M doc/src/sgml/ref/create_trigger.sgml
M doc/src/sgml/ref/create_tsconfig.sgml
M doc/src/sgml/ref/create_tsdictionary.sgml
M doc/src/sgml/ref/create_tsparser.sgml
M doc/src/sgml/ref/create_tstemplate.sgml
M doc/src/sgml/ref/create_type.sgml
M doc/src/sgml/ref/create_user.sgml
M doc/src/sgml/ref/create_user_mapping.sgml
M doc/src/sgml/ref/create_view.sgml
M doc/src/sgml/ref/createdb.sgml
M doc/src/sgml/ref/createlang.sgml
M doc/src/sgml/ref/createuser.sgml
M doc/src/sgml/ref/deallocate.sgml
M doc/src/sgml/ref/declare.sgml
M doc/src/sgml/ref/delete.sgml
M doc/src/sgml/ref/discard.sgml
M doc/src/sgml/ref/do.sgml
M doc/src/sgml/ref/drop_aggregate.sgml
M doc/src/sgml/ref/drop_cast.sgml
M doc/src/sgml/ref/drop_conversion.sgml
M doc/src/sgml/ref/drop_database.sgml
M doc/src/sgml/ref/drop_domain.sgml
M doc/src/sgml/ref/drop_foreign_data_wrapper.sgml
M doc/src/sgml/ref/drop_function.sgml
M doc/src/sgml/ref/drop_group.sgml
M doc/src/sgml/ref/drop_index.sgml
M doc/src/sgml/ref/drop_language.sgml
M doc/src/sgml/ref/drop_opclass.sgml
M doc/src/sgml/ref/drop_operator.sgml
M doc/src/sgml/ref/drop_opfamily.sgml
M doc/src/sgml/ref/drop_owned.sgml
M doc/src/sgml/ref/drop_role.sgml
M doc/src/sgml/ref/drop_rule.sgml
M doc/src/sgml/ref/drop_schema.sgml
M doc/src/sgml/ref/drop_sequence.sgml
M doc/src/sgml/ref/drop_server.sgml
M doc/src/sgml/ref/drop_table.sgml
M doc/src/sgml/ref/drop_tablespace.sgml
M doc/src/sgml/ref/drop_trigger.sgml
M doc/src/sgml/ref/drop_tsconfig.sgml
M doc/src/sgml/ref/drop_tsdictionary.sgml
M doc/src/sgml/ref/drop_tsparser.sgml
M doc/src/sgml/ref/drop_tstemplate.sgml
M doc/src/sgml/ref/drop_type.sgml
M doc/src/sgml/ref/drop_user.sgml
M doc/src/sgml/ref/drop_user_mapping.sgml
M doc/src/sgml/ref/drop_view.sgml
M doc/src/sgml/ref/dropdb.sgml
M doc/src/sgml/ref/droplang.sgml
M doc/src/sgml/ref/dropuser.sgml
M doc/src/sgml/ref/ecpg-ref.sgml
M doc/src/sgml/ref/end.sgml
M doc/src/sgml/ref/execute.sgml
M doc/src/sgml/ref/explain.sgml
M doc/src/sgml/ref/fetch.sgml
M doc/src/sgml/ref/grant.sgml
M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/insert.sgml
M doc/src/sgml/ref/listen.sgml
M doc/src/sgml/ref/load.sgml
M doc/src/sgml/ref/lock.sgml
M doc/src/sgml/ref/move.sgml
M doc/src/sgml/ref/notify.sgml
M doc/src/sgml/ref/pg_config-ref.sgml
M doc/src/sgml/ref/pg_controldata.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_resetxlog.sgml
M doc/src/sgml/ref/pg_restore.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/ref/postmaster.sgml
M doc/src/sgml/ref/prepare.sgml
M doc/src/sgml/ref/prepare_transaction.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/ref/reassign_owned.sgml
M doc/src/sgml/ref/reindex.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/release_savepoint.sgml
M doc/src/sgml/ref/reset.sgml
M doc/src/sgml/ref/revoke.sgml
M doc/src/sgml/ref/rollback.sgml
M doc/src/sgml/ref/rollback_prepared.sgml
M doc/src/sgml/ref/rollback_to.sgml
M doc/src/sgml/ref/savepoint.sgml
M doc/src/sgml/ref/select.sgml
M doc/src/sgml/ref/select_into.sgml
M doc/src/sgml/ref/set.sgml
M doc/src/sgml/ref/set_constraints.sgml
M doc/src/sgml/ref/set_role.sgml
M doc/src/sgml/ref/set_session_auth.sgml
M doc/src/sgml/ref/set_transaction.sgml
M doc/src/sgml/ref/show.sgml
M doc/src/sgml/ref/start_transaction.sgml
M doc/src/sgml/ref/truncate.sgml
M doc/src/sgml/ref/unlisten.sgml
M doc/src/sgml/ref/update.sgml
M doc/src/sgml/ref/vacuum.sgml
M doc/src/sgml/ref/vacuumdb.sgml
M doc/src/sgml/ref/values.sgml
M doc/src/sgml/reference.sgml
M doc/src/sgml/regress.sgml
M doc/src/sgml/release-7.4.sgml
M doc/src/sgml/release-8.0.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-8.2.sgml
M doc/src/sgml/release-8.3.sgml
M doc/src/sgml/release-8.4.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/release-9.1.sgml
M doc/src/sgml/release-alpha.sgml
M doc/src/sgml/release-old.sgml
M doc/src/sgml/release.sgml
M doc/src/sgml/rowtypes.sgml
M doc/src/sgml/rules.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/sources.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/sql.sgml
M doc/src/sgml/sslinfo.sgml
M doc/src/sgml/standalone-install.sgml
M doc/src/sgml/start.sgml
M doc/src/sgml/storage.sgml
M doc/src/sgml/stylesheet.css
M doc/src/sgml/stylesheet.dsl
M doc/src/sgml/syntax.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/test-parser.sgml
M doc/src/sgml/textsearch.sgml
M doc/src/sgml/trigger.sgml
M doc/src/sgml/tsearch2.sgml
M doc/src/sgml/typeconv.sgml
M doc/src/sgml/unaccent.sgml
M doc/src/sgml/user-manag.sgml
M doc/src/sgml/uuid-ossp.sgml
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xaggr.sgml
M doc/src/sgml/xfunc.sgml
M doc/src/sgml/xindex.sgml
M doc/src/sgml/xml2.sgml
M doc/src/sgml/xoper.sgml
M doc/src/sgml/xplang.sgml
M doc/src/sgml/xtypes.sgml
M src/Makefile
M src/Makefile.global.in
M src/Makefile.shlib
M src/backend/Makefile
M src/backend/access/Makefile
M src/backend/access/common/Makefile
M src/backend/access/common/heaptuple.c
M src/backend/access/common/indextuple.c
M src/backend/access/common/printtup.c
M src/backend/access/common/reloptions.c
M src/backend/access/common/scankey.c
M src/backend/access/common/tupconvert.c
M src/backend/access/common/tupdesc.c
M src/backend/access/gin/Makefile
M src/backend/access/gin/README
M src/backend/access/gin/ginarrayproc.c
M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/gindatapage.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/ginget.c
M src/backend/access/gin/gininsert.c
M src/backend/access/gin/ginscan.c
M src/backend/access/gin/ginutil.c
M src/backend/access/gin/ginvacuum.c
M src/backend/access/gin/ginxlog.c
M src/backend/access/gist/Makefile
M src/backend/access/gist/README
M src/backend/access/gist/gist.c
M src/backend/access/gist/gistget.c
M src/backend/access/gist/gistproc.c
M src/backend/access/gist/gistscan.c
M src/backend/access/gist/gistsplit.c
M src/backend/access/gist/gistutil.c
M src/backend/access/gist/gistvacuum.c
M src/backend/access/gist/gistxlog.c
M src/backend/access/hash/Makefile
M src/backend/access/hash/README
M src/backend/access/hash/hash.c
M src/backend/access/hash/hashfunc.c
M src/backend/access/hash/hashinsert.c
M src/backend/access/hash/hashovfl.c
M src/backend/access/hash/hashpage.c
M src/backend/access/hash/hashscan.c
M src/backend/access/hash/hashsearch.c
M src/backend/access/hash/hashsort.c
M src/backend/access/hash/hashutil.c
M src/backend/access/heap/Makefile
M src/backend/access/heap/README.HOT
M src/backend/access/heap/heapam.c
M src/backend/access/heap/hio.c
M src/backend/access/heap/pruneheap.c
M src/backend/access/heap/rewriteheap.c
M src/backend/access/heap/syncscan.c
M src/backend/access/heap/tuptoaster.c
M src/backend/access/heap/visibilitymap.c
M src/backend/access/index/Makefile
M src/backend/access/index/genam.c
M src/backend/access/index/indexam.c
M src/backend/access/nbtree/Makefile
M src/backend/access/nbtree/README
M src/backend/access/nbtree/nbtcompare.c
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c
M src/backend/access/nbtree/nbtree.c
M src/backend/access/nbtree/nbtsearch.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtutils.c
M src/backend/access/nbtree/nbtxlog.c
M src/backend/access/transam/Makefile
M src/backend/access/transam/README
M src/backend/access/transam/clog.c
M src/backend/access/transam/multixact.c
M src/backend/access/transam/rmgr.c
M src/backend/access/transam/slru.c
M src/backend/access/transam/subtrans.c
M src/backend/access/transam/transam.c
M src/backend/access/transam/twophase.c
M src/backend/access/transam/twophase_rmgr.c
M src/backend/access/transam/varsup.c
M src/backend/access/transam/xact.c
M src/backend/access/transam/xlog.c
M src/backend/access/transam/xlogutils.c
M src/backend/bootstrap/Makefile
M src/backend/bootstrap/bootparse.y
M src/backend/bootstrap/bootscanner.l
M src/backend/bootstrap/bootstrap.c
M src/backend/catalog/Catalog.pm
M src/backend/catalog/Makefile
M src/backend/catalog/README
M src/backend/catalog/aclchk.c
M src/backend/catalog/catalog.c
M src/backend/catalog/dependency.c
M src/backend/catalog/genbki.pl
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/indexing.c
M src/backend/catalog/information_schema.sql
M src/backend/catalog/namespace.c
M src/backend/catalog/objectaddress.c
M src/backend/catalog/pg_aggregate.c
M src/backend/catalog/pg_constraint.c
M src/backend/catalog/pg_conversion.c
M src/backend/catalog/pg_db_role_setting.c
M src/backend/catalog/pg_depend.c
M src/backend/catalog/pg_enum.c
M src/backend/catalog/pg_inherits.c
M src/backend/catalog/pg_largeobject.c
M src/backend/catalog/pg_namespace.c
M src/backend/catalog/pg_operator.c
M src/backend/catalog/pg_proc.c
M src/backend/catalog/pg_shdepend.c
M src/backend/catalog/pg_type.c
M src/backend/catalog/storage.c
M src/backend/catalog/system_views.sql
M src/backend/catalog/toasting.c
M src/backend/commands/Makefile
M src/backend/commands/aggregatecmds.c
M src/backend/commands/alter.c
M src/backend/commands/analyze.c
M src/backend/commands/async.c
M src/backend/commands/cluster.c
M src/backend/commands/comment.c
M src/backend/commands/constraint.c
M src/backend/commands/conversioncmds.c
M src/backend/commands/copy.c
M src/backend/commands/dbcommands.c
M src/backend/commands/define.c
M src/backend/commands/discard.c
M src/backend/commands/explain.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/lockcmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/portalcmds.c
M src/backend/commands/prepare.c
M src/backend/commands/proclang.c
M src/backend/commands/schemacmds.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/user.c
M src/backend/commands/vacuum.c
M src/backend/commands/vacuumlazy.c
M src/backend/commands/variable.c
M src/backend/commands/view.c
M src/backend/common.mk
M src/backend/executor/Makefile
M src/backend/executor/README
M src/backend/executor/execAmi.c
M src/backend/executor/execCurrent.c
M src/backend/executor/execGrouping.c
M src/backend/executor/execJunk.c
M src/backend/executor/execMain.c
M src/backend/executor/execProcnode.c
M src/backend/executor/execQual.c
M src/backend/executor/execScan.c
M src/backend/executor/execTuples.c
M src/backend/executor/execUtils.c
M src/backend/executor/functions.c
M src/backend/executor/instrument.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeAppend.c
M src/backend/executor/nodeBitmapAnd.c
M src/backend/executor/nodeBitmapHeapscan.c
M src/backend/executor/nodeBitmapIndexscan.c
M src/backend/executor/nodeBitmapOr.c
M src/backend/executor/nodeCtescan.c
M src/backend/executor/nodeFunctionscan.c
M src/backend/executor/nodeGroup.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeLimit.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeMaterial.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeModifyTable.c
M src/backend/executor/nodeNestloop.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/executor/nodeResult.c
M src/backend/executor/nodeSeqscan.c
M src/backend/executor/nodeSetOp.c
M src/backend/executor/nodeSort.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeSubqueryscan.c
M src/backend/executor/nodeTidscan.c
M src/backend/executor/nodeUnique.c
M src/backend/executor/nodeValuesscan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/executor/nodeWorktablescan.c
M src/backend/executor/spi.c
M src/backend/executor/tstoreReceiver.c
M src/backend/foreign/Makefile
M src/backend/foreign/foreign.c
M src/backend/lib/Makefile
M src/backend/lib/dllist.c
M src/backend/lib/stringinfo.c
M src/backend/libpq/Makefile
M src/backend/libpq/README.SSL
M src/backend/libpq/auth.c
M src/backend/libpq/be-fsstubs.c
M src/backend/libpq/be-secure.c
M src/backend/libpq/crypt.c
M src/backend/libpq/hba.c
M src/backend/libpq/ip.c
M src/backend/libpq/md5.c
M src/backend/libpq/pqcomm.c
M src/backend/libpq/pqformat.c
M src/backend/libpq/pqsignal.c
M src/backend/main/Makefile
M src/backend/main/main.c
M src/backend/nls.mk
M src/backend/nodes/Makefile
M src/backend/nodes/README
M src/backend/nodes/bitmapset.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/list.c
M src/backend/nodes/makefuncs.c
M src/backend/nodes/nodeFuncs.c
M src/backend/nodes/nodes.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/params.c
M src/backend/nodes/print.c
M src/backend/nodes/read.c
M src/backend/nodes/readfuncs.c
M src/backend/nodes/tidbitmap.c
M src/backend/nodes/value.c
M src/backend/optimizer/Makefile
M src/backend/optimizer/README
M src/backend/optimizer/geqo/Makefile
M src/backend/optimizer/geqo/geqo_copy.c
M src/backend/optimizer/geqo/geqo_cx.c
M src/backend/optimizer/geqo/geqo_erx.c
M src/backend/optimizer/geqo/geqo_eval.c
M src/backend/optimizer/geqo/geqo_main.c
M src/backend/optimizer/geqo/geqo_misc.c
M src/backend/optimizer/geqo/geqo_mutation.c
M src/backend/optimizer/geqo/geqo_ox1.c
M src/backend/optimizer/geqo/geqo_ox2.c
M src/backend/optimizer/geqo/geqo_pmx.c
M src/backend/optimizer/geqo/geqo_pool.c
M src/backend/optimizer/geqo/geqo_px.c
M src/backend/optimizer/geqo/geqo_random.c
M src/backend/optimizer/geqo/geqo_recombination.c
M src/backend/optimizer/geqo/geqo_selection.c
M src/backend/optimizer/path/Makefile
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/clausesel.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/path/joinpath.c
M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/path/orindxpath.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/path/tidpath.c
M src/backend/optimizer/plan/Makefile
M src/backend/optimizer/plan/README
M src/backend/optimizer/plan/analyzejoins.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/initsplan.c
M src/backend/optimizer/plan/planagg.c
M src/backend/optimizer/plan/planmain.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/Makefile
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/prep/prepqual.c
M src/backend/optimizer/prep/preptlist.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/Makefile
M src/backend/optimizer/util/clauses.c
M src/backend/optimizer/util/joininfo.c
M src/backend/optimizer/util/pathnode.c
M src/backend/optimizer/util/placeholder.c
M src/backend/optimizer/util/plancat.c
M src/backend/optimizer/util/predtest.c
M src/backend/optimizer/util/relnode.c
M src/backend/optimizer/util/restrictinfo.c
M src/backend/optimizer/util/tlist.c
M src/backend/optimizer/util/var.c
M src/backend/parser/Makefile
M src/backend/parser/README
M src/backend/parser/analyze.c
M src/backend/parser/gram.y
M src/backend/parser/keywords.c
M src/backend/parser/kwlookup.c
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_coerce.c
M src/backend/parser/parse_cte.c
M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_node.c
M src/backend/parser/parse_oper.c
M src/backend/parser/parse_param.c
M src/backend/parser/parse_relation.c
M src/backend/parser/parse_target.c
M src/backend/parser/parse_type.c
M src/backend/parser/parse_utilcmd.c
M src/backend/parser/parser.c
M src/backend/parser/scan.l
M src/backend/parser/scansup.c
M src/backend/po/fr.po
M src/backend/port/Makefile
M src/backend/port/aix/mkldexport.sh
M src/backend/port/darwin/Makefile
M src/backend/port/darwin/README
M src/backend/port/darwin/system.c
M src/backend/port/dynloader/aix.c
M src/backend/port/dynloader/aix.h
M src/backend/port/dynloader/bsdi.c
M src/backend/port/dynloader/bsdi.h
M src/backend/port/dynloader/cygwin.c
M src/backend/port/dynloader/cygwin.h
M src/backend/port/dynloader/darwin.c
M src/backend/port/dynloader/darwin.h
M src/backend/port/dynloader/dgux.c
M src/backend/port/dynloader/dgux.h
M src/backend/port/dynloader/freebsd.c
M src/backend/port/dynloader/freebsd.h
M src/backend/port/dynloader/hpux.c
M src/backend/port/dynloader/hpux.h
M src/backend/port/dynloader/irix.c
M src/backend/port/dynloader/irix.h
M src/backend/port/dynloader/linux.c
M src/backend/port/dynloader/linux.h
M src/backend/port/dynloader/netbsd.c
M src/backend/port/dynloader/netbsd.h
M src/backend/port/dynloader/nextstep.c
M src/backend/port/dynloader/nextstep.h
M src/backend/port/dynloader/openbsd.c
M src/backend/port/dynloader/openbsd.h
M src/backend/port/dynloader/osf.c
M src/backend/port/dynloader/osf.h
M src/backend/port/dynloader/sco.c
M src/backend/port/dynloader/sco.h
M src/backend/port/dynloader/solaris.c
M src/backend/port/dynloader/solaris.h
M src/backend/port/dynloader/sunos4.c
M src/backend/port/dynloader/sunos4.h
M src/backend/port/dynloader/svr4.c
M src/backend/port/dynloader/svr4.h
M src/backend/port/dynloader/ultrix4.c
M src/backend/port/dynloader/ultrix4.h
M src/backend/port/dynloader/univel.c
M src/backend/port/dynloader/univel.h
M src/backend/port/dynloader/unixware.c
M src/backend/port/dynloader/unixware.h
M src/backend/port/dynloader/win32.c
M src/backend/port/dynloader/win32.h
M src/backend/port/ipc_test.c
M src/backend/port/nextstep/Makefile
M src/backend/port/nextstep/port.c
M src/backend/port/posix_sema.c
M src/backend/port/sysv_sema.c
M src/backend/port/sysv_shmem.c
M src/backend/port/tas/sunstudio_sparc.s
M src/backend/port/tas/sunstudio_x86.s
M src/backend/port/unix_latch.c
M src/backend/port/win32/Makefile
M src/backend/port/win32/mingwcompat.c
M src/backend/port/win32/security.c
M src/backend/port/win32/signal.c
M src/backend/port/win32/socket.c
M src/backend/port/win32/timer.c
M src/backend/port/win32_latch.c
M src/backend/port/win32_sema.c
M src/backend/port/win32_shmem.c
M src/backend/postmaster/Makefile
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/bgwriter.c
M src/backend/postmaster/fork_process.c
M src/backend/postmaster/pgarch.c
M src/backend/postmaster/pgstat.c
M src/backend/postmaster/postmaster.c
M src/backend/postmaster/syslogger.c
M src/backend/postmaster/walwriter.c
M src/backend/regex/Makefile
M src/backend/regex/regc_color.c
M src/backend/regex/regc_cvec.c
M src/backend/regex/regc_lex.c
M src/backend/regex/regc_locale.c
M src/backend/regex/regc_nfa.c
M src/backend/regex/regcomp.c
M src/backend/regex/rege_dfa.c
M src/backend/regex/regerror.c
M src/backend/regex/regexec.c
M src/backend/regex/regfree.c
M src/backend/replication/Makefile
M src/backend/replication/README
M src/backend/replication/libpqwalreceiver/Makefile
M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
M src/backend/replication/walreceiver.c
M src/backend/replication/walreceiverfuncs.c
M src/backend/replication/walsender.c
M src/backend/rewrite/Makefile
M src/backend/rewrite/rewriteDefine.c
M src/backend/rewrite/rewriteHandler.c
M src/backend/rewrite/rewriteManip.c
M src/backend/rewrite/rewriteRemove.c
M src/backend/rewrite/rewriteSupport.c
M src/backend/snowball/Makefile
M src/backend/snowball/README
M src/backend/snowball/dict_snowball.c
M src/backend/snowball/snowball.sql.in
M src/backend/snowball/snowball_func.sql.in
M src/backend/storage/Makefile
M src/backend/storage/buffer/Makefile
M src/backend/storage/buffer/README
M src/backend/storage/buffer/buf_init.c
M src/backend/storage/buffer/buf_table.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/buffer/freelist.c
M src/backend/storage/buffer/localbuf.c
M src/backend/storage/file/Makefile
M src/backend/storage/file/buffile.c
M src/backend/storage/file/copydir.c
M src/backend/storage/file/fd.c
M src/backend/storage/freespace/Makefile
M src/backend/storage/freespace/README
M src/backend/storage/freespace/freespace.c
M src/backend/storage/freespace/fsmpage.c
M src/backend/storage/freespace/indexfsm.c
M src/backend/storage/ipc/Makefile
M src/backend/storage/ipc/README
M src/backend/storage/ipc/ipc.c
M src/backend/storage/ipc/ipci.c
M src/backend/storage/ipc/pmsignal.c
M src/backend/storage/ipc/procarray.c
M src/backend/storage/ipc/procsignal.c
M src/backend/storage/ipc/shmem.c
M src/backend/storage/ipc/shmqueue.c
M src/backend/storage/ipc/sinval.c
M src/backend/storage/ipc/sinvaladt.c
M src/backend/storage/ipc/standby.c
M src/backend/storage/large_object/Makefile
M src/backend/storage/large_object/inv_api.c
M src/backend/storage/lmgr/Makefile
M src/backend/storage/lmgr/README
M src/backend/storage/lmgr/deadlock.c
M src/backend/storage/lmgr/lmgr.c
M src/backend/storage/lmgr/lock.c
M src/backend/storage/lmgr/lwlock.c
M src/backend/storage/lmgr/proc.c
M src/backend/storage/lmgr/s_lock.c
M src/backend/storage/lmgr/spin.c
M src/backend/storage/page/Makefile
M src/backend/storage/page/bufpage.c
M src/backend/storage/page/itemptr.c
M src/backend/storage/smgr/Makefile
M src/backend/storage/smgr/README
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/backend/storage/smgr/smgrtype.c
M src/backend/tcop/Makefile
M src/backend/tcop/dest.c
M src/backend/tcop/fastpath.c
M src/backend/tcop/postgres.c
M src/backend/tcop/pquery.c
M src/backend/tcop/utility.c
M src/backend/tsearch/Makefile
M src/backend/tsearch/dict.c
M src/backend/tsearch/dict_ispell.c
M src/backend/tsearch/dict_simple.c
M src/backend/tsearch/dict_synonym.c
M src/backend/tsearch/dict_thesaurus.c
M src/backend/tsearch/regis.c
M src/backend/tsearch/spell.c
M src/backend/tsearch/to_tsany.c
M src/backend/tsearch/ts_locale.c
M src/backend/tsearch/ts_parse.c
M src/backend/tsearch/ts_selfuncs.c
M src/backend/tsearch/ts_typanalyze.c
M src/backend/tsearch/ts_utils.c
M src/backend/tsearch/wparser.c
M src/backend/tsearch/wparser_def.c
M src/backend/utils/Gen_dummy_probes.sed
M src/backend/utils/Gen_fmgrtab.pl
M src/backend/utils/Makefile
M src/backend/utils/adt/Makefile
M src/backend/utils/adt/acl.c
M src/backend/utils/adt/array_userfuncs.c
M src/backend/utils/adt/arrayfuncs.c
M src/backend/utils/adt/arrayutils.c
M src/backend/utils/adt/ascii.c
M src/backend/utils/adt/bool.c
M src/backend/utils/adt/cash.c
M src/backend/utils/adt/char.c
M src/backend/utils/adt/date.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/datum.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/adt/domains.c
M src/backend/utils/adt/encode.c
M src/backend/utils/adt/enum.c
M src/backend/utils/adt/float.c
M src/backend/utils/adt/format_type.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/genfile.c
M src/backend/utils/adt/geo_ops.c
M src/backend/utils/adt/geo_selfuncs.c
M src/backend/utils/adt/inet_net_ntop.c
M src/backend/utils/adt/inet_net_pton.c
M src/backend/utils/adt/int.c
M src/backend/utils/adt/int8.c
M src/backend/utils/adt/like.c
M src/backend/utils/adt/like_match.c
M src/backend/utils/adt/lockfuncs.c
M src/backend/utils/adt/mac.c
M src/backend/utils/adt/misc.c
M src/backend/utils/adt/nabstime.c
M src/backend/utils/adt/name.c
M src/backend/utils/adt/network.c
M src/backend/utils/adt/numeric.c
M src/backend/utils/adt/numutils.c
M src/backend/utils/adt/oid.c
M src/backend/utils/adt/oracle_compat.c
M src/backend/utils/adt/pg_locale.c
M src/backend/utils/adt/pg_lzcompress.c
M src/backend/utils/adt/pgstatfuncs.c
M src/backend/utils/adt/pseudotypes.c
M src/backend/utils/adt/quote.c
M src/backend/utils/adt/regexp.c
M src/backend/utils/adt/regproc.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/adt/rowtypes.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/adt/tid.c
M src/backend/utils/adt/timestamp.c
M src/backend/utils/adt/trigfuncs.c
M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsgistidx.c
M src/backend/utils/adt/tsquery.c
M src/backend/utils/adt/tsquery_cleanup.c
M src/backend/utils/adt/tsquery_gist.c
M src/backend/utils/adt/tsquery_op.c
M src/backend/utils/adt/tsquery_rewrite.c
M src/backend/utils/adt/tsquery_util.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/adt/tsvector.c
M src/backend/utils/adt/tsvector_op.c
M src/backend/utils/adt/tsvector_parser.c
M src/backend/utils/adt/txid.c
M src/backend/utils/adt/uuid.c
M src/backend/utils/adt/varbit.c
M src/backend/utils/adt/varchar.c
M src/backend/utils/adt/varlena.c
M src/backend/utils/adt/version.c
M src/backend/utils/adt/windowfuncs.c
M src/backend/utils/adt/xid.c
M src/backend/utils/adt/xml.c
M src/backend/utils/cache/Makefile
M src/backend/utils/cache/attoptcache.c
M src/backend/utils/cache/catcache.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/lsyscache.c
M src/backend/utils/cache/plancache.c
M src/backend/utils/cache/relcache.c
M src/backend/utils/cache/relmapper.c
M src/backend/utils/cache/spccache.c
M src/backend/utils/cache/syscache.c
M src/backend/utils/cache/ts_cache.c
M src/backend/utils/cache/typcache.c
M src/backend/utils/error/Makefile
M src/backend/utils/error/assert.c
M src/backend/utils/error/elog.c
M src/backend/utils/fmgr/Makefile
M src/backend/utils/fmgr/README
M src/backend/utils/fmgr/dfmgr.c
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/fmgr/funcapi.c
M src/backend/utils/hash/Makefile
M src/backend/utils/hash/dynahash.c
M src/backend/utils/hash/hashfn.c
M src/backend/utils/hash/pg_crc.c
M src/backend/utils/init/Makefile
M src/backend/utils/init/globals.c
M src/backend/utils/init/miscinit.c
M src/backend/utils/init/postinit.c
M src/backend/utils/mb/Makefile
M src/backend/utils/mb/README
M src/backend/utils/mb/Unicode/Makefile
M src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_CN.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_JP.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_KR.pl
M src/backend/utils/mb/Unicode/UCS_to_EUC_TW.pl
M src/backend/utils/mb/Unicode/UCS_to_GB18030.pl
M src/backend/utils/mb/Unicode/UCS_to_SHIFT_JIS_2004.pl
M src/backend/utils/mb/Unicode/UCS_to_SJIS.pl
M src/backend/utils/mb/Unicode/UCS_to_most.pl
M src/backend/utils/mb/Unicode/euc_cn_to_utf8.map
M src/backend/utils/mb/Unicode/euc_jp_to_utf8.map
M src/backend/utils/mb/Unicode/euc_tw_to_utf8.map
M src/backend/utils/mb/Unicode/gb18030_to_utf8.map
M src/backend/utils/mb/Unicode/gbk_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_10_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_13_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_14_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_15_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_16_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_2_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_3_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_4_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_5_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_6_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_7_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_8_to_utf8.map
M src/backend/utils/mb/Unicode/iso8859_9_to_utf8.map
M src/backend/utils/mb/Unicode/koi8r_to_utf8.map
M src/backend/utils/mb/Unicode/ucs2utf.pl
M src/backend/utils/mb/conv.c
M src/backend/utils/mb/conversion_procs/Makefile
M src/backend/utils/mb/conversion_procs/ascii_and_mic/Makefile
M src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c
M src/backend/utils/mb/conversion_procs/cyrillic_and_mic/Makefile
M src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
M src/backend/utils/mb/conversion_procs/euc2004_sjis2004/Makefile
M src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
M src/backend/utils/mb/conversion_procs/euc_cn_and_mic/Makefile
M src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
M src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/Makefile
M src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
M src/backend/utils/mb/conversion_procs/euc_kr_and_mic/Makefile
M src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
M src/backend/utils/mb/conversion_procs/euc_tw_and_big5/Makefile
M src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c
M src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
M src/backend/utils/mb/conversion_procs/latin2_and_win1250/Makefile
M src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
M src/backend/utils/mb/conversion_procs/latin_and_mic/Makefile
M src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
M src/backend/utils/mb/conversion_procs/utf8_and_ascii/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c
M src/backend/utils/mb/conversion_procs/utf8_and_big5/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
M src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc2004/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
M src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
M src/backend/utils/mb/conversion_procs/utf8_and_gb18030/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
M src/backend/utils/mb/conversion_procs/utf8_and_gbk/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
M src/backend/utils/mb/conversion_procs/utf8_and_johab/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
M src/backend/utils/mb/conversion_procs/utf8_and_sjis/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
M src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
M src/backend/utils/mb/conversion_procs/utf8_and_uhc/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
M src/backend/utils/mb/conversion_procs/utf8_and_win/Makefile
M src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
M src/backend/utils/mb/encnames.c
M src/backend/utils/mb/iso.c
M src/backend/utils/mb/mbutils.c
M src/backend/utils/mb/wchar.c
M src/backend/utils/mb/win1251.c
M src/backend/utils/mb/win866.c
M src/backend/utils/mb/wstrcmp.c
M src/backend/utils/mb/wstrncmp.c
M src/backend/utils/misc/Makefile
M src/backend/utils/misc/README
M src/backend/utils/misc/guc-file.l
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/help_config.c
M src/backend/utils/misc/pg_rusage.c
M src/backend/utils/misc/ps_status.c
M src/backend/utils/misc/rbtree.c
M src/backend/utils/misc/superuser.c
M src/backend/utils/misc/tzparser.c
M src/backend/utils/mmgr/Makefile
M src/backend/utils/mmgr/README
M src/backend/utils/mmgr/aset.c
M src/backend/utils/mmgr/mcxt.c
M src/backend/utils/mmgr/portalmem.c
M src/backend/utils/probes.d
M src/backend/utils/resowner/Makefile
M src/backend/utils/resowner/README
M src/backend/utils/resowner/resowner.c
M src/backend/utils/sort/Makefile
M src/backend/utils/sort/logtape.c
M src/backend/utils/sort/tuplesort.c
M src/backend/utils/sort/tuplestore.c
M src/backend/utils/time/Makefile
M src/backend/utils/time/combocid.c
M src/backend/utils/time/snapmgr.c
M src/backend/utils/time/tqual.c
M src/bcc32.mak
M src/bin/Makefile
M src/bin/initdb/Makefile
M src/bin/initdb/initdb.c
M src/bin/initdb/nls.mk
M src/bin/initdb/po/fr.po
M src/bin/initdb/po/ru.po
M src/bin/pg_config/Makefile
M src/bin/pg_config/nls.mk
M src/bin/pg_config/pg_config.c
M src/bin/pg_config/po/fr.po
M src/bin/pg_config/po/ru.po
M src/bin/pg_controldata/Makefile
M src/bin/pg_controldata/nls.mk
M src/bin/pg_controldata/pg_controldata.c
M src/bin/pg_controldata/po/fr.po
M src/bin/pg_ctl/Makefile
M src/bin/pg_ctl/nls.mk
M src/bin/pg_ctl/pg_ctl.c
M src/bin/pg_ctl/po/fr.po
M src/bin/pg_ctl/po/ru.po
M src/bin/pg_dump/Makefile
M src/bin/pg_dump/README
M src/bin/pg_dump/common.c
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/dumputils.h
M src/bin/pg_dump/keywords.c
M src/bin/pg_dump/nls.mk
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_backup_archiver.c
M src/bin/pg_dump/pg_backup_archiver.h
M src/bin/pg_dump/pg_backup_custom.c
M src/bin/pg_dump/pg_backup_db.c
M src/bin/pg_dump/pg_backup_db.h
M src/bin/pg_dump/pg_backup_files.c
M src/bin/pg_dump/pg_backup_null.c
M src/bin/pg_dump/pg_backup_tar.c
M src/bin/pg_dump/pg_backup_tar.h
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
M src/bin/pg_dump/pg_dump_sort.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c
M src/bin/pg_dump/po/fr.po
M src/bin/pg_dump/po/zh_CN.po
M src/bin/pg_resetxlog/Makefile
M src/bin/pg_resetxlog/nls.mk
M src/bin/pg_resetxlog/pg_resetxlog.c
M src/bin/pg_resetxlog/po/fr.po
M src/bin/pg_resetxlog/po/ru.po
M src/bin/pgevent/README
M src/bin/pgevent/pgevent.c
M src/bin/pgevent/pgmsgevent.h
M src/bin/psql/Makefile
M src/bin/psql/command.c
M src/bin/psql/command.h
M src/bin/psql/common.c
M src/bin/psql/common.h
M src/bin/psql/copy.c
M src/bin/psql/copy.h
M src/bin/psql/create_help.pl
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/bin/psql/help.h
M src/bin/psql/input.c
M src/bin/psql/input.h
M src/bin/psql/large_obj.c
M src/bin/psql/large_obj.h
M src/bin/psql/mainloop.c
M src/bin/psql/mainloop.h
M src/bin/psql/mbprint.c
M src/bin/psql/mbprint.h
M src/bin/psql/nls.mk
M src/bin/psql/po/cs.po
M src/bin/psql/po/fr.po
M src/bin/psql/print.c
M src/bin/psql/print.h
M src/bin/psql/prompt.c
M src/bin/psql/prompt.h
M src/bin/psql/psqlscan.h
M src/bin/psql/psqlscan.l
M src/bin/psql/settings.h
M src/bin/psql/startup.c
M src/bin/psql/stringutils.c
M src/bin/psql/stringutils.h
M src/bin/psql/tab-complete.c
M src/bin/psql/tab-complete.h
M src/bin/psql/variables.c
M src/bin/psql/variables.h
M src/bin/scripts/Makefile
M src/bin/scripts/clusterdb.c
M src/bin/scripts/common.c
M src/bin/scripts/common.h
M src/bin/scripts/createdb.c
M src/bin/scripts/createlang.c
M src/bin/scripts/createuser.c
M src/bin/scripts/dropdb.c
M src/bin/scripts/droplang.c
M src/bin/scripts/dropuser.c
M src/bin/scripts/nls.mk
M src/bin/scripts/po/cs.po
M src/bin/scripts/po/fr.po
M src/bin/scripts/reindexdb.c
M src/bin/scripts/vacuumdb.c
M src/include/Makefile
M src/include/access/attnum.h
M src/include/access/clog.h
M src/include/access/genam.h
M src/include/access/gin.h
M src/include/access/gist.h
M src/include/access/gist_private.h
M src/include/access/gistscan.h
M src/include/access/hash.h
M src/include/access/heapam.h
M src/include/access/hio.h
M src/include/access/htup.h
M src/include/access/itup.h
M src/include/access/multixact.h
M src/include/access/nbtree.h
M src/include/access/printtup.h
M src/include/access/reloptions.h
M src/include/access/relscan.h
M src/include/access/rewriteheap.h
M src/include/access/rmgr.h
M src/include/access/sdir.h
M src/include/access/skey.h
M src/include/access/slru.h
M src/include/access/subtrans.h
M src/include/access/sysattr.h
M src/include/access/transam.h
M src/include/access/tupconvert.h
M src/include/access/tupdesc.h
M src/include/access/tupmacs.h
M src/include/access/tuptoaster.h
M src/include/access/twophase.h
M src/include/access/twophase_rmgr.h
M src/include/access/valid.h
M src/include/access/visibilitymap.h
M src/include/access/xact.h
M src/include/access/xlog.h
M src/include/access/xlog_internal.h
M src/include/access/xlogdefs.h
M src/include/access/xlogutils.h
M src/include/bootstrap/bootstrap.h
M src/include/c.h
M src/include/catalog/catalog.h
M src/include/catalog/catversion.h
M src/include/catalog/dependency.h
M src/include/catalog/duplicate_oids
M src/include/catalog/genbki.h
M src/include/catalog/heap.h
M src/include/catalog/index.h
M src/include/catalog/indexing.h
M src/include/catalog/namespace.h
M src/include/catalog/objectaddress.h
M src/include/catalog/pg_aggregate.h
M src/include/catalog/pg_am.h
M src/include/catalog/pg_amop.h
M src/include/catalog/pg_amproc.h
M src/include/catalog/pg_attrdef.h
M src/include/catalog/pg_attribute.h
M src/include/catalog/pg_auth_members.h
M src/include/catalog/pg_authid.h
M src/include/catalog/pg_cast.h
M src/include/catalog/pg_class.h
M src/include/catalog/pg_constraint.h
M src/include/catalog/pg_control.h
M src/include/catalog/pg_conversion.h
M src/include/catalog/pg_conversion_fn.h
M src/include/catalog/pg_database.h
M src/include/catalog/pg_db_role_setting.h
M src/include/catalog/pg_default_acl.h
M src/include/catalog/pg_depend.h
M src/include/catalog/pg_description.h
M src/include/catalog/pg_enum.h
M src/include/catalog/pg_foreign_data_wrapper.h
M src/include/catalog/pg_foreign_server.h
M src/include/catalog/pg_index.h
M src/include/catalog/pg_inherits.h
M src/include/catalog/pg_inherits_fn.h
M src/include/catalog/pg_language.h
M src/include/catalog/pg_largeobject.h
M src/include/catalog/pg_largeobject_metadata.h
M src/include/catalog/pg_namespace.h
M src/include/catalog/pg_opclass.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_opfamily.h
M src/include/catalog/pg_pltemplate.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_proc_fn.h
M src/include/catalog/pg_rewrite.h
M src/include/catalog/pg_shdepend.h
M src/include/catalog/pg_shdescription.h
M src/include/catalog/pg_statistic.h
M src/include/catalog/pg_tablespace.h
M src/include/catalog/pg_trigger.h
M src/include/catalog/pg_ts_config.h
M src/include/catalog/pg_ts_config_map.h
M src/include/catalog/pg_ts_dict.h
M src/include/catalog/pg_ts_parser.h
M src/include/catalog/pg_ts_template.h
M src/include/catalog/pg_type.h
M src/include/catalog/pg_type_fn.h
M src/include/catalog/pg_user_mapping.h
M src/include/catalog/storage.h
M src/include/catalog/toasting.h
M src/include/catalog/unused_oids
M src/include/commands/alter.h
M src/include/commands/async.h
M src/include/commands/cluster.h
M src/include/commands/comment.h
M src/include/commands/conversioncmds.h
M src/include/commands/copy.h
M src/include/commands/dbcommands.h
M src/include/commands/defrem.h
M src/include/commands/discard.h
M src/include/commands/explain.h
M src/include/commands/lockcmds.h
M src/include/commands/portalcmds.h
M src/include/commands/prepare.h
M src/include/commands/proclang.h
M src/include/commands/schemacmds.h
M src/include/commands/sequence.h
M src/include/commands/tablecmds.h
M src/include/commands/tablespace.h
M src/include/commands/trigger.h
M src/include/commands/typecmds.h
M src/include/commands/user.h
M src/include/commands/vacuum.h
M src/include/commands/variable.h
M src/include/commands/view.h
M src/include/executor/execdebug.h
M src/include/executor/execdefs.h
M src/include/executor/execdesc.h
M src/include/executor/executor.h
M src/include/executor/functions.h
M src/include/executor/hashjoin.h
M src/include/executor/instrument.h
M src/include/executor/nodeAgg.h
M src/include/executor/nodeAppend.h
M src/include/executor/nodeBitmapAnd.h
M src/include/executor/nodeBitmapHeapscan.h
M src/include/executor/nodeBitmapIndexscan.h
M src/include/executor/nodeBitmapOr.h
M src/include/executor/nodeCtescan.h
M src/include/executor/nodeFunctionscan.h
M src/include/executor/nodeGroup.h
M src/include/executor/nodeHash.h
M src/include/executor/nodeHashjoin.h
M src/include/executor/nodeIndexscan.h
M src/include/executor/nodeLimit.h
M src/include/executor/nodeLockRows.h
M src/include/executor/nodeMaterial.h
M src/include/executor/nodeMergejoin.h
M src/include/executor/nodeModifyTable.h
M src/include/executor/nodeNestloop.h
M src/include/executor/nodeRecursiveunion.h
M src/include/executor/nodeResult.h
M src/include/executor/nodeSeqscan.h
M src/include/executor/nodeSetOp.h
M src/include/executor/nodeSort.h
M src/include/executor/nodeSubplan.h
M src/include/executor/nodeSubqueryscan.h
M src/include/executor/nodeTidscan.h
M src/include/executor/nodeUnique.h
M src/include/executor/nodeValuesscan.h
M src/include/executor/nodeWindowAgg.h
M src/include/executor/nodeWorktablescan.h
M src/include/executor/spi.h
M src/include/executor/spi_priv.h
M src/include/executor/tstoreReceiver.h
M src/include/executor/tuptable.h
M src/include/fmgr.h
M src/include/foreign/foreign.h
M src/include/funcapi.h
M src/include/getaddrinfo.h
M src/include/getopt_long.h
M src/include/lib/dllist.h
M src/include/lib/stringinfo.h
M src/include/libpq/auth.h
M src/include/libpq/be-fsstubs.h
M src/include/libpq/crypt.h
M src/include/libpq/hba.h
M src/include/libpq/ip.h
M src/include/libpq/libpq-be.h
M src/include/libpq/libpq-fs.h
M src/include/libpq/libpq.h
M src/include/libpq/md5.h
M src/include/libpq/pqcomm.h
M src/include/libpq/pqformat.h
M src/include/libpq/pqsignal.h
M src/include/mb/pg_wchar.h
M src/include/miscadmin.h
M src/include/nodes/bitmapset.h
M src/include/nodes/execnodes.h
M src/include/nodes/makefuncs.h
M src/include/nodes/memnodes.h
M src/include/nodes/nodeFuncs.h
M src/include/nodes/nodes.h
M src/include/nodes/params.h
M src/include/nodes/parsenodes.h
M src/include/nodes/pg_list.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/print.h
M src/include/nodes/readfuncs.h
M src/include/nodes/relation.h
M src/include/nodes/tidbitmap.h
M src/include/nodes/value.h
M src/include/optimizer/clauses.h
M src/include/optimizer/cost.h
M src/include/optimizer/geqo.h
M src/include/optimizer/geqo_copy.h
M src/include/optimizer/geqo_gene.h
M src/include/optimizer/geqo_misc.h
M src/include/optimizer/geqo_mutation.h
M src/include/optimizer/geqo_pool.h
M src/include/optimizer/geqo_random.h
M src/include/optimizer/geqo_recombination.h
M src/include/optimizer/geqo_selection.h
M src/include/optimizer/joininfo.h
M src/include/optimizer/pathnode.h
M src/include/optimizer/paths.h
M src/include/optimizer/placeholder.h
M src/include/optimizer/plancat.h
M src/include/optimizer/planmain.h
M src/include/optimizer/planner.h
M src/include/optimizer/predtest.h
M src/include/optimizer/prep.h
M src/include/optimizer/restrictinfo.h
M src/include/optimizer/subselect.h
M src/include/optimizer/tlist.h
M src/include/optimizer/var.h
M src/include/parser/analyze.h
M src/include/parser/gramparse.h
M src/include/parser/keywords.h
M src/include/parser/kwlist.h
M src/include/parser/parse_agg.h
M src/include/parser/parse_clause.h
M src/include/parser/parse_coerce.h
M src/include/parser/parse_cte.h
M src/include/parser/parse_expr.h
M src/include/parser/parse_func.h
M src/include/parser/parse_node.h
M src/include/parser/parse_oper.h
M src/include/parser/parse_param.h
M src/include/parser/parse_relation.h
M src/include/parser/parse_target.h
M src/include/parser/parse_type.h
M src/include/parser/parse_utilcmd.h
M src/include/parser/parser.h
M src/include/parser/parsetree.h
M src/include/parser/scanner.h
M src/include/parser/scansup.h
M src/include/pg_config_manual.h
M src/include/pg_trace.h
M src/include/pgstat.h
M src/include/pgtime.h
M src/include/port.h
M src/include/port/aix.h
M src/include/port/bsdi.h
M src/include/port/cygwin.h
M src/include/port/darwin.h
M src/include/port/dgux.h
M src/include/port/freebsd.h
M src/include/port/hpux.h
M src/include/port/irix.h
M src/include/port/linux.h
M src/include/port/netbsd.h
M src/include/port/nextstep.h
M src/include/port/openbsd.h
M src/include/port/osf.h
M src/include/port/sco.h
M src/include/port/solaris.h
M src/include/port/sunos4.h
M src/include/port/svr4.h
M src/include/port/ultrix4.h
M src/include/port/univel.h
M src/include/port/unixware.h
M src/include/port/win32.h
M src/include/port/win32/arpa/inet.h
M src/include/port/win32/dlfcn.h
M src/include/port/win32/grp.h
M src/include/port/win32/netdb.h
M src/include/port/win32/netinet/in.h
M src/include/port/win32/pwd.h
M src/include/port/win32/sys/socket.h
M src/include/port/win32/sys/wait.h
M src/include/port/win32_msvc/dirent.h
M src/include/port/win32_msvc/sys/file.h
M src/include/port/win32_msvc/sys/param.h
M src/include/port/win32_msvc/sys/time.h
M src/include/port/win32_msvc/unistd.h
M src/include/port/win32_msvc/utime.h
M src/include/portability/instr_time.h
M src/include/postgres.h
M src/include/postgres_ext.h
M src/include/postgres_fe.h
M src/include/postmaster/autovacuum.h
M src/include/postmaster/bgwriter.h
M src/include/postmaster/fork_process.h
M src/include/postmaster/pgarch.h
M src/include/postmaster/postmaster.h
M src/include/postmaster/syslogger.h
M src/include/postmaster/walwriter.h
M src/include/regex/regcustom.h
M src/include/regex/regerrs.h
M src/include/regex/regex.h
M src/include/regex/regguts.h
M src/include/replication/walprotocol.h
M src/include/replication/walreceiver.h
M src/include/replication/walsender.h
M src/include/rewrite/prs2lock.h
M src/include/rewrite/rewriteDefine.h
M src/include/rewrite/rewriteHandler.h
M src/include/rewrite/rewriteManip.h
M src/include/rewrite/rewriteRemove.h
M src/include/rewrite/rewriteSupport.h
M src/include/rusagestub.h
M src/include/snowball/header.h
M src/include/storage/backendid.h
M src/include/storage/block.h
M src/include/storage/buf.h
M src/include/storage/buf_internals.h
M src/include/storage/buffile.h
M src/include/storage/bufmgr.h
M src/include/storage/bufpage.h
M src/include/storage/fd.h
M src/include/storage/freespace.h
M src/include/storage/fsm_internals.h
M src/include/storage/indexfsm.h
M src/include/storage/ipc.h
M src/include/storage/item.h
M src/include/storage/itemid.h
M src/include/storage/itemptr.h
M src/include/storage/large_object.h
M src/include/storage/latch.h
M src/include/storage/lmgr.h
M src/include/storage/lock.h
M src/include/storage/lwlock.h
M src/include/storage/off.h
M src/include/storage/pg_sema.h
M src/include/storage/pg_shmem.h
M src/include/storage/pmsignal.h
M src/include/storage/pos.h
M src/include/storage/proc.h
M src/include/storage/procarray.h
M src/include/storage/procsignal.h
M src/include/storage/relfilenode.h
M src/include/storage/s_lock.h
M src/include/storage/shmem.h
M src/include/storage/sinval.h
M src/include/storage/sinvaladt.h
M src/include/storage/smgr.h
M src/include/storage/spin.h
M src/include/storage/standby.h
M src/include/tcop/dest.h
M src/include/tcop/fastpath.h
M src/include/tcop/pquery.h
M src/include/tcop/tcopdebug.h
M src/include/tcop/tcopprot.h
M src/include/tcop/utility.h
M src/include/tsearch/dicts/regis.h
M src/include/tsearch/dicts/spell.h
M src/include/tsearch/ts_cache.h
M src/include/tsearch/ts_locale.h
M src/include/tsearch/ts_public.h
M src/include/tsearch/ts_type.h
M src/include/tsearch/ts_utils.h
M src/include/utils/acl.h
M src/include/utils/array.h
M src/include/utils/ascii.h
M src/include/utils/attoptcache.h
M src/include/utils/builtins.h
M src/include/utils/bytea.h
M src/include/utils/cash.h
M src/include/utils/catcache.h
M src/include/utils/combocid.h
M src/include/utils/date.h
M src/include/utils/datetime.h
M src/include/utils/datum.h
M src/include/utils/dynahash.h
M src/include/utils/dynamic_loader.h
M src/include/utils/elog.h
M src/include/utils/errcodes.h
M src/include/utils/fmgrtab.h
M src/include/utils/formatting.h
M src/include/utils/geo_decls.h
M src/include/utils/guc.h
M src/include/utils/guc_tables.h
M src/include/utils/help_config.h
M src/include/utils/hsearch.h
M src/include/utils/inet.h
M src/include/utils/int8.h
M src/include/utils/inval.h
M src/include/utils/logtape.h
M src/include/utils/lsyscache.h
M src/include/utils/memutils.h
M src/include/utils/nabstime.h
M src/include/utils/numeric.h
M src/include/utils/palloc.h
M src/include/utils/pg_crc.h
M src/include/utils/pg_locale.h
M src/include/utils/pg_lzcompress.h
M src/include/utils/pg_rusage.h
M src/include/utils/plancache.h
M src/include/utils/portal.h
M src/include/utils/ps_status.h
M src/include/utils/rbtree.h
M src/include/utils/rel.h
M src/include/utils/relcache.h
M src/include/utils/relmapper.h
M src/include/utils/resowner.h
M src/include/utils/selfuncs.h
M src/include/utils/snapmgr.h
M src/include/utils/snapshot.h
M src/include/utils/spccache.h
M src/include/utils/syscache.h
M src/include/utils/timestamp.h
M src/include/utils/tqual.h
M src/include/utils/tuplesort.h
M src/include/utils/tuplestore.h
M src/include/utils/typcache.h
M src/include/utils/tzparser.h
M src/include/utils/uuid.h
M src/include/utils/varbit.h
M src/include/utils/xml.h
M src/include/windowapi.h
M src/interfaces/Makefile
M src/interfaces/ecpg/README.dynSQL
M src/interfaces/ecpg/compatlib/Makefile
M src/interfaces/ecpg/compatlib/exports.txt
M src/interfaces/ecpg/compatlib/informix.c
M src/interfaces/ecpg/ecpglib/Makefile
M src/interfaces/ecpg/ecpglib/connect.c
M src/interfaces/ecpg/ecpglib/data.c
M src/interfaces/ecpg/ecpglib/descriptor.c
M src/interfaces/ecpg/ecpglib/error.c
M src/interfaces/ecpg/ecpglib/execute.c
M src/interfaces/ecpg/ecpglib/exports.txt
M src/interfaces/ecpg/ecpglib/extern.h
M src/interfaces/ecpg/ecpglib/memory.c
M src/interfaces/ecpg/ecpglib/misc.c
M src/interfaces/ecpg/ecpglib/nls.mk
M src/interfaces/ecpg/ecpglib/pg_type.h
M src/interfaces/ecpg/ecpglib/po/fr.po
M src/interfaces/ecpg/ecpglib/prepare.c
M src/interfaces/ecpg/ecpglib/typename.c
M src/interfaces/ecpg/include/datetime.h
M src/interfaces/ecpg/include/decimal.h
M src/interfaces/ecpg/include/ecpg-pthread-win32.h
M src/interfaces/ecpg/include/ecpg_informix.h
M src/interfaces/ecpg/include/ecpgerrno.h
M src/interfaces/ecpg/include/ecpglib.h
M src/interfaces/ecpg/include/ecpgtype.h
M src/interfaces/ecpg/include/pgtypes_date.h
M src/interfaces/ecpg/include/pgtypes_error.h
M src/interfaces/ecpg/include/pgtypes_interval.h
M src/interfaces/ecpg/include/pgtypes_timestamp.h
M src/interfaces/ecpg/include/sqlda-native.h
M src/interfaces/ecpg/pgtypeslib/Makefile
M src/interfaces/ecpg/pgtypeslib/common.c
M src/interfaces/ecpg/pgtypeslib/datetime.c
M src/interfaces/ecpg/pgtypeslib/dt.h
M src/interfaces/ecpg/pgtypeslib/dt_common.c
M src/interfaces/ecpg/pgtypeslib/exports.txt
M src/interfaces/ecpg/pgtypeslib/extern.h
M src/interfaces/ecpg/pgtypeslib/interval.c
M src/interfaces/ecpg/pgtypeslib/numeric.c
M src/interfaces/ecpg/pgtypeslib/timestamp.c
M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/ecpg/preproc/c_keywords.c
M src/interfaces/ecpg/preproc/check_rules.pl
M src/interfaces/ecpg/preproc/descriptor.c
M src/interfaces/ecpg/preproc/ecpg.addons
M src/interfaces/ecpg/preproc/ecpg.c
M src/interfaces/ecpg/preproc/ecpg.header
M src/interfaces/ecpg/preproc/ecpg.tokens
M src/interfaces/ecpg/preproc/ecpg.trailer
M src/interfaces/ecpg/preproc/ecpg.type
M src/interfaces/ecpg/preproc/ecpg_keywords.c
M src/interfaces/ecpg/preproc/extern.h
M src/interfaces/ecpg/preproc/keywords.c
M src/interfaces/ecpg/preproc/nls.mk
M src/interfaces/ecpg/preproc/output.c
M src/interfaces/ecpg/preproc/parse.pl
M src/interfaces/ecpg/preproc/parser.c
M src/interfaces/ecpg/preproc/pgc.l
M src/interfaces/ecpg/preproc/type.c
M src/interfaces/ecpg/preproc/type.h
M src/interfaces/ecpg/preproc/variable.c
M src/interfaces/ecpg/test/Makefile
M src/interfaces/ecpg/test/connect/README
M src/interfaces/ecpg/test/pg_regress_ecpg.c
M src/interfaces/libpq/Makefile
M src/interfaces/libpq/README
M src/interfaces/libpq/exports.txt
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-auth.h
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/fe-exec.c
M src/interfaces/libpq/fe-lobj.c
M src/interfaces/libpq/fe-misc.c
M src/interfaces/libpq/fe-print.c
M src/interfaces/libpq/fe-protocol2.c
M src/interfaces/libpq/fe-protocol3.c
M src/interfaces/libpq/fe-secure.c
M src/interfaces/libpq/libpq-events.c
M src/interfaces/libpq/libpq-events.h
M src/interfaces/libpq/libpq-fe.h
M src/interfaces/libpq/libpq-int.h
M src/interfaces/libpq/nls.mk
M src/interfaces/libpq/po/cs.po
M src/interfaces/libpq/po/fr.po
M src/interfaces/libpq/po/ru.po
M src/interfaces/libpq/po/zh_CN.po
M src/interfaces/libpq/pqexpbuffer.c
M src/interfaces/libpq/pqexpbuffer.h
M src/interfaces/libpq/pqsignal.c
M src/interfaces/libpq/pqsignal.h
M src/interfaces/libpq/pthread-win32.c
M src/interfaces/libpq/win32.c
M src/interfaces/libpq/win32.h
M src/makefiles/Makefile
M src/makefiles/Makefile.cygwin
M src/makefiles/Makefile.solaris
M src/makefiles/Makefile.win32
M src/makefiles/pgxs.mk
M src/nls-global.mk
M src/pl/Makefile
M src/pl/plperl/GNUmakefile
M src/pl/plperl/README
M src/pl/plperl/SPI.xs
M src/pl/plperl/Util.xs
M src/pl/plperl/nls.mk
M src/pl/plperl/plc_perlboot.pl
M src/pl/plperl/plc_trusted.pl
M src/pl/plperl/plperl.c
M src/pl/plperl/plperl.h
M src/pl/plperl/po/fr.po
M src/pl/plperl/text2macro.pl
M src/pl/plpgsql/Makefile
M src/pl/plpgsql/src/Makefile
M src/pl/plpgsql/src/gram.y
M src/pl/plpgsql/src/nls.mk
M src/pl/plpgsql/src/pl_comp.c
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/pl_funcs.c
M src/pl/plpgsql/src/pl_handler.c
M src/pl/plpgsql/src/pl_scanner.c
M src/pl/plpgsql/src/plerrcodes.h
M src/pl/plpgsql/src/plpgsql.h
M src/pl/plpgsql/src/po/fr.po
M src/pl/plpython/Makefile
M src/pl/plpython/nls.mk
M src/pl/plpython/plpython.c
M src/pl/plpython/po/fr.po
M src/pl/tcl/Makefile
M src/pl/tcl/modules/Makefile
M src/pl/tcl/modules/README
M src/pl/tcl/modules/pltcl_delmod.in
M src/pl/tcl/modules/pltcl_listmod.in
M src/pl/tcl/nls.mk
M src/pl/tcl/pltcl.c
M src/pl/tcl/po/fr.po
M src/port/Makefile
M src/port/README
M src/port/chklocale.c
M src/port/crypt.c
M src/port/dirent.c
M src/port/dirmod.c
M src/port/erand48.c
M src/port/exec.c
M src/port/fseeko.c
M src/port/getaddrinfo.c
M src/port/gethostname.c
M src/port/getopt.c
M src/port/getopt_long.c
M src/port/getrusage.c
M src/port/gettimeofday.c
M src/port/inet_aton.c
M src/port/isinf.c
M src/port/kill.c
M src/port/memcmp.c
M src/port/noblock.c
M src/port/open.c
M src/port/path.c
M src/port/pgsleep.c
M src/port/pgstrcasecmp.c
M src/port/pipe.c
M src/port/pthread-win32.h
M src/port/qsort.c
M src/port/qsort_arg.c
M src/port/random.c
M src/port/rint.c
M src/port/snprintf.c
M src/port/sprompt.c
M src/port/srandom.c
M src/port/strdup.c
M src/port/strerror.c
M src/port/strlcat.c
M src/port/strlcpy.c
M src/port/strtol.c
M src/port/strtoul.c
M src/port/thread.c
M src/port/unsetenv.c
M src/port/win32env.c
M src/port/win32error.c
M src/template/cygwin
M src/template/darwin
M src/template/dgux
M src/template/freebsd
M src/template/hpux
M src/template/linux
M src/template/netbsd
M src/template/nextstep
M src/template/osf
M src/test/Makefile
M src/test/examples/testlibpq.c
M src/test/examples/testlibpq2.c
M src/test/examples/testlibpq3.c
M src/test/examples/testlibpq4.c
M src/test/examples/testlo.c
M src/test/locale/Makefile
M src/test/locale/README
M src/test/locale/de_DE.ISO8859-1/README
M src/test/locale/gr_GR.ISO8859-7/README
M src/test/locale/koi8-to-win1251/README
M src/test/locale/test-ctype.c
M src/test/mb/README
M src/test/mb/mbregress.sh
M src/test/performance/sqls/inssimple
M src/test/regress/GNUmakefile
M src/test/regress/parallel_schedule
M src/test/regress/pg_regress.c
M src/test/regress/pg_regress.h
M src/test/regress/pg_regress_main.c
M src/test/regress/regress.c
M src/test/regress/serial_schedule
M src/test/regress/standby_schedule
M src/test/thread/Makefile
M src/test/thread/README
M src/test/thread/thread_test.c
M src/timezone/Makefile
M src/timezone/README
M src/timezone/ialloc.c
M src/timezone/localtime.c
M src/timezone/pgtz.c
M src/timezone/pgtz.h
M src/timezone/private.h
M src/timezone/scheck.c
M src/timezone/strftime.c
M src/timezone/tzfile.h
M src/timezone/tznames/Africa.txt
M src/timezone/tznames/America.txt
M src/timezone/tznames/Antarctica.txt
M src/timezone/tznames/Asia.txt
M src/timezone/tznames/Atlantic.txt
M src/timezone/tznames/Australia
M src/timezone/tznames/Australia.txt
M src/timezone/tznames/Default
M src/timezone/tznames/Etc.txt
M src/timezone/tznames/Europe.txt
M src/timezone/tznames/India
M src/timezone/tznames/Indian.txt
M src/timezone/tznames/Makefile
M src/timezone/tznames/Pacific.txt
M src/timezone/tznames/README
M src/timezone/zic.c
M src/tools/FAQ2txt
M src/tools/add_cvs_markers
M src/tools/backend/README
M src/tools/backend/index.html
M src/tools/ccsym
M src/tools/check_keywords.pl
M src/tools/codelines
M src/tools/copyright
M src/tools/entab/entab.c
M src/tools/entab/entab.man
M src/tools/entab/halt.c
M src/tools/find_badmacros
M src/tools/find_gt_lt
M src/tools/find_static
M src/tools/find_typedef
M src/tools/findoidjoins/Makefile
M src/tools/findoidjoins/README
M src/tools/findoidjoins/findoidjoins.c
M src/tools/findoidjoins/make_oidjoins_check
M src/tools/fsync/Makefile
M src/tools/fsync/README
M src/tools/fsync/test_fsync.c
M src/tools/ifaddrs/Makefile
M src/tools/ifaddrs/README
M src/tools/ifaddrs/test_ifaddrs.c
M src/tools/make_ctags
M src/tools/make_diff/README
M src/tools/make_diff/cporig
M src/tools/make_diff/difforig
M src/tools/make_diff/rmorig
M src/tools/make_etags
M src/tools/make_keywords
M src/tools/make_mkid
M src/tools/msvc/Install.pm
M src/tools/msvc/Mkvcbuild.pm
M src/tools/msvc/Project.pm
M src/tools/msvc/README
M src/tools/msvc/Solution.pm
M src/tools/msvc/build.bat
M src/tools/msvc/build.pl
M src/tools/msvc/builddoc.bat
M src/tools/msvc/clean.bat
M src/tools/msvc/gendef.pl
M src/tools/msvc/install.bat
M src/tools/msvc/install.pl
M src/tools/msvc/mkvcbuild.pl
M src/tools/msvc/pgbison.bat
M src/tools/msvc/pgflex.bat
M src/tools/msvc/vcregress.bat
M src/tools/msvc/vcregress.pl
M src/tools/pgcvslog
M src/tools/pginclude/README
M src/tools/pginclude/pgcheckdefines
M src/tools/pginclude/pgcompinclude
M src/tools/pginclude/pgdefine
M src/tools/pginclude/pgfixinclude
M src/tools/pginclude/pgrminclude
M src/tools/pgindent/README
M src/tools/pgindent/indent.bsd.patch
M src/tools/pgindent/pgcppindent
M src/tools/pgindent/pgindent
M src/tools/pgtest
M src/tools/version_stamp.pl
M src/tools/win32tzlist.pl
M src/tutorial/Makefile
M src/tutorial/README
M src/tutorial/advanced.source
M src/tutorial/basics.source
M src/tutorial/complex.c
M src/tutorial/complex.source
M src/tutorial/funcs.c
M src/tutorial/funcs.source
M src/tutorial/funcs_new.c
M src/tutorial/syscat.source
M src/win32.mak

Update HOT README about when single-page vacuums happen.

commit   : cecde97577fafddc6b3aa354b9b77a3a54b063a9    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 19 Sep 2010 17:51:44 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 19 Sep 2010 17:51:44 +0000    

Click here for diff

M src/backend/access/heap/README.HOT

Replace last remaining $Id$ with $PostgreSQL$.

commit   : f679cfe97b8f34427949a915e4008cc7d1213851    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 19 Sep 2010 16:27:17 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 19 Sep 2010 16:27:17 +0000    

Click here for diff

M src/backend/utils/mb/Unicode/UCS_to_GB18030.pl

Fix several broken $PostgreSQL$ keywords. Noted while experimenting with Magnus's script to remove these.

commit   : 9eef3318a2a36d462551dd526f8940e15f33b446    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 19 Sep 2010 16:17:45 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 19 Sep 2010 16:17:45 +0000    

Click here for diff

M doc/src/sgml/ref/reindexdb.sgml
M src/include/port/svr4.h
M src/interfaces/ecpg/preproc/nls.mk

Make sure we wait for protocol-level EOF when ending binary COPY IN.

commit   : f906e0786e27ca5b56a680c16b216ae406fbb1cf    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 18 Sep 2010 20:10:15 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 18 Sep 2010 20:10:15 +0000    

Click here for diff

The previous coding just terminated the COPY immediately after seeing  
the EOF marker (-1 where a row field count is expected).  The expected  
CopyDone or CopyFail message just got thrown away later, since we weren't  
in COPY mode anymore.  This behavior complicated matters for the JDBC  
driver, and arguably was the wrong thing in any case since a CopyFail  
message after the marker wouldn't be honored.  
  
Note that there is a behavioral change here: extra data after the EOF  
marker was silently ignored before, but now it will cause an error.  
Hence not back-patching, although this is arguably a bug.  
  
Per report and patch by Kris Jurka.  

M src/backend/commands/copy.c

Give a suitable HINT when an INSERT's data source is a RowExpr containing the same number of columns expected by the insert. This suggests that there were extra parentheses that converted the intended column list into a row expression.

commit   : af0161e5273a8b81cc76d6267ce9a7079268fe4a    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 18 Sep 2010 18:37:01 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 18 Sep 2010 18:37:01 +0000    

Click here for diff

Original patch by Marko Tiikkaja, rather heavily editorialized by me.  

M src/backend/parser/analyze.c

Move pg_db_role_setting docs to correct place in alphabetical order.

commit   : 48f0a28b488f6ab2c3774c922f5af69b84f693b5    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Sep 2010 18:49:54 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Sep 2010 18:49:54 +0000    

Click here for diff

M doc/src/sgml/catalogs.sgml

Remove duplicated code left behind by my recent refactoring of comment.c

commit   : dc6b82124323b50de8e4134d9cc182f935c9602f    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 17 Sep 2010 02:49:10 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 17 Sep 2010 02:49:10 +0000    

Click here for diff

These checks are also present in objectaddress.c, so there's no need to  
recheck here.  

M src/backend/commands/comment.c

Add some documentation about how we WAL-log filesystem actions. Per a question from Robert Haas.

commit   : 54d0e2886a9cea2035a471dd6dfb8f671223de7d    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 17 Sep 2010 00:42:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 17 Sep 2010 00:42:39 +0000    

Click here for diff

M src/backend/access/transam/README

Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Win32, since it can happen when a process fails to start when the system is under high load.

commit   : 594419e74ad495aa116e08e306416b3a090513c5    
  
author   : Magnus Hagander <[email protected]>    
date     : Thu, 16 Sep 2010 20:37:13 +0000    
  
committer: Magnus Hagander <[email protected]>    
date     : Thu, 16 Sep 2010 20:37:13 +0000    

Click here for diff

Per several bug reports and many peoples investigation.  
  
Back-patch to 8.4, which is as far back as the "deadman-switch"  
for shared memory access exists.  

M src/backend/postmaster/postmaster.c

Stamp 9.0 release notes with expected release date; also some last-minute copy-editing.

commit   : f7270a65b3085752813df3adc9e7b8f292c02a8e    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 18:15:21 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 18:15:21 +0000    

Click here for diff

M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/release-9.0.sgml

Fix bad grammar.

commit   : 7acf6f9babd69151d65da9b31aec64712cd5b1f8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 14:31:20 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 14:31:20 +0000    

Click here for diff

M doc/src/sgml/plpgsql.sgml

Fix two new-in-9.0 bugs in hstore.

commit   : cd55aa2e007da2dc2f4e014062c1722bbff59739    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 02:54:01 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 16 Sep 2010 02:54:01 +0000    

Click here for diff

There was an incorrect Assert in hstoreValidOldFormat(), which would cause  
immediate core dumps when attempting to work with pre-9.0 hstore data,  
but of course only in an assert-enabled build.  
  
Also, ghstore_decompress() incorrectly applied DatumGetHStoreP() to a datum  
that wasn't actually an hstore, but rather a ghstore (ie, a gist signature  
bitstring).  That used to be harmless, but could now result in misbehavior  
if the hstore format conversion code happened to trigger.  In reality,  
since ghstore is not marked toastable (and doesn't need to be), this  
function is useless anyway; we can lobotomize it down to returning the  
passed-in pointer.  
  
Both bugs found by Andrew Gierth, though this isn't exactly his proposed  
patch.  

M contrib/hstore/hstore_compat.c
M contrib/hstore/hstore_gist.c

Add a compatibility note about plpgsql's treatment of SELECT INTO rec.fld when fld is of composite type. Per discussion of bug #5644 from Valentine Gogichashvili.

commit   : e1089e34eb7625332a4e594cc50186a5233dc2b3    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 15 Sep 2010 17:45:57 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 15 Sep 2010 17:45:57 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Fix two typos in comments, spotted by Fujii Masao and Thom Brown

commit   : 79b54816dbe5a53c1f9c9b1c1aa4edf8977569d8    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 13:58:22 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 13:58:22 +0000    

Click here for diff

M src/backend/access/transam/xlog.c

Use a latch to make startup process wake up and replay immediately when new WAL arrives via streaming replication. This reduces the latency, and also allows us to use a longer polling interval, which is good for energy efficiency.

commit   : 723d0184e2972f21db0f85feef3d35f0cb9b3298    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 10:35:05 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 10:35:05 +0000    

Click here for diff

We still need to poll to check for the appearance of a trigger file, but  
the interval is now 5 seconds (instead of 100ms), like when waiting for  
a new WAL segment to appear in WAL archive.  

M src/backend/access/transam/xlog.c
M src/backend/replication/walreceiver.c
M src/include/access/xlog.h

Simplify Windows implementation of latches. There's no need to keep a dynamic pool of event handles, we can permanently assign one for each shared latch. Thanks to that, we no longer need a separate shared memory block for latches, and we don't need to know in advance how many shared latches there is, so you no longer need to remember to update NumSharedLatches when you introduce a new latch to the system.

commit   : 236b6bc29e532822a366b56404ecaf1d906229bf    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 10:06:21 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 10:06:21 +0000    

Click here for diff

M src/backend/port/unix_latch.c
M src/backend/port/win32_latch.c
M src/backend/storage/ipc/ipci.c
M src/include/storage/latch.h

Don't call OwnLatch while holding a spinlock. OwnLatch can elog() under some "can't happen" scenarios, and spinlocks should only be held for a few instructions anyway. As pointed out by Fujii Masao.

commit   : 1eab7a560d09fcd7314acd46ded955a37a262683    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 06:51:19 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 15 Sep 2010 06:51:19 +0000    

Click here for diff

M src/backend/replication/walsender.c

Fix join-removal logic for pseudoconstant and outerjoin-delayed quals.

commit   : 4e97631e6a9d31acfde1057ad966e73f9d28c28d    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 14 Sep 2010 23:15:29 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 14 Sep 2010 23:15:29 +0000    

Click here for diff

In these cases a qual can get marked with the removable rel in its  
required_relids, but this is just to schedule its evaluation correctly, not  
because it really depends on the rel.  We were assuming that, in effect,  
we could throw away *all* quals so marked, which is nonsense.  Tighten up  
the logic to be a little more paranoid about which quals belong to the  
outer join being considered for removal, and arrange for all quals that  
don't belong to be updated so they will still get evaluated correctly.  
  
Also fix another problem that happened to be exposed by this test case,  
which was that make_join_rel() was failing to notice some cases where  
a constant-false qual could be used to prove a join relation empty.  If it's  
a pushed-down constant false, then the relation is empty even if it's an  
outer join, because the qual applies after the outer join expansion.  
  
Per report from Nathan Grange.  Back-patch into 9.0.  

M src/backend/optimizer/path/joinrels.c
M src/backend/optimizer/plan/analyzejoins.c
M src/backend/optimizer/util/joininfo.c
M src/include/optimizer/joininfo.h
M src/test/regress/expected/join.out
M src/test/regress/sql/join.sql

Oops, the timeout argument to WaitLatchOrSocket is in microseconds, not milliseconds.

commit   : 3522217b63ce9e88cd33a43e9481961a7c49ffb1    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Sep 2010 13:35:14 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Sep 2010 13:35:14 +0000    

Click here for diff

M src/backend/replication/walsender.c

Don't warn about an in-progress online backup, when we're recovering from an online backup instead of performing one. pg_ctl can detect that by checking if recovery.conf exists.

commit   : 06e8c8e3ec14e597e5f47c7b5b6b0c0b17bedcf0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Sep 2010 08:05:33 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 14 Sep 2010 08:05:33 +0000    

Click here for diff

Backup label file is renamed away early in recovery, so the window where  
backup label exists during recovery is normally very small, but you can run  
into it e.g if restore_command is set incorrectly and the startup process  
never finds even the first WAL segment containing the checkpoint record to  
start recovery from.  
  
Fujii Masao with comments by me.  

M src/bin/pg_ctl/pg_ctl.c

Add a comment noting that the owner_pid test in OwnLatch is just a sanity check, per request by Jeff Davis.

commit   : c1ba7db6c1cc6f1e41b58c5b89f5f838653f4bf0    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 18:01:20 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 18:01:20 +0000    

Click here for diff

M src/backend/port/unix_latch.c

Elaborate on what gets stored in pg_authid.rolpasswd.

commit   : d7a541a9a7927b2478084e7d20a026cb87dcfa3b    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Sep 2010 17:02:34 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Sep 2010 17:02:34 +0000    

Click here for diff

Also, add cross-reference from pg_shadow.passwd to pg_authid.rolpasswd and  
fix a bit of markup I muffed in my previous commit.  
  
Per discussion with Josh Kupershmidt.  

M doc/src/sgml/catalogs.sgml

Remove prototype for non-existent function from walreceiver.h. Tidy up by separating prototypes for functions in walreceiver.c and walreceiverfuncs.c with comments.

commit   : d1c33ccf62faaf16ac58418c73870e8fe1129dd5    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 10:14:25 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 10:14:25 +0000    

Click here for diff

M src/include/replication/walreceiver.h

Process options from the startup packed in walsender. Only few options make sense for walsender, but for example application_name and client_encoding do. We still don't apply per-role settings from pg_db_role_setting, because that would require connecting to a database to read the table.

commit   : 418039d3af44813294812ce7e29e2259874a1e23    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 09:00:30 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 13 Sep 2010 09:00:30 +0000    

Click here for diff

Fujii Masao  

M src/backend/utils/init/postinit.c

Don't try aligning comments for new archive_command Win32 doc example; it doesn't work.

commit   : df57a5e8981d1a3272d4693ffc64eda0afbd3ac1    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 13 Sep 2010 01:35:46 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 13 Sep 2010 01:35:46 +0000    

Click here for diff

Backpatch to 9.0.X.  

M doc/src/sgml/backup.sgml

commit   : 1400b738a04ad725e6525370bf76c67dbec14b83    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 13 Sep 2010 01:23:35 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 13 Sep 2010 01:23:35 +0000    

Click here for diff

Per discussion with Josh Kupershmidt.  

M doc/src/sgml/catalogs.sgml

Re-add documentation for Win32 copy syntax for archive_command.

commit   : 39fa4d0b318909a0d90143f67be6b479a3efbf73    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 12 Sep 2010 13:47:12 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 12 Sep 2010 13:47:12 +0000    

Click here for diff

Backpatch to 9.0.X.  

M doc/src/sgml/backup.sgml

SERIALIZABLE transactions are actually implemented beneath the covers with transaction snapshots, i.e. a snapshot registered at the beginning of a transaction. Change variable naming and comments to reflect this reality in preparation for a future, truly serializable mode, e.g. Serializable Snapshot Isolation (SSI).

commit   : 5eb15c9942a9bd6aaf712f2ab6175005e035168a    
  
author   : Joe Conway <[email protected]>    
date     : Sat, 11 Sep 2010 18:38:58 +0000    
  
committer: Joe Conway <[email protected]>    
date     : Sat, 11 Sep 2010 18:38:58 +0000    

Click here for diff

For the moment transaction snapshots are still used to implement  
SERIALIZABLE, but hopefully not for too much longer. Patch by Kevin  
Grittner and Dan Ports with review and some minor wording changes by me.  

M src/backend/access/heap/heapam.c
M src/backend/catalog/index.c
M src/backend/commands/trigger.c
M src/backend/executor/execMain.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeModifyTable.c
M src/backend/tcop/postgres.c
M src/backend/tcop/pquery.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/time/snapmgr.c
M src/include/access/xact.h

Add missing #includes, needed on some platforms. This should make the unixware buildfarm animals happy again.

commit   : 262c71ab63d5781cd68b23d2058cbb45ad67a54c    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 11 Sep 2010 16:26:04 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 11 Sep 2010 16:26:04 +0000    

Click here for diff

M src/backend/port/unix_latch.c

Introduce latches. A latch is a boolean variable, with the capability to wait until it is set. Latches can be used to reliably wait until a signal arrives, which is hard otherwise because signals don't interrupt select() on some platforms, and even when they do, there's race conditions.

commit   : 2746e5f21d4dce07ee55c58b2035ff631470577f    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Sat, 11 Sep 2010 15:48:04 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Sat, 11 Sep 2010 15:48:04 +0000    

Click here for diff

On Unix, latches use the so called self-pipe trick under the covers to  
implement the sleep until the latch is set, without race conditions. On  
Windows, Windows events are used.  
  
Use the new latch abstraction to sleep in walsender, so that as soon as  
a transaction finishes, walsender is woken up to immediately send the WAL  
to the standby. This reduces the latency between master and standby, which  
is good.  
  
Preliminary work by Fujii Masao. The latch implementation is by me, with  
helpful comments from many people.  

M configure
M configure.in
M src/backend/access/transam/twophase.c
M src/backend/access/transam/xact.c
M src/backend/port/Makefile
A src/backend/port/unix_latch.c
A src/backend/port/win32_latch.c
M src/backend/replication/walsender.c
M src/backend/storage/ipc/ipci.c
M src/backend/storage/ipc/procsignal.c
M src/include/replication/walsender.h
A src/include/storage/latch.h
M src/tools/msvc/Mkvcbuild.pm

Cursor names in the backend are not case-sensitve. This change makes sure that ecpg also does not regard cursor names as case-sensitive.

commit   : 81624db39aa7501690aab71a68af689df78b71e8    
  
author   : Michael Meskes <[email protected]>    
date     : Fri, 10 Sep 2010 10:13:20 +0000    
  
committer: Michael Meskes <[email protected]>    
date     : Fri, 10 Sep 2010 10:13:20 +0000    

Click here for diff

Thanks to Zoltan Boszormenyi for the patch.  

M src/interfaces/ecpg/preproc/ecpg.addons
M src/interfaces/ecpg/preproc/ecpg.header
M src/interfaces/ecpg/preproc/ecpg.trailer

Remove obsolete claim that gzip is needed while installing PG's documentation. It isn't, now that we ship the docs as loose files rather than a sub-tarball.

commit   : 0b81c7c4174ef97b10be58f29016af23549c6c12    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 9 Sep 2010 17:19:40 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 9 Sep 2010 17:19:40 +0000    

Click here for diff

Also adjust the wording in a couple of places to make the lists of required  
software read more consistently.  

M doc/src/sgml/installation.sgml

Doc fixes:

commit   : 152c626105625eaa9f57539f5df45175183d6793    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 9 Sep 2010 00:48:22 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 9 Sep 2010 00:48:22 +0000    

Click here for diff

- remove excessive table cells  
- moving function parameters into function tags rather than having  
  them being considered separate  
- add return type column on XML2 contrib module functions list and  
  removing return types from function  
- add table header to XML2 contrib parameter table  
  
Thom Brown  
  
Backpatch to 9.0.X.  

M doc/src/sgml/datatype.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/sources.sgml
M doc/src/sgml/xml2.sgml

commit   : 85863060488ec2ae5fddc66cf72752e5f1f0ffb6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 8 Sep 2010 20:35:51 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 8 Sep 2010 20:35:51 +0000    

Click here for diff

M doc/src/sgml/installation.sgml
M doc/src/sgml/plpython.sgml

Clarify that surrogate pairs are not encoded in UTF-8 directly

commit   : 7cd082f907814f0fe90918399cbb95fd83f161c9    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 7 Sep 2010 18:54:09 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 7 Sep 2010 18:54:09 +0000    

Click here for diff

M doc/src/sgml/syntax.sgml

commit   : c5d94a34fbd732762106b4056823bde6969fdfd8    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 7 Sep 2010 14:10:30 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 7 Sep 2010 14:10:30 +0000    

Click here for diff

Backpatch to 9.0.X.  

M contrib/pg_upgrade/controldata.c
M src/port/unsetenv.c

GROUP BY can only infer functional dependency from non-deferrable primary keys.

commit   : a756f5ce140914d6b316721f42b43e828820e93e    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 5 Sep 2010 15:45:42 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 5 Sep 2010 15:45:42 +0000    

Click here for diff

Peter's original patch had this right, but I dropped the check while revising  
the code to search pg_constraint instead of pg_index.  Spotted by Dean Rasheed.  

M src/backend/catalog/pg_constraint.c

Pad the ps_status display with nulls, not blanks, on Darwin.

commit   : 8d8d5cb612bb008741f2104a5479cb0c22b76e1d    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 4 Sep 2010 17:45:56 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 4 Sep 2010 17:45:56 +0000    

Click here for diff

A long time ago, this didn't work nicely, but it seems to work on all recent  
versions of OS X.  The blank-pad method is less desirable since it results  
in lots of extra space in ps' output.  Per Alexey Klyukin.  

M src/backend/utils/misc/ps_status.c

Install a data-type-based solution for protecting pg_get_expr().

commit   : 303696c3b47e6719e983e93da5896ddc4a2e0dbb    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Sep 2010 01:34:55 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Sep 2010 01:34:55 +0000    

Click here for diff

Since the code underlying pg_get_expr() is not secure against malformed  
input, and can't practically be made so, we need to prevent miscreants  
from feeding arbitrary data to it.  We can do this securely by declaring  
pg_get_expr() to take a new datatype "pg_node_tree" and declaring the  
system catalog columns that hold nodeToString output to be of that type.  
There is no way at SQL level to create a non-null value of type pg_node_tree.  
Since the backend-internal operations that fill those catalog columns  
operate below the SQL level, they are oblivious to the datatype relabeling  
and don't need any changes.  

M doc/src/sgml/catalogs.sgml
M doc/src/sgml/func.sgml
M src/backend/bootstrap/bootstrap.c
M src/backend/utils/adt/pseudotypes.c
M src/include/catalog/catversion.h
M src/include/catalog/genbki.h
M src/include/catalog/pg_attrdef.h
M src/include/catalog/pg_cast.h
M src/include/catalog/pg_constraint.h
M src/include/catalog/pg_index.h
M src/include/catalog/pg_proc.h
M src/include/catalog/pg_rewrite.h
M src/include/catalog/pg_trigger.h
M src/include/catalog/pg_type.h
M src/include/utils/builtins.h
M src/test/regress/expected/opr_sanity.out
M src/test/regress/expected/type_sanity.out
M src/test/regress/sql/opr_sanity.sql
M src/test/regress/sql/type_sanity.sql

In HEAD only, revert kluge solution for preventing misuse of pg_get_expr().

commit   : 8ab6a6b4562efcd9f320353d5438fdbe10dbf9c5    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 3 Sep 2010 01:26:52 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 3 Sep 2010 01:26:52 +0000    

Click here for diff

A data-type-based solution, which is much cleaner and more bulletproof,  
will follow shortly.  It seemed best to make this a separate commit though.  

M src/backend/parser/parse_func.c
M src/backend/parser/parse_oper.c
M src/backend/tcop/fastpath.c
M src/include/parser/parse_func.h

9.1alpha1 release notes.

commit   : c89a1198f90924ecdcc0f7e4cdd2e307e66ff856    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 17:30:06 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 17:30:06 +0000    

Click here for diff

M doc/src/sgml/filelist.sgml
A doc/src/sgml/release-9.1.sgml
M doc/src/sgml/release.sgml

Clean up description of ecpg's dtcvfmtasc function. Per KOIZUMI Satoru.

commit   : 9b3c19d8f27b0a005f0292b92846ca13c63c5cad    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 14:57:04 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 14:57:04 +0000    

Click here for diff

M doc/src/sgml/ecpg.sgml

Clean up some bad grammar and punctuation in description of ecpg's decimal type. Per KOIZUMI Satoru.

commit   : f3b330ec013ff8220ff056913f8056864c5d3e88    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 14:46:44 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 14:46:44 +0000    

Click here for diff

M doc/src/sgml/ecpg.sgml

Fix up flushing of composite-type typcache entries to be driven directly by SI invalidation events, rather than indirectly through the relcache.

commit   : 9513918c6c4d4f370ceb7c7d1b1a5a152aea091c    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 03:16:46 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 2 Sep 2010 03:16:46 +0000    

Click here for diff

In the previous coding, we had to flush a composite-type typcache entry  
whenever we discarded the corresponding relcache entry.  This caused problems  
at least when testing with RELCACHE_FORCE_RELEASE, as shown in recent report  
from Jeff Davis, and might result in real-world problems given the kind of  
unexpected relcache flush that that test mechanism is intended to model.  
  
The new coding decouples relcache and typcache management, which is a good  
thing anyway from a structural perspective.  The cost is that we have to  
search the typcache linearly to find entries that need to be flushed.  There  
are a couple of ways we could avoid that, but at the moment it's not clear  
it's worth any extra trouble, because the typcache contains very few entries  
in typical operation.  
  
Back-patch to 8.2, the same as some other recent fixes in this general area.  
The patch could be carried back to 8.0 with some additional work, but given  
that it's only hypothetical whether we're fixing any problem observable in  
the field, it doesn't seem worth the work now.  

M src/backend/utils/cache/relcache.c
M src/backend/utils/cache/typcache.c
M src/include/utils/typcache.h

Fix typo. Pointed out by Kevin Grittner.

commit   : f3c903f86757a0e25f2781c438dab1738b773d0e    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 2 Sep 2010 02:52:14 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 2 Sep 2010 02:52:14 +0000    

Click here for diff

M src/backend/catalog/objectaddress.c

Clarify documentation of handling of null arguments for aggregates. Per discussion.

commit   : 21076076e9265574a8e5eb9652a0a2c6d29acb4b    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 1 Sep 2010 18:22:29 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 1 Sep 2010 18:22:29 +0000    

Click here for diff

M doc/src/sgml/func.sgml
M doc/src/sgml/syntax.sgml

Improve release notes' description of Teodor's fixes for polygon overlaps and contains operators.

commit   : 4ff6856cb1016c480aca125f30bd579df7535e15    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 1 Sep 2010 15:14:42 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 1 Sep 2010 15:14:42 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Add missing markup for translatability

commit   : e4b96380c34e21046aaca8961fe697c3131c3e65    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 31 Aug 2010 05:57:54 +0000    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 31 Aug 2010 05:57:54 +0000    

Click here for diff

M doc/src/sgml/ref/create_aggregate.sgml

Cosmetic fixes for KnownAssignedXidsGetOldestXmin, per Fujii Masao.

commit   : 174a51332f98290e3f9414aea18f2225b8379262    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 30 Aug 2010 17:30:44 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 30 Aug 2010 17:30:44 +0000    

Click here for diff

M src/backend/storage/ipc/procarray.c

Fix oversight in RelFileNodeBackend patch: CreateFakeRelcacheEntry needs to initialize the rd_backend field of a fake Relation entry correctly. Fortunately, that is easy, since only non-temp relations should ever be mentioned in the WAL stream.

commit   : eb36d1ad519f43d30b07e29d124128b534831d6a    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 30 Aug 2010 16:46:23 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 30 Aug 2010 16:46:23 +0000    

Click here for diff

M src/backend/access/transam/xlogutils.c

Fix misleading DEBUG2 issued during RemoveOldXlogFiles()

commit   : ac791d3ca1225c5e32df9b8af0c8cfd67119eb2a    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 15:37:41 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 15:37:41 +0000    

Click here for diff

M src/backend/access/transam/xlog.c

Truncate subtrans after each restartpoint. Issue reported by Harald Kolb, patch by Fujii Masao, review by me.

commit   : e72f15ed6064c89d1077a3757ebd9cd4eaad1c13    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 14:22:05 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 14:22:05 +0000    

Click here for diff

M src/backend/access/transam/xlog.c

Teach GetOldestXmin() about KnownAssignedXids during recovery. Very minor issue, though this is required for a later patch. Reported by Heikki Linnakangas.

commit   : e24d1dc069bd44b6311166f9ba23b39639f55968    
  
author   : Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 14:16:48 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Mon, 30 Aug 2010 14:16:48 +0000    

Click here for diff

M src/backend/storage/ipc/procarray.c

Fix typo in comment.

commit   : e1cc96dbf08e5a8d5087def183382de9e0e779ae    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Mon, 30 Aug 2010 06:33:22 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Mon, 30 Aug 2010 06:33:22 +0000    

Click here for diff

M src/backend/storage/ipc/procsignal.c

Reduce PANIC to ERROR in some occasionally-reported btree failure cases.

commit   : 8fa30f906be8d2b0d237720f5615bcda65f53c68    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 29 Aug 2010 19:33:14 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 29 Aug 2010 19:33:14 +0000    

Click here for diff

This patch changes _bt_split() and _bt_pagedel() to throw a plain ERROR,  
rather than PANIC, for several cases that are reported from the field  
from time to time:  
* right sibling's left-link doesn't match;  
* PageAddItem failure during _bt_split();  
* parent page's next child isn't right sibling during _bt_pagedel().  
In addition the error messages for these cases have been made a bit  
more verbose, with additional values included.  
  
The original motivation for PANIC here was to capture core dumps for  
subsequent analysis.  But with so many users whose platforms don't capture  
core dumps by default, or who are unprepared to analyze them anyway, it's hard  
to justify a forced database restart when we can fairly easily detect the  
problems before we've reached the critical sections where PANIC would be  
necessary.  It is not currently known whether the reports of these messages  
indicate well-hidden bugs in Postgres, or are a result of storage-level  
malfeasance; the latter possibility suggests that we ought to try to be more  
robust even if there is a bug here that's ultimately found.  
  
Backpatch to 8.2.  The code before that is sufficiently different that  
it doesn't seem worth the trouble to back-port further.  

M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/nbtree/nbtpage.c

Remove obsolete remark that PQprepare() is more flexible than PREPARE.

commit   : a9a999bc1af553c5efc25a90cae2589237953716    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 29 Aug 2010 15:19:05 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 29 Aug 2010 15:19:05 +0000    

Click here for diff

Spotted by Dmitriy Igrishin.  Back-patch to 8.2, which is when the PREPARE  
statement was improved to allow parameter types to be omitted.  

M doc/src/sgml/libpq.sgml

Insert additional compiler placation into objectaddress.c.

commit   : 462583be1ce7fe8a75abffc41a0db38e03050090    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 27 Aug 2010 21:31:19 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 27 Aug 2010 21:31:19 +0000    

Click here for diff

Peter Eisentraut reports that some bits of the "address" variable  
in get_object_address() give "may be used uninitialized" warnings;  
this likes the only excuse his compiler could have for thinking  
that's possible.  

M src/backend/catalog/objectaddress.c

Small refactoring of makeVar() from a TargetEntry

commit   : 2355b69b1e1b90b159404452ee20c320e64658b2    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 27 Aug 2010 20:30:08 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 27 Aug 2010 20:30:08 +0000    

Click here for diff

M src/backend/nodes/makefuncs.c
M src/backend/optimizer/path/pathkeys.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/prepjointree.c
M src/backend/optimizer/util/plancat.c
M src/backend/parser/analyze.c
M src/include/nodes/makefuncs.h

Rewrite comment code for better modularity, and add necessary locking.

commit   : c10575ff005c330d0475345621b7d381eb510c48    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 27 Aug 2010 11:47:41 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 27 Aug 2010 11:47:41 +0000    

Click here for diff

Review by Alvaro Herrera, KaiGai Kohei, and Tom Lane.  

M src/backend/catalog/Makefile
A src/backend/catalog/objectaddress.c
M src/backend/commands/comment.c
M src/include/catalog/dependency.h
A src/include/catalog/objectaddress.h

Document the existence of the socket lock file under unix_socket_directory, which is perhaps not a terribly good spot for it but there doesn't seem to be a better place. Also add a source-code comment pointing out a couple reasons for having a separate lock file. Per suggestion from Greg Smith.

commit   : 73b3bd5574099ac0f6a174852ce224d55d0cdf78    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 22:00:19 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 22:00:19 +0000    

Click here for diff

M doc/src/sgml/config.sgml
M src/backend/libpq/pqcomm.c

Explain automatic creation (or lack of it) of indexes for the various types of constraints.

commit   : 48322916559607e5b6a85f30a8e5307baf9cac3d    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 21:08:35 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 21:08:35 +0000    

Click here for diff

Kevin Grittner  

M doc/src/sgml/ddl.sgml

Update time zone data files to tzdata release 2010l: DST law changes in Egypt and Palestine. Added new names for two Micronesian timezones: Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over Pacific/Ponape. Historical corrections for Finland.

commit   : 16567b0581d338baf71650cbdf9aebcf1f972bd3    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 19:58:36 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 19:58:36 +0000    

Click here for diff

M src/timezone/data/africa
M src/timezone/data/asia
M src/timezone/data/australasia
M src/timezone/data/backward
M src/timezone/data/europe
M src/timezone/data/leapseconds
M src/timezone/data/northamerica
M src/timezone/data/zone.tab
M src/timezone/tznames/Default
M src/timezone/tznames/Pacific.txt

Improve wording for privilege description on certain failure messages; the original misleadingly suggests that only access is meant, causing confusion. Per recent trouble report by Robert McGehee on pgsql-admin.

commit   : 7788b76acd2ec19e82b8ad3fac1e118b0b4b6faa    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 26 Aug 2010 19:49:08 +0000    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 26 Aug 2010 19:49:08 +0000    

Click here for diff

M src/backend/catalog/pg_shdepend.c
M src/test/regress/expected/dependency.out
M src/test/regress/expected/foreign_data.out

Remove duplicate translatable phrase

commit   : 3a1b51de19295394fe60325c7a545a1328ce4b5b    
  
author   : Alvaro Herrera <[email protected]>    
date     : Thu, 26 Aug 2010 19:23:41 +0000    
  
committer: Alvaro Herrera <[email protected]>    
date     : Thu, 26 Aug 2010 19:23:41 +0000    

Click here for diff

M src/backend/access/transam/xlog.c

Fix ExecMakeTableFunctionResult to verify that all rows returned by a SRF returning "record" actually do have the same rowtype. This is needed because the parser can't realistically enforce that they will all have the same typmod, as seen in a recent example from David Wheeler.

commit   : db2d9c602c97fe6dbcf32959fbc04fa3659e8599    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 18:54:37 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 18:54:37 +0000    

Click here for diff

Back-patch to 8.0, which is as far back as we have the notion of RECORD  
subtypes being distinguished by typmod.  Wheeler's example depends on  
8.4-and-up features, but I suspect there may be ways to provoke similar  
failures before 8.4.  

M src/backend/executor/execQual.c

Don't auto-create the subdirectories holding built documentation in a VPATH build tree. If we actually build the docs in the VPATH tree, those dirs will get created then; but if they're present and empty, they capture the vpathsearch searches in "make install", preventing installation of prebuilt docs that might exist in the source tree. Per bug #5595 from Dmtiriy Igrishin. Fix based on idea from Peter Eisentraut.

commit   : 39ce62b110107ac03792130d130f64d62f3d4dcf    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 18:34:37 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 26 Aug 2010 18:34:37 +0000    

Click here for diff

M config/prep_buildtree

Remove docs for "Incrementally Updated Backups" because it was of questionable reliability; information moved to a wiki:

commit   : 13e6d6c5da184abcdfcfc9874ad17ef09f4ea044    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 25 Aug 2010 23:55:54 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 25 Aug 2010 23:55:54 +0000    

Click here for diff

	http://wiki.postgresql.org/wiki/Incrementally_Updated_Backups  
  
Backpatch to 9.0.  

M doc/src/sgml/high-availability.sgml

Document filtering dictionaries in textsearch.sgml.

commit   : 9389ac8928866eb4ab19b2f3892531e798e34f24    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 21:42:55 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 21:42:55 +0000    

Click here for diff

While at it, copy-edit the description of prefix-match marker support in  
synonym dictionaries, and clarify the description of the default unaccent  
dictionary a bit more.  

M doc/src/sgml/textsearch.sgml
M doc/src/sgml/unaccent.sgml

Improve hint message for ENOMEM failure from shmget().

commit   : acac35adca6e039e2288c5253079b128c1742b5e    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 20:10:55 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 20:10:55 +0000    

Click here for diff

It turns out that some platforms return ENOMEM for a request that violates  
SHMALL, whereas we were assuming that ENOSPC would always be used for that.  
Apparently the latter is a Linuxism while ENOMEM is the BSD tradition.  
Extend the ENOMEM hint to suggest that raising SHMALL might be needed.  
Per gripe from A.M.  
  
Backpatch to 9.0, but not further, because this doesn't seem important  
enough to warrant creating extra translation work in the stable branches.  
(If it were, we'd have figured this out years ago.)  

M src/backend/port/sysv_shmem.c

Update release notes, per comments from Simon Riggs.

commit   : 0d812f1966a56de905b43bc1902fb7c5b570f9b3    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 25 Aug 2010 19:41:38 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 25 Aug 2010 19:41:38 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Catch null pointer returns from PyCObject_AsVoidPtr and PyCObject_FromVoidPtr

commit   : c76a4f8dea8f8f349ac3de635179cb4f03be658f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 25 Aug 2010 19:37:56 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 25 Aug 2010 19:37:56 +0000    

Click here for diff

This is reproducibly possible in Python 2.7 if the user turned  
PendingDeprecationWarning into an error, but it's theoretically also possible  
in earlier versions in case of exceptional conditions.  
  
backpatched to 8.0  

M src/pl/plpython/plpython.c

Add missing description of reloftype field

commit   : 52ba9a537bf60381aa50202e3fd9f1d473422e8f    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 25 Aug 2010 18:18:41 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 25 Aug 2010 18:18:41 +0000    

Click here for diff

M doc/src/sgml/catalogs.sgml

Docs review for unaccent: fix grammar, markup, etc.

commit   : 7fc614c6982702d411d82ee07240bd93134ba692    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 02:12:00 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 02:12:00 +0000    

Click here for diff

M doc/src/sgml/unaccent.sgml

Avoid passing signed chars to <ctype.h> functions ... same old portability mistake as always. Per buildfarm member pika.

commit   : 1dab218a69831b396faec553bf967d75abcc7ebc    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 00:53:37 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 00:53:37 +0000    

Click here for diff

M src/bin/psql/command.c

Update 9.0 release notes for changes since beta4.

commit   : f121c408e25f98fadfb9117b2e2aed0bfd8c8b18    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 00:47:57 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 25 Aug 2010 00:47:57 +0000    

Click here for diff

Note: as usual, bug fixes that were also applied in back branches are not  
considered material to include in a new major release's notes.  

M doc/src/sgml/release-9.0.sgml

Further editing of release notes.

commit   : 7dc04cd204786c0289727287285b9ac8113ba8d2    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 Aug 2010 23:45:32 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 Aug 2010 23:45:32 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Make EXPLAIN show the function call expression of a FunctionScan plan node, but only in VERBOSE mode. Per discussion.

commit   : 99ee43c57b611d846ab888ba88c03f052a0d4511    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 24 Aug 2010 21:20:36 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 24 Aug 2010 21:20:36 +0000    

Click here for diff

M src/backend/commands/explain.c

When in automatic dependency mode, never delete any intermediate files automatically. Otherwise, the following could happen: When starting from a clean source tree, the first build would delete the intermediate file, but also create the dependency file, which mentions the intermediate file, thus making it non-intermediate. The second build will then need to rebuild the now non-intermediate missing file. So the second build will do work even though nothing had changed. One place where this happens is the .c -> .o -> .so chain for some contrib modules.

commit   : 5c788e7cf5026be1cad634f12bb42111a411cd9e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 24 Aug 2010 18:06:12 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 24 Aug 2010 18:06:12 +0000    

Click here for diff

M src/Makefile.global.in

Fix awkward wording in Incrementally Updated Backups docs.

commit   : b1e2e9c1ef21395138d0bbe451768a7fdcfa7e68    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 15:22:12 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 15:22:12 +0000    

Click here for diff

Backpatch to 9.0.X.  

M doc/src/sgml/high-availability.sgml

Clarifications for 9.0 release notes

commit   : f5878cd38fd58f6320dd8416e3ededd44cd76980    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 14:46:29 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 14:46:29 +0000    

Click here for diff

Josh Berkus  

M doc/src/sgml/release-9.0.sgml

Update autovacuum_freeze_max_age documentation to mention that the default is low because of pg_clog file removal.

commit   : c107c35df3ae62444497dbba1d60e591c8d0d436    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 13:32:25 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 24 Aug 2010 13:32:25 +0000    

Click here for diff

Backpatch to 9.0.X.  

M doc/src/sgml/config.sgml

Add string functions: concat(), concat_ws(), left(), right(), and reverse().

commit   : 49b27ab55149ade3b00de782be7ef53b4f9722c9    
  
author   : Itagaki Takahiro <[email protected]>    
date     : Tue, 24 Aug 2010 06:30:44 +0000    
  
committer: Itagaki Takahiro <[email protected]>    
date     : Tue, 24 Aug 2010 06:30:44 +0000    

Click here for diff

Pavel Stehule, reviewed by me.  

M doc/src/sgml/func.sgml
M src/backend/utils/adt/varlena.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h
M src/test/regress/expected/text.out
M src/test/regress/sql/text.sql

Marginal code cleanup for streaming replication.

commit   : b9defe0405606e1e63a708078757c03451b0c111    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 17:20:01 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 17:20:01 +0000    

Click here for diff

There is no reason that proc.c should have to get involved in this dirty hack  
for letting the postmaster know which children are walsenders.  Revert that  
file to the way it was, and confine the kluge to pmsignal.c and postmaster.c.  

M src/backend/storage/ipc/pmsignal.c
M src/backend/storage/lmgr/proc.c
M src/include/storage/pmsignal.h

Make pg_archivecleanup log messages more consistent.

commit   : e57cd3936f43eea60100f449e0fb08c9c2ebcb39    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 02:56:24 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 02:56:24 +0000    

Click here for diff

Erik Rijkers  

M contrib/pg_archivecleanup/pg_archivecleanup.c

Make an editorial pass over the 9.0 release notes.

commit   : 005e427a22e3bb7fa01a84a7b476a3d6359a0344    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 02:43:25 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 23 Aug 2010 02:43:25 +0000    

Click here for diff

This is mostly about grammar, style, and presentation, though I did find  
a few small factual errors.  

M doc/src/sgml/config.sgml
M doc/src/sgml/ddl.sgml
M doc/src/sgml/release-9.0.sgml

Document that autovacuum_freeze_max_age is used for pg_clog recycling. We already mentioned xid wraparound.

commit   : d8986332cb98d0463baacf87552c9059d28da731    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 22 Aug 2010 02:37:32 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 22 Aug 2010 02:37:32 +0000    

Click here for diff

M doc/src/sgml/config.sgml

Use a non-locale-dependent definition of isspace() in array_in/array_out.

commit   : 95cacd1345c4d1b00fe6cc7fff58c7391ce907d6    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 21 Aug 2010 16:55:51 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 21 Aug 2010 16:55:51 +0000    

Click here for diff

array_in discards unquoted leading and trailing whitespace in array values,  
while array_out is careful to quote array elements that contain whitespace.  
This is problematic when the definition of "whitespace" varies between  
locales: array_in could drop characters that were meant to be part of the  
value.  To avoid that, lock down "whitespace" to mean only the traditional  
six ASCII space characters.  
  
This change also works around a bug in OS X and some older BSD systems, in  
which isspace() could return true for character fragments in UTF8 locales.  
(There may be other places in PG where that bug could cause problems, but  
this is the only one complained of so far; see recent report from Steven  
Schlansker.)  
  
Back-patch to 9.0, but not further.  Given the lack of previous reports  
of trouble, changing this behavior in stable branches seems to offer  
more risk of breaking applications than reward of avoiding problems.  

M src/backend/utils/adt/arrayfuncs.c

Improve parallel restore's ability to cope with selective restore (-L option).

commit   : c5d6d5bc6d23b6ebd6cb17d401e10581cd112c20    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 21 Aug 2010 13:59:44 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 21 Aug 2010 13:59:44 +0000    

Click here for diff

The original coding tended to break down in the face of modified restore  
orders, as shown in bug #5626 from Albert Ullrich, because it would flip over  
into parallel-restore operation too soon.  That causes problems because we  
don't have sufficient dependency information in dump archives to allow safe  
parallel processing of SECTION_PRE_DATA items.  Even if we did, it's probably  
undesirable to allow that to override the commanded restore order.  
  
To fix the problem of omitted items causing unexpected changes in restore  
order, tweak SortTocFromFile so that omitted items end up at the head of  
the list not the tail.  This ensures that they'll be examined and their  
dependencies will be marked satisfied before we get to any interesting  
items.  
  
In HEAD and 9.0, we can easily change restore_toc_entries_parallel so that  
all SECTION_PRE_DATA items are guaranteed to be processed in the initial  
serial-restore loop, and hence in commanded order.  Only DATA and POST_DATA  
items are candidates for parallel processing.  For them there might be  
variations from the commanded order because of parallelism, but we should  
do it in a safe order thanks to dependencies.  
  
In 8.4 it's much harder to make such a guarantee.  I settled for not  
letting the initial loop break out into parallel processing mode if  
it sees a DATA/POST_DATA item that's not to be restored; this at least  
prevents a non-restorable item from causing premature exit from the loop.  
This means that 8.4 will be more likely to fail given a badly-ordered -L  
list than 9.x, but we don't really promise any such thing will work anyway.  

M src/bin/pg_dump/pg_backup_archiver.c

Adjust regression tests for previous commit, that I forgot to include...

commit   : 5abd2d704d60fc58776ae84eaf54283a2cb2ceb2    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 21 Aug 2010 13:18:02 +0000    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 21 Aug 2010 13:18:02 +0000    

Click here for diff

M src/test/regress/expected/rules.out

Add vacuum and analyze counters to pg_stat_*_tables views.

commit   : 946045f04d11d246a834b917a2b8bc6e4f884a37    
  
author   : Magnus Hagander <[email protected]>    
date     : Sat, 21 Aug 2010 10:59:17 +0000    
  
committer: Magnus Hagander <[email protected]>    
date     : Sat, 21 Aug 2010 10:59:17 +0000    

Click here for diff

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/pgstat.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/pgstat.h

Add missing processing of OptTemp in CREATE IF NOT EXISTS variant for typed tables. Noted by Robert Haas.

commit   : efe2e9a75897dbe1270b16bf93ce5d526b4c1fe8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 20 Aug 2010 14:55:05 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 20 Aug 2010 14:55:05 +0000    

Click here for diff

M src/backend/parser/gram.y

Avoid saying "random" when randomness is not actually meant. Per Thom Brown.

commit   : 5344945810e32ab922096ede429e2087b5ae6edd    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 20 Aug 2010 13:59:45 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 20 Aug 2010 13:59:45 +0000    

Click here for diff

M doc/src/sgml/ddl.sgml
M doc/src/sgml/textsearch.sgml

Remove the isLocalBuf argument from ReadBuffer_common.

commit   : a481ff71afe2cc4b83c35855114754b782312d20    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 20 Aug 2010 01:07:50 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 20 Aug 2010 01:07:50 +0000    

Click here for diff

Since an SMgrRelation now knows whether or not the underlying relation is  
temporary, there's no point in also passing that information via an  
additional argument.  

M src/backend/storage/buffer/bufmgr.c

Bring some sanity to the trace_recovery_messages code and docs. Per gripe from Fujii Masao, though this is not exactly his proposed patch. Categorize as DEVELOPER_OPTIONS and set context PGC_SIGHUP, as per Fujii, but set the default to LOG because higher values aren't really sensible (see the code for trace_recovery()). Fix the documentation to agree with the code and to try to explain what the variable actually does. Get rid of no-op calls trace_recovery(LOG), which accomplish nothing except to demonstrate that this option confuses even its author.

commit   : 79dc97a401e8b51c3b91f3d629122b3f6c365a9f    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 22:55:01 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 22:55:01 +0000    

Click here for diff

M doc/src/sgml/config.sgml
M src/backend/storage/ipc/standby.c
M src/backend/utils/error/elog.c
M src/backend/utils/misc/guc.c

Allow USING and INTO clauses of plpgsql's EXECUTE to appear in either order.

commit   : 9676b01028139ca399f2564f6c4cb40fffe2ec07    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 18:57:57 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 18:57:57 +0000    

Click here for diff

Aside from being more forgiving, this prevents a rather surprising misbehavior  
when the "wrong" order was used: the old code didn't throw a syntax error,  
but absorbed the INTO clause into the last USING expression, which then did  
strange things downstream.  
  
Intentionally not changing the documentation; we'll continue to advertise  
only the "standard" clause order.  
  
Backpatch to 8.4, where the USING clause was added to EXECUTE.  

M src/pl/plpgsql/src/gram.y

Keep exec_simple_check_plan() from thinking "SELECT foo INTO bar" is simple.

commit   : f4b4a46f01eca60f4e7a2827cf13ef8bbff5f1f8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 18:10:48 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 18:10:48 +0000    

Click here for diff

It's not clear if this situation can occur in plpgsql other than via the  
EXECUTE USING case Heikki illustrated, which I will shortly close off.  
However, ignoring the intoClause if it's there is surely wrong, so let's  
patch it for safety.  
  
Backpatch to 8.3, which is as far back as this code has a PlannedStmt  
to deal with.  There might be another way to make an equivalent test  
before that, but since this is just preventing hypothetical bugs,  
I'm not going to obsess about it.  

M src/pl/plpgsql/src/pl_exec.c

Be a bit less cavalier with both the code and the comment for UNKNOWN fix.

commit   : 3869e9aecbe11fe04b6db4f0da1ace1e0eb7cdd2    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 17:31:43 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 17:31:43 +0000    

Click here for diff

M src/pl/plpgsql/src/pl_exec.c

Revert patch to coerce 'unknown' type parameters in the backend. As Tom pointed out, it would need a 2nd pass after the whole query is processed to correctly check that an unknown Param is coerced to the same target type everywhere. Adding the 2nd pass would add a lot more code, which doesn't seem worth the risk given that there isn't much of a use case for passing unknown Params in the first place. The code would work without that check, but it might be confusing and the behavior would be different from the varparams case.

commit   : ff645bf5ad8906d146673b975ef5c9c21797acd2    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Thu, 19 Aug 2010 16:54:43 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Thu, 19 Aug 2010 16:54:43 +0000    

Click here for diff

Instead, just coerce all unknown params in a PL/pgSQL USING clause to text.  
That's simple, and is usually what users expect.  
  
Revert the patch in CVS HEAD and master, and backpatch the new solution to  
8.4. Unlike the previous solution, this applies easily to 8.4 too.  

M src/backend/parser/parse_param.c
M src/pl/plpgsql/src/pl_exec.c

Allocate local buffers in a context of their own, rather than dumping them into TopMemoryContext. This makes no functional difference, but makes it easier to see what the space is being used for in MemoryContextStats dumps. Per a recent example in which I was surprised by the size of TopMemoryContext.

commit   : bc7cb8f42cc607f1fcd2aca0a7b007fc8e9930d0    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 16:16:20 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 16:16:20 +0000    

Click here for diff

M src/backend/storage/buffer/localbuf.c

Fix possible corruption of AfterTriggerEventLists in subtransaction rollback.

commit   : e275d16a54de5595ed70cafd99c801af2fbdbc8b    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 15:46:18 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 19 Aug 2010 15:46:18 +0000    

Click here for diff

afterTriggerInvokeEvents failed to adjust events->tailfree when truncating  
the last chunk of an event list.  This could result in the data being  
"de-truncated" by afterTriggerRestoreEventList during a subsequent  
subtransaction abort.  Even that wouldn't kill us, because the re-added data  
would just be events marked DONE --- unless the data had been partially  
overwritten by new events.  Then we might crash, or in any case misbehave  
(perhaps fire triggers twice, or fire triggers with the wrong event data).  
Per bug #5622 from Thue Janus Kristensen.  
  
Back-patch to 8.4 where the current trigger list representation was introduced.  

M src/backend/commands/trigger.c

Remove extra newlines at end and beginning of files, add missing newlines at end of files.

commit   : 3f1197191685512d1968ffd8958497159944c2a1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 19 Aug 2010 05:57:36 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 19 Aug 2010 05:57:36 +0000    

Click here for diff

M README
M config/c-compiler.m4
M contrib/btree_gist/sql/cidr.sql
M contrib/btree_gist/sql/date.sql
M contrib/btree_gist/sql/inet.sql
M contrib/btree_gist/sql/int2.sql
M contrib/btree_gist/sql/int4.sql
M contrib/btree_gist/sql/int8.sql
M contrib/btree_gist/sql/interval.sql
M contrib/btree_gist/sql/macaddr.sql
M contrib/btree_gist/sql/time.sql
M contrib/btree_gist/sql/timestamp.sql
M contrib/intarray/bench/bench.pl
M contrib/ltree/sql/ltree.sql
M contrib/pageinspect/Makefile
M contrib/pg_trgm/sql/pg_trgm.sql
M contrib/pg_upgrade/TESTING
M contrib/pgcrypto/pgcrypto.sql.in
M contrib/pgcrypto/rijndael.tbl
M contrib/pgcrypto/sql/3des.sql
M contrib/pgcrypto/sql/blowfish.sql
M contrib/pgcrypto/sql/cast5.sql
M contrib/pgcrypto/sql/crypt-blowfish.sql
M contrib/pgcrypto/sql/crypt-des.sql
M contrib/pgcrypto/sql/crypt-md5.sql
M contrib/pgcrypto/sql/crypt-xdes.sql
M contrib/pgcrypto/sql/des.sql
M contrib/pgcrypto/sql/hmac-md5.sql
M contrib/pgcrypto/sql/hmac-sha1.sql
M contrib/pgcrypto/sql/init.sql
M contrib/pgcrypto/sql/md5.sql
M contrib/pgcrypto/sql/pgp-compression.sql
M contrib/pgcrypto/sql/pgp-encrypt-DISABLED.sql
M contrib/pgcrypto/sql/pgp-encrypt.sql
M contrib/pgcrypto/sql/pgp-info.sql
M contrib/pgcrypto/sql/pgp-pubkey-DISABLED.sql
M contrib/pgcrypto/sql/pgp-pubkey-decrypt.sql
M contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql
M contrib/pgcrypto/sql/pgp-zlib-DISABLED.sql
M contrib/pgcrypto/sql/rijndael.sql
M contrib/pgcrypto/sql/sha1.sql
M contrib/pgcrypto/sql/sha2.sql
M contrib/pgcrypto/uninstall_pgcrypto.sql
M contrib/spi/insert_username.example
M contrib/tablefunc/sql/tablefunc.sql
M contrib/tsearch2/sql/tsearch2.sql
M doc/KNOWN_BUGS
M doc/MISSING_FEATURES
M doc/src/sgml/pgupgrade.sgml
M src/backend/optimizer/README
M src/backend/optimizer/plan/README
M src/backend/snowball/snowball.sql.in
M src/backend/snowball/snowball_func.sql.in
M src/backend/snowball/stopwords/english.stop
M src/backend/storage/freespace/README
M src/backend/tsearch/thesaurus_sample.ths
M src/backend/tsearch/wparser_def.c
M src/backend/utils/mb/Unicode/ISO10646-GB18030.TXT
M src/backend/utils/mb/Unicode/UCS_to_BIG5.pl
M src/backend/utils/mb/conversion_procs/Makefile
M src/include/utils/formatting.h
M src/interfaces/ecpg/README.dynSQL
M src/interfaces/ecpg/include/ecpg_config.h.in
M src/interfaces/ecpg/preproc/README.parser
M src/interfaces/ecpg/preproc/check_rules.pl
M src/interfaces/ecpg/preproc/ecpg.tokens
M src/interfaces/ecpg/preproc/ecpg.type
M src/interfaces/ecpg/test/compat_informix/test_informix.pgc
M src/interfaces/ecpg/test/connect/Makefile
M src/interfaces/ecpg/test/ecpg_schedule_tcp
M src/interfaces/ecpg/test/expected/compat_informix-test_informix.c
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
M src/interfaces/ecpg/test/expected/preproc-comment.c
M src/interfaces/ecpg/test/expected/preproc-outofscope.c
M src/interfaces/ecpg/test/expected/thread-alloc.c
M src/interfaces/ecpg/test/expected/thread-prep.c
M src/interfaces/ecpg/test/pgtypeslib/Makefile
M src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
M src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc
M src/interfaces/ecpg/test/pgtypeslib/num_test.pgc
M src/interfaces/ecpg/test/preproc/comment.pgc
M src/interfaces/ecpg/test/preproc/struct.h
M src/interfaces/ecpg/test/sql/Makefile
M src/interfaces/ecpg/test/thread/Makefile
M src/interfaces/ecpg/test/thread/alloc.pgc
M src/interfaces/ecpg/test/thread/prep.pgc
M src/pl/plperl/plc_perlboot.pl
M src/pl/plperl/plc_trusted.pl
M src/pl/plperl/sql/plperl.sql
M src/pl/plperl/sql/plperl_trigger.sql
M src/pl/plperl/text2macro.pl
M src/pl/plpython/expected/plpython_spi.out
M src/pl/plpython/sql/plpython_populate.sql
M src/pl/plpython/sql/plpython_schema.sql
M src/pl/plpython/sql/plpython_spi.sql
M src/pl/tcl/expected/pltcl_queries.out
M src/pl/tcl/expected/pltcl_queries_1.out
M src/pl/tcl/modules/README
M src/pl/tcl/modules/unknown.pltcl
M src/pl/tcl/sql/pltcl_queries.sql
M src/port/README
M src/template/dgux
M src/template/netbsd
M src/template/sco
M src/test/performance/runtests.pl
M src/test/performance/sqls/connection
M src/test/performance/sqls/crtsimple
M src/test/performance/sqls/crtsimpleidx
M src/test/performance/sqls/drpsimple
M src/test/performance/sqls/inssimple
M src/test/performance/sqls/orbsimple
M src/test/performance/sqls/slcsimple
M src/test/performance/sqls/vacuum
M src/test/regress/input/copy.source
M src/test/regress/input/create_function_2.source
M src/test/regress/input/misc.source
M src/test/regress/sql/box.sql
M src/test/regress/sql/case.sql
M src/test/regress/sql/create_operator.sql
M src/test/regress/sql/drop.sql
M src/test/regress/sql/drop_if_exists.sql
M src/test/regress/sql/float4.sql
M src/test/regress/sql/float8.sql
M src/test/regress/sql/hash_index.sql
M src/test/regress/sql/hs_primary_extremes.sql
M src/test/regress/sql/int2.sql
M src/test/regress/sql/lseg.sql
M src/test/regress/sql/money.sql
M src/test/regress/sql/numeric_big.sql
M src/test/regress/sql/numerology.sql
M src/test/regress/sql/path.sql
M src/test/regress/sql/polygon.sql
M src/test/regress/sql/portals_p2.sql
M src/test/regress/sql/prepare.sql
M src/test/regress/sql/random.sql
M src/test/regress/sql/select_implicit.sql
M src/test/regress/sql/select_into.sql
M src/test/regress/sql/select_views.sql
M src/test/regress/sql/sequence.sql
M src/test/regress/sql/triggers.sql
M src/test/thread/README
M src/tools/add_cvs_markers
M src/tools/backend/README
M src/tools/backend/backend_dirs.html
M src/tools/copyright
M src/tools/editors/vim.samples
M src/tools/entab/Makefile
M src/tools/find_badmacros
M src/tools/find_static
M src/tools/make_diff/README
M src/tools/msvc/build.pl
M src/tools/msvc/vcregress.pl
M src/tools/pgindent/README
M src/tutorial/syscat.source

Tidy up a few calls to smrgextend().

commit   : d37781fa82fa6b4316e51aca210d5fb53bd33983    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 19 Aug 2010 02:58:37 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 19 Aug 2010 02:58:37 +0000    

Click here for diff

In the new API introduced by my patch to include the backend ID in  
temprel filenames, the last argument to smrgextend() became skipFsync  
rather than isTemp, but these calls didn't get the memo.  It's not  
really a problem to pass rel->rd_istemp rather than just plain false,  
because smgrextend() now automatically skips the fsync for temprels  
anyway, but this seems cleaner and saves some minute number of cycles.  

M src/backend/access/hash/hashpage.c
M src/backend/access/heap/visibilitymap.c
M src/backend/storage/freespace/freespace.c

Reset the per-output-tuple exprcontext each time through the main loop in ExecModifyTable(). This avoids memory leakage when trigger functions leave junk behind in that context (as they more or less must). Problem and solution identified by Dean Rasheed.

commit   : 3573c8346d4c1683c7052e44323abe14fb337e70    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 21:52:24 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 21:52:24 +0000    

Click here for diff

I'm a bit concerned about the longevity of this solution --- once a plan can  
have multiple ModifyTable nodes, we are very possibly going to have to do  
something different.  But it should hold up for 9.0.  

M src/backend/executor/nodeModifyTable.c

Rename utf2ucs() to utf8_to_unicode(), and export it so it can be used elsewhere.

commit   : 2d8314bd43663b7ef45628d283dc5c6c10a60a75    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 19:54:01 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 19:54:01 +0000    

Click here for diff

Similarly rename the version in mbprint.c, not because this affects anything  
but just to keep the two copies in exact sync.  There was some discussion of  
having only one copy in src/port/ instead, but this function is so small  
and unlikely to change that that seems like overkill.  
  
Slightly editorialized version of a patch by Joseph Adams.  (The bug-fix  
aspect of his patch was applied separately, and back-patched.)  

M src/backend/utils/mb/wchar.c
M src/bin/psql/mbprint.c
M src/include/mb/pg_wchar.h

Fix failure of "ALTER TABLE t ADD COLUMN c serial" when done by non-owner.

commit   : b5565bca110c3b2d6fe55cc87d0b3fbb105a504f    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 18:35:21 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 18:35:21 +0000    

Click here for diff

The implicitly created sequence was created as owned by the current user,  
who could be different from the table owner, eg if current user is a  
superuser or some member of the table's owning role.  This caused sanity  
checks in the SEQUENCE OWNED BY code to spit up.  Although possibly we  
don't need those sanity checks, the safest fix seems to be to make sure  
the implicit sequence is assigned the same owner role as the table has.  
(We still do all permissions checks as the current user, however.)  
Per report from Josh Berkus.  
  
Back-patch to 9.0.  The bug goes back to the invention of SEQUENCE OWNED BY  
in 8.2, but the fix requires an API change for DefineRelation(), which seems  
to have potential for breaking third-party code if done in a minor release.  
Given the lack of prior complaints, it's probably not worth fixing in the  
stable branches.  

M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/parser/gram.y
M src/backend/parser/parse_utilcmd.c
M src/backend/tcop/utility.c
M src/include/commands/tablecmds.h
M src/include/nodes/parsenodes.h

Add missing handling of PlannedStmt.transientPlan in copyfuncs/outfuncs.

commit   : 99848ed7cb06ca14ee06bfa5b521c43ea63001a2    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 15:21:54 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 18 Aug 2010 15:21:54 +0000    

Click here for diff

_outPlannedStmt is only debug support, so the omission there was not very  
serious, but the omission in _copyPlannedStmt is a real bug.  The consequence  
would be that a copied plan tree would never be marked as a transient plan,  
so that we would forget we ought to replan it after some not-yet-ready index  
becomes ready for use.  This might explain some past complaints about indexes  
created with CREATE INDEX CONCURRENTLY not being used right away.  Problem  
spotted by Yeb Havinga.  
  
Back-patch to 8.3, where the field was added.  

M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c

Coerce 'unknown' type parameters to the right type in the fixed-params parse_analyze() function. That case occurs e.g with PL/pgSQL EXECUTE ... USING 'stringconstant'.

commit   : ef71375346f8eba52ab3ec8b360869f859c83f3e    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 18 Aug 2010 12:20:15 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 18 Aug 2010 12:20:15 +0000    

Click here for diff

The coercion with a CoerceViaIO node. The result is similar to the coercion  
via input function performed for unknown constants in coerce_type(),  
except that this happens at runtime.  
  
Backpatch to 9.0. The issue is present in 8.4 as well, but the coerce param  
hook infrastructure this patch relies on was introduced in 9.0. Given the  
lack of user reports and harmlessness of the bug, it's not worth attempting  
a different fix just for 8.4.  

M src/backend/parser/parse_param.c

Applied Zoltan's patch to fix a few memleaks in ecpg's pgtypeslib.

commit   : 9a8d15bd41687e1448bcc441adb5e183d5fdcaf2    
  
author   : Michael Meskes <[email protected]>    
date     : Tue, 17 Aug 2010 09:36:05 +0000    
  
committer: Michael Meskes <[email protected]>    
date     : Tue, 17 Aug 2010 09:36:05 +0000    

Click here for diff

M src/interfaces/ecpg/pgtypeslib/numeric.c
M src/interfaces/ecpg/test/compat_informix/dec_test.pgc
M src/interfaces/ecpg/test/expected/compat_informix-dec_test.c
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr
M src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
M src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
M src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.stderr
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test.stderr
M src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c
M src/interfaces/ecpg/test/expected/sql-array.c
M src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc
M src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc
M src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
M src/interfaces/ecpg/test/pgtypeslib/num_test.pgc
M src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc
M src/interfaces/ecpg/test/sql/array.pgc

Revert: looks like Binary Large OBject[sic] wasn't a misspelling

commit   : 7b243aa666e49431f45bec71565d8ca49b7c9ef6    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 17 Aug 2010 04:47:04 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 17 Aug 2010 04:47:04 +0000    

Click here for diff

M doc/src/sgml/lo.sgml

Spell and markup checking

commit   : 5194b9d04988ae10b94b86ba5bc1110377079241    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 17 Aug 2010 04:37:21 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 17 Aug 2010 04:37:21 +0000    

Click here for diff

M doc/src/sgml/arch-dev.sgml
M doc/src/sgml/bki.sgml
M doc/src/sgml/btree-gin.sgml
M doc/src/sgml/btree-gist.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/chkpass.sgml
M doc/src/sgml/citext.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/contrib-spi.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/cvs.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/dblink.sgml
M doc/src/sgml/diskusage.sgml
M doc/src/sgml/docguide.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/fuzzystrmatch.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/gist.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/indices.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/intarray.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/lo.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/oid2name.sgml
M doc/src/sgml/pageinspect.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgbench.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgfreespacemap.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/pgupgrade.sgml
M doc/src/sgml/planstats.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/ref/alter_opfamily.sgml
M doc/src/sgml/ref/alter_role.sgml
M doc/src/sgml/ref/create_opclass.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/create_trigger.sgml
M doc/src/sgml/ref/pg_ctl-ref.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_restore.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/regress.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/release.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/storage.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/trigger.sgml
M doc/src/sgml/unaccent.sgml
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xindex.sgml
M doc/src/sgml/xml2.sgml
M doc/src/sgml/xoper.sgml

Arrange to fsync the contents of lockfiles (both postmaster.pid and the socket lockfile) when writing them. The lack of an fsync here may well explain two different reports we've seen of corrupted lockfile contents, which doesn't particularly bother the running server but can prevent a new server from starting if the old one crashes. Per suggestion from Alvaro.

commit   : ee0e525bfc3a3d0851e36d3d15dce3a8bd7ac029    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 16 Aug 2010 17:32:46 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 16 Aug 2010 17:32:46 +0000    

Click here for diff

Back-patch to all supported versions.  

M src/backend/utils/init/miscinit.c

Make LockDatabaseObject() AcceptInvalidationMessages().

commit   : 66b14030e889f09b49b3be9b93d63a00289d73c7    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 16 Aug 2010 02:02:28 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 16 Aug 2010 02:02:28 +0000    

Click here for diff

This is appropriate for the same reasons we already do it in  
LockSharedObject(): things might have changed while we were waiting  
for the lock.  There doesn't seem to be a live bug here at the moment,  
but that's mostly because it isn't currently used for very much.  

M src/backend/storage/lmgr/lmgr.c

Fix psql's copy of utf2ucs() to match the backend's copy exactly; in particular, propagate a fix in the test to see whether a UTF8 character has length 4 bytes. This is likely of little real-world consequence because 5-or-more-byte UTF8 sequences are not supported by Postgres nor seen anywhere in the wild, but still we may as well get it right. Problem found by Joseph Adams.

commit   : b49c879015d03081c3a515bca25681ca3d50cead    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 16 Aug 2010 00:06:18 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 16 Aug 2010 00:06:18 +0000    

Click here for diff

Bug is aboriginal, so back-patch all the way.  

M src/bin/psql/mbprint.c

Assorted improvements to backup/restore documentation, per Thom Brown.

commit   : f0f46ed66a177e5349a6d84e8fff91e6aa6b0dac    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 23:04:49 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 23:04:49 +0000    

Click here for diff

M doc/src/sgml/backup.sgml

Clarify bit numbering in get_bit/set_bit etc. Per gripe from Boszormenyi Zoltan.

commit   : 521c26ebf7fddb6fa9338b5a40d09a78f58b4377    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 21:26:36 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 21:26:36 +0000    

Click here for diff

M doc/src/sgml/func.sgml

Improve pgarchivecleanup documentation, per comments from Satoshi Nagayasu.

commit   : d915a275c13347bac5fd62151c57f0b9ab763e19    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 20:20:30 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 20:20:30 +0000    

Click here for diff

M doc/src/sgml/pgarchivecleanup.sgml

Avoid unnecessary use of TPS acronym.

commit   : 82954d49e49469ee71a4ead3be60bd7d68e5b9ae    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 19:46:24 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 15 Aug 2010 19:46:24 +0000    

Click here for diff

Robert Haas, per gripe from Erik Rijkers  

M doc/src/sgml/pgbench.sgml

commit   : 4730a540839b7d1e7e0500314117a3132156fe21    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 15 Aug 2010 01:57:03 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 15 Aug 2010 01:57:03 +0000    

Click here for diff

Kevin Grittner, with markup adjustments.  

M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/runtime.sgml

Fix planner to make a reasonable assumption about the amount of memory space used by array_agg(), string_agg(), and similar aggregate functions that use "internal" as their transition datatype. The previous coding thought this took *no* extra space, since "internal" is pass-by-value; but actually these aggregates typically consume a great deal of space. Per bug #5608 from Itagaki Takahiro, and fix suggestion from Hitoshi Harada.

commit   : 22d9ddbb35f5d316312a2220041ff17744a72330    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 15:47:13 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 15:47:13 +0000    

Click here for diff

Back-patch to 8.4, where array_agg was introduced.  

M src/backend/optimizer/util/clauses.c

Fix \ef and \sf to not fail on functions with nonnull probin. Update comment about them in pg_get_functiondef.

commit   : 41b810fe325663d84188220f5af911972d4e4c6e    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 14:20:35 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 14:20:35 +0000    

Click here for diff

M src/backend/utils/adt/ruleutils.c
M src/bin/psql/command.c

Add a \sf (show function) command to psql, for those times when you need to look at a function but don't wish to fire up an editor.

commit   : b6e06942c6b880b79097049757a8d140cd4316c0    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 13:59:49 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 13:59:49 +0000    

Click here for diff

Pavel Stehule, reviewed by Jan Urbanski  

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c

MyBackendId now needs to be PGDLLIMPORT, so that contrib modules can access it on Windows. Per buildfarm.

commit   : 946b07804478d379d29b2b2038a5729b3cad2f55    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 13:37:21 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 14 Aug 2010 13:37:21 +0000    

Click here for diff

M src/include/storage/backendid.h

Further dtrace adjustments for the backend-IDs-in-relpath patch.

commit   : 27f145a40e0e0273d8c25fe5e21ef26a51036197    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 14 Aug 2010 02:22:10 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 14 Aug 2010 02:22:10 +0000    

Click here for diff

Update the documentation, and back out a few ill-considered changes  
whose folly I failed to realize for failure to read the documentation.  

M doc/src/sgml/monitoring.sgml
M src/backend/storage/buffer/bufmgr.c
M src/backend/utils/probes.d

Fix assorted dtrace breakage caused by patch to include backend IDs in temp relpaths.

commit   : 105d4c5ffe0e239173a30615465b4240ead63d05    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 22:54:17 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 22:54:17 +0000    

Click here for diff

Per buildfarm.  

M src/backend/storage/buffer/bufmgr.c
M src/backend/utils/probes.d

Clean up failure to use ClosePager() where appropriate in help.c. Also prevent possible repeat opening of pager in helpSQL().

commit   : 36ba263d8f20b789418e8d86ff7221fecc5add0d    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 20:56:18 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 20:56:18 +0000    

Click here for diff

M src/bin/psql/help.c

Include the backend ID in the relpath of temporary relations.

commit   : debcec7dc31a992703911a9953e299c8d730c778    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 20:10:54 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 20:10:54 +0000    

Click here for diff

This allows us to reliably remove all leftover temporary relation  
files on cluster startup without reference to system catalogs or WAL;  
therefore, we no longer include temporary relations in XLOG_XACT_COMMIT  
and XLOG_XACT_ABORT WAL records.  
  
Since these changes require including a backend ID in each  
SharedInvalSmgrMsg, the size of the SharedInvalidationMessage.id  
field has been reduced from two bytes to one, and the maximum number  
of connections has been reduced from INT_MAX / 4 to 2^23-1.  It would  
be possible to remove these restrictions by increasing the size of  
SharedInvalidationMessage by 4 bytes, but right now that doesn't seem  
like a good trade-off.  
  
Review by Jaime Casanova and Tom Lane.  

M doc/src/sgml/storage.sgml
M src/backend/access/heap/visibilitymap.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/transam/twophase.c
M src/backend/access/transam/xact.c
M src/backend/access/transam/xlogutils.c
M src/backend/catalog/catalog.c
M src/backend/catalog/heap.c
M src/backend/catalog/index.c
M src/backend/catalog/namespace.c
M src/backend/catalog/storage.c
M src/backend/catalog/toasting.c
M src/backend/commands/copy.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/postmaster/bgwriter.c
M src/backend/storage/buffer/bufmgr.c
M src/backend/storage/buffer/localbuf.c
M src/backend/storage/file/fd.c
M src/backend/storage/freespace/freespace.c
M src/backend/storage/smgr/md.c
M src/backend/storage/smgr/smgr.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/cache/inval.c
M src/backend/utils/cache/relcache.c
M src/backend/utils/misc/guc.c
M src/backend/utils/probes.d
M src/include/access/xlog_internal.h
M src/include/catalog/catalog.h
M src/include/catalog/storage.h
M src/include/postmaster/bgwriter.h
M src/include/storage/bufmgr.h
M src/include/storage/relfilenode.h
M src/include/storage/sinval.h
M src/include/storage/smgr.h
M src/include/utils/inval.h
M src/include/utils/rel.h

Minor #include cleanup.

commit   : 3f9479ef3fdf49fc22088be5268fa536cf5d4efd    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 20:04:33 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 20:04:33 +0000    

Click here for diff

I just noticed that libpq's pqsignal.h was violating our general inclusion  
style guidelines by explicitly including postgres_fe.h.  Remove that, and  
put it in pqsignal.c where it belongs.  

M src/interfaces/libpq/pqsignal.c
M src/interfaces/libpq/pqsignal.h

Add xml_is_well_formed, xml_is_well_formed_document, xml_is_well_formed_content functions to the core XML code. Per discussion, the former depends on XMLOPTION while the others do not. These supersede a version previously offered by contrib/xml2.

commit   : a0b7b717a4324f573d3a7651a06037557066eb77    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 18:36:26 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 18:36:26 +0000    

Click here for diff

Mike Fowler, reviewed by Pavel Stehule  

M contrib/xml2/pgxml.sql.in
M contrib/xml2/uninstall_pgxml.sql
M contrib/xml2/xpath.c
M doc/src/sgml/func.sgml
M src/backend/utils/adt/xml.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/xml.h
M src/test/regress/expected/xml.out
M src/test/regress/expected/xml_1.out
M src/test/regress/sql/xml.sql

Fix Assert failure in PushOverrideSearchPath when trying to restore a search path that specifies useTemp, but there is no active temp schema in the current session. (This can happen if the path was saved during a transaction that created a temp schema and was later rolled back.) For existing callers it's sufficient to ignore the useTemp flag in this case, though we might later want to offer an option to create a fresh temp schema. So far as I can tell this is just an Assert failure: in a non-assert build, the code would push a zero onto the new search path, which is useless but not very harmful. Per bug report from Heikki.

commit   : 2a7349f030a4dca61f188b7a7f02a51c6877e621    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 16:27:11 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 16:27:11 +0000    

Click here for diff

Back-patch to 8.3; prior versions don't have this code.  

M src/backend/catalog/namespace.c
M src/backend/utils/cache/plancache.c

Make RecordTransactionCommit() respect wal_level.

commit   : 95ef7cd40da69feff0ab1f2e4964949e6fb15383    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 15:42:21 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 15:42:21 +0000    

Click here for diff

Since the only purpose of WAL-loggin SharedInvalidationMessages is to support  
Hot Standby operation, they needn't be included when wal_level < hot_standby.  
  
Back-patch to 9.0.  
  
Review by Heikki Linnakanagas and Fujii Masao.  

M src/backend/access/transam/xact.c

Fix pg_restore to complain if any arguments remain after parsing the switches and input file name, per bug #5617 from Leo Shklovskii. Rearrange the corresponding code in pg_dump and pg_dumpall so that all three programs handle this in a consistent, straightforward fashion.

commit   : e4155c8483084e2a8d5779002e3b07854c85baf8    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 14:38:04 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 13 Aug 2010 14:38:04 +0000    

Click here for diff

Back-patch to 9.0, but no further.  Although this is certainly a bug, it's  
possible that people have scripts that will be broken by the added error  
check, so it seems better not to change the behavior in stable branches.  

M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_dump/pg_restore.c

Reorder docs on lexical structure slightly for clarity.

commit   : 9b0a86861a5d5cfe35fe8c876289402891022d4a    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 01:12:38 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 13 Aug 2010 01:12:38 +0000    

Click here for diff

Thom Brown  

M doc/src/sgml/syntax.sgml

commit   : 30c22eb8fc9cb0d359a4a943f0fcc0418bbca523    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 12 Aug 2010 23:24:54 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 12 Aug 2010 23:24:54 +0000    

Click here for diff

Fujii Masao  

M src/backend/access/transam/xact.c
M src/backend/storage/ipc/procarray.c
M src/backend/storage/ipc/standby.c
M src/backend/tcop/postgres.c
M src/include/access/xlog.h
M src/include/catalog/pg_control.h

Get rid of a bunch of dubious error handling code in pgbench by just erroring out immediately on any out-of-memory condition. It's rather pointless to imagine that pgbench will be able to continue usefully after a malloc failure, and in any case there were a number of unchecked mallocs.

commit   : 00f76dbffa1e3ff8ff5499cd90d84e886bfb8cbf    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 21:10:59 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 21:10:59 +0000    

Click here for diff

M contrib/pgbench/pgbench.c

Add the ability to compute per-statement latencies (ie, average execution times) to pgbench.

commit   : 5a4e19abe62d06ed3b7285e6e0fa20bae0a52e88    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 20:39:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 20:39:39 +0000    

Click here for diff

Florian Pflug, reviewed by Greg Smith  

M contrib/pgbench/pgbench.c
M doc/src/sgml/pgbench.sgml

Back out syntax case changes --- seems they were intentional.

commit   : 47eeb5e662735a9c4a70b7ad7bd33944ece26a98    
  
author   : Bruce Momjian <[email protected]>    
date     : Thu, 12 Aug 2010 02:03:58 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Thu, 12 Aug 2010 02:03:58 +0000    

Click here for diff

M doc/src/sgml/syntax.sgml

Extend psql's \e and \ef commands so that a line number can be specified, and the editor's cursor will be initially placed on that line. In \e the lines are counted with respect to the query buffer, while in \ef they are counted with line 1 = first line of function body. These choices are useful for positioning the cursor on the line of a previously-reported error.

commit   : 568e709372abad30075c299be28956b5922219b4    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 00:40:59 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 12 Aug 2010 00:40:59 +0000    

Click here for diff

To avoid assumptions about what switch the user's editor takes for this  
purpose, invent a new psql variable EDITOR_LINENUMBER_SWITCH with (at  
present) no default value.  
  
One incompatibility from previous behavior is that "\e 1234" will now  
take "1234" as a line number not a file name.  There are at least two  
ways to select a numerically-named file if you really want to.  
  
Pavel Stehule, reviewed by Jan Urbanski, with further editing by Robert Haas  
and Tom Lane  

M doc/src/sgml/ref/psql-ref.sgml
M src/backend/utils/adt/ruleutils.c
M src/bin/psql/command.c
M src/bin/psql/help.c

Properly lowercase identifiers, uppercase keywords, in doc examples

commit   : a4a3ef344e189d714d06224892e636c3153e8103    
  
author   : Bruce Momjian <[email protected]>    
date     : Wed, 11 Aug 2010 21:48:51 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Wed, 11 Aug 2010 21:48:51 +0000    

Click here for diff

M doc/src/sgml/syntax.sgml

The sanity check added to array_recv() wa a bit too tight; we must continue to accept an empty array with dimension information. array_send() can output such arrays.

commit   : c9ae257e232ab9256bdf867ab9da570c4ab6f10a    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Wed, 11 Aug 2010 19:12:27 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Wed, 11 Aug 2010 19:12:27 +0000    

Click here for diff

Per report from Vladimir Shakhov.  

M src/backend/utils/adt/arrayfuncs.c

Fix one more incorrect errno definition in the ECPG manual.

commit   : 741396936ed79bb8ce9d6feeb3015e1129de8239    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 11 Aug 2010 19:03:16 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 11 Aug 2010 19:03:16 +0000    

Click here for diff

Again, back-patch all the way to 7.4.  

M doc/src/sgml/ecpg.sgml

Fix incorrect errno definitions in ECPG manual.

commit   : ffcd7a1167bfa3f922882734e6ff98281fac7b9c    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 11 Aug 2010 18:52:02 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 11 Aug 2010 18:52:02 +0000    

Click here for diff

ecpgerrno.h hasn't materially changed since PostgreSQL 7.4, so this has  
been wrong for a very long time.  Back-patch all the way.  
  
Satoshi Nagayasu  

M doc/src/sgml/ecpg.sgml

Remove the arbitrary (and undocumented) limit on the number of parameter=value pairs that can be handled by xslt_process().

commit   : c04fd1b9dbdc56ea0b64939e6d62f685b28ecea3    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 Aug 2010 23:02:00 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 Aug 2010 23:02:00 +0000    

Click here for diff

There is much else to do here, but this patch seems useful in its own right  
for as long as this code survives.  
  
Pavel Stehule, reviewed by Mike Fowler  

M contrib/xml2/expected/xml2.out
M contrib/xml2/expected/xml2_1.out
M contrib/xml2/sql/xml2.sql
M contrib/xml2/xslt_proc.c

Add three-parameter forms of array_to_string and string_to_array, to allow better handling of NULL elements within the arrays. The third parameter is a string that should be used to represent a NULL element, or should be translated into a NULL element, respectively. If the third parameter is NULL it behaves the same as the two-parameter form.

commit   : 33f43725fb5e133454a3e1d0a33bd7cbc75c3c59    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 10 Aug 2010 21:51:00 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 10 Aug 2010 21:51:00 +0000    

Click here for diff

There are two incompatible changes in the behavior of the two-parameter form  
of string_to_array.  First, it will return an empty (zero-element) array  
rather than NULL when the input string is of zero length.  Second, if the  
field separator is NULL, the function splits the string into individual  
characters, rather than returning NULL as before.  These two changes make  
this form fully compatible with the behavior of the new three-parameter form.  
  
Pavel Stehule, reviewed by Brendan Jurd  

M doc/src/sgml/func.sgml
M src/backend/utils/adt/array_userfuncs.c
M src/backend/utils/adt/varlena.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/array.h
M src/include/utils/builtins.h
M src/test/regress/expected/arrays.out
M src/test/regress/sql/arrays.sql

commit   : 5148a046367bc1ad72bd80fa25c7411ed8f6cb57    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 Aug 2010 20:42:01 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 Aug 2010 20:42:01 +0000    

Click here for diff

M doc/src/sgml/isn.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/uuid-ossp.sgml
M doc/src/sgml/xml2.sgml

<example> is a floating element, so it's use is inappropriate when the surrounding text refers to the example inline.

commit   : 6d5afc20030741637f6012c1940265ba9cf77554    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 10 Aug 2010 20:41:27 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 10 Aug 2010 20:41:27 +0000    

Click here for diff

M doc/src/sgml/datatype.sgml

Use double quotes rather than double quotes for libpq target anchors.

commit   : 20bf5e03e53464c90ed895a07d5a20414b8f218c    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 10 Aug 2010 02:56:46 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 10 Aug 2010 02:56:46 +0000    

Click here for diff

Per observation from Tom Lane that the previous patch to these files was  
not consistent with what is done elsewhere in the docs.  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/lobj.sgml

Fix incorrect logic in plpgsql for cleanup after evaluation of non-simple expressions. We need to deal with this when handling subscripts in an array assignment, and also when catching an exception. In an Assert-enabled build these omissions led to Assert failures, but I think in a normal build the only consequence would be short-term memory leakage; which may explain why this wasn't reported from the field long ago.

commit   : 46af71ff7eadc62ebc9a5d7e0289b02d05887d54    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 9 Aug 2010 18:50:11 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 9 Aug 2010 18:50:11 +0000    

Click here for diff

Back-patch to all supported versions.  7.4 doesn't have exceptions, but  
otherwise these bugs go all the way back.  
  
Heikki Linnakangas and Tom Lane  

M src/pl/plpgsql/src/pl_exec.c
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Provide stable target anchors for libpq functions.

commit   : 477319829c2e7dd5097fe480c803265cba02aede    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 9 Aug 2010 12:00:24 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 9 Aug 2010 12:00:24 +0000    

Click here for diff

Daniele Varrazzo  

M doc/src/sgml/libpq.sgml
M doc/src/sgml/lobj.sgml

Modify the handling of RAISE without parameters so that the error it throws can be caught in the same places that could catch an ordinary RAISE ERROR in the same location. The previous coding insisted on throwing the error from the block containing the active exception handler; which is arguably more surprising, and definitely unlike Oracle's behavior.

commit   : 2e35d4f35ca3dd822dbf8dcdcceff822cfb43d78    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 9 Aug 2010 02:25:07 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 9 Aug 2010 02:25:07 +0000    

Click here for diff

Not back-patching, since this is a pretty obscure corner case.  The risk  
of breaking somebody's code in a minor version update seems to outweigh  
any possible benefit.  
  
Piyush Newe, reviewed by David Fetter  

M doc/src/sgml/plpgsql.sgml
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/plpgsql.h
M src/test/regress/expected/plpgsql.out
M src/test/regress/sql/plpgsql.sql

Add an xpath_exists() function. This is equivalent to XMLEXISTS except that it offers support for namespace mapping.

commit   : 4dfc4578548ea8f1bf69da5424d1e76a0b110a75    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 8 Aug 2010 19:15:27 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 8 Aug 2010 19:15:27 +0000    

Click here for diff

Mike Fowler, reviewed by David Fetter  

M doc/src/sgml/func.sgml
M src/backend/utils/adt/xml.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/utils/xml.h
M src/test/regress/expected/xml.out
M src/test/regress/expected/xml_1.out
M src/test/regress/sql/xml.sql

Add stats functions and views to provide access to a transaction's own statistics counts. These numbers are being accumulated but haven't yet been transmitted to the collector (and won't be, until the transaction ends). For some purposes, though, it's handy to be able to look at them.

commit   : 46aa77c7bd256b3448cc420e02ff59d7cc0270c1    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 8 Aug 2010 16:27:06 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 8 Aug 2010 16:27:06 +0000    

Click here for diff

Joel Jacobson, reviewed by Itagaki Takahiro  

M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/postmaster/pgstat.c
M src/backend/utils/adt/pgstatfuncs.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/pgstat.h
M src/test/regress/expected/rules.out

Fix 9.0 release notes vacuum mention, not -> now

commit   : 83f5491c63f33cce5b84532cd76602295580809e    
  
author   : Bruce Momjian <[email protected]>    
date     : Sat, 7 Aug 2010 13:07:06 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sat, 7 Aug 2010 13:07:06 +0000    

Click here for diff

Peter Fokkinga  

M doc/src/sgml/release-9.0.sgml

Recognize functional dependency on primary keys. This allows a table's other columns to be referenced without listing them in GROUP BY, so long as the primary key column(s) are listed in GROUP BY.

commit   : e49ae8d3bc588294d07ce1a1272b31718cfca5ef    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 7 Aug 2010 02:44:09 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 7 Aug 2010 02:44:09 +0000    

Click here for diff

Eventually we should also allow functional dependency on a UNIQUE constraint  
when the columns are marked NOT NULL, but that has to wait until NOT NULL  
constraints are represented in pg_constraint, because we need to have  
pg_constraint OIDs for all the conditions needed to ensure functional  
dependency.  
  
Peter Eisentraut, reviewed by Alex Hunsaker and Tom Lane  

M doc/src/sgml/queries.sgml
M doc/src/sgml/ref/select.sgml
M src/backend/catalog/dependency.c
M src/backend/catalog/pg_constraint.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
M src/backend/parser/parse_agg.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_constraint.h
M src/include/nodes/parsenodes.h
A src/test/regress/expected/functional_deps.out
M src/test/regress/parallel_schedule
M src/test/regress/serial_schedule
A src/test/regress/sql/functional_deps.sql

Fix indexterm spelling

commit   : ce6ce1a09dada095c07334d11eb56c5168ed801a    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 6 Aug 2010 20:09:03 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 6 Aug 2010 20:09:03 +0000    

Click here for diff

M doc/src/sgml/xfunc.sgml

commit   : 4672093a8e55bf82c805863693adf991c63a9386    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 19:13:13 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 19:13:13 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Fix inaccurate description of deferrable unique constraints, per Dean Rasheed.

commit   : a209b9850f0c3bec3ae1a4b1565621c5d8354710    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 18:55:24 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 18:55:24 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Rearrange "big features" section of the release notes.

commit   : 7ae6163a4e4c44c905b4964722a2dc2b45ad7922    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 6 Aug 2010 17:56:43 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 6 Aug 2010 17:56:43 +0000    

Click here for diff

Josh Berkus  

M doc/src/sgml/release-9.0.sgml

Add a comment about the initial default value of max_stack_depth.

commit   : f73b765182b3ecb3bd3f14a9022e27c01b16cd21    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 14:51:33 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 6 Aug 2010 14:51:33 +0000    

Click here for diff

M src/backend/utils/misc/guc.c

Fix incorrect pathname in comment.

commit   : 901c0ea2f12df4f9ae014c2c7a81bcb062894400    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 6 Aug 2010 03:46:23 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 6 Aug 2010 03:46:23 +0000    

Click here for diff

M src/backend/utils/cache/syscache.c

Add a very specific hint for the case that we're unable to locate a function matching a call like f(x, ORDER BY y,z). It could be that what the user really wants is f(x,z ORDER BY y). We now have pretty conclusive evidence that many people won't understand this problem without concrete guidance, so give it to them. Per further discussion of the string_agg() problem.

commit   : 1e4c050b2415159aac782d727dbfd987571deab5    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 5 Aug 2010 21:45:35 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 5 Aug 2010 21:45:35 +0000    

Click here for diff

M src/backend/parser/parse_func.c

Document which Python environment variables affect PL/Python

commit   : 2e6dc5328ca2abb01b87e4e60aa325024c1d45c1    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 5 Aug 2010 18:36:33 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 5 Aug 2010 18:36:33 +0000    

Click here for diff

M doc/src/sgml/plpython.sgml

Remove the single-argument form of string_agg(). It added nothing much in functionality, while creating an ambiguity in usage with ORDER BY that at least two people have already gotten seriously confused by. Also, add an opr_sanity test to check that we don't in future violate the newly minted policy of not having built-in aggregates with the same name and different numbers of parameters. Per discussion of a complaint from Thom Brown.

commit   : b0c451e145be23211dce0718cc63e632959591e8    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 5 Aug 2010 18:21:19 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 5 Aug 2010 18:21:19 +0000    

Click here for diff

M doc/src/sgml/func.sgml
M doc/src/sgml/syntax.sgml
M src/backend/utils/adt/varlena.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_aggregate.h
M src/include/catalog/pg_proc.h
M src/include/utils/builtins.h
M src/test/regress/expected/aggregates.out
M src/test/regress/expected/opr_sanity.out
M src/test/regress/sql/aggregates.sql
M src/test/regress/sql/opr_sanity.sql

Standardize get_whatever_oid functions for other object types.

commit   : fd1843ff8979c0461fb3f1a9eab61140c977e32d    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 5 Aug 2010 15:25:36 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 5 Aug 2010 15:25:36 +0000    

Click here for diff

- Rename TSParserGetPrsid to get_ts_parser_oid.  
- Rename TSDictionaryGetDictid to get_ts_dict_oid.  
- Rename TSTemplateGetTmplid to get_ts_template_oid.  
- Rename TSConfigGetCfgid to get_ts_config_oid.  
- Rename FindConversionByName to get_conversion_oid.  
- Rename GetConstraintName to get_constraint_oid.  
- Add new functions get_opclass_oid, get_opfamily_oid, get_rewrite_oid,  
  get_rewrite_oid_without_relid, get_trigger_oid, and get_cast_oid.  
  
The name of each function matches the corresponding catalog.  
  
Thanks to KaiGai Kohei for the review.  

M contrib/tsearch2/tsearch2.c
M contrib/unaccent/unaccent.c
M src/backend/catalog/namespace.c
M src/backend/catalog/pg_constraint.c
M src/backend/commands/comment.c
M src/backend/commands/conversioncmds.c
M src/backend/commands/functioncmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/trigger.c
M src/backend/commands/tsearchcmds.c
M src/backend/parser/parse_utilcmd.c
M src/backend/rewrite/rewriteSupport.c
M src/backend/tsearch/dict_thesaurus.c
M src/backend/tsearch/wparser.c
M src/backend/utils/adt/regproc.c
M src/backend/utils/adt/tsvector_op.c
M src/backend/utils/cache/ts_cache.c
M src/include/catalog/namespace.h
M src/include/catalog/pg_constraint.h
M src/include/commands/defrem.h
M src/include/commands/trigger.h
M src/include/rewrite/rewriteSupport.h

Standardize get_whatever_oid functions for object types with unqualified names.

commit   : 2a6ef3445c73473edb222abf108b323fb7f002dc    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 5 Aug 2010 14:45:09 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 5 Aug 2010 14:45:09 +0000    

Click here for diff

- Add a missing_ok parameter to get_tablespace_oid.  
- Avoid duplicating get_tablespace_od guts in objectNamesToOids.  
- Add a missing_ok parameter to get_database_oid.  
- Replace get_roleid and get_role_checked with get_role_oid.  
- Add get_namespace_oid, get_language_oid, get_am_oid.  
- Refactor existing code to use new interfaces.  
  
Thanks to KaiGai Kohei for the review.  

M src/backend/catalog/aclchk.c
M src/backend/catalog/namespace.c
M src/backend/commands/alter.c
M src/backend/commands/comment.c
M src/backend/commands/dbcommands.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/indexcmds.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/proclang.c
M src/backend/commands/schemacmds.c
M src/backend/commands/tablecmds.c
M src/backend/commands/tablespace.c
M src/backend/commands/user.c
M src/backend/executor/execMain.c
M src/backend/libpq/hba.c
M src/backend/utils/adt/acl.c
M src/backend/utils/adt/dbsize.c
M src/backend/utils/cache/lsyscache.c
M src/include/catalog/namespace.h
M src/include/commands/dbcommands.h
M src/include/commands/defrem.h
M src/include/commands/proclang.h
M src/include/commands/tablespace.h
M src/include/utils/acl.h
M src/include/utils/lsyscache.h

Add xmlexists function

commit   : 641459f26954b04f74d098a758b716297b6554ea    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 5 Aug 2010 04:21:54 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 5 Aug 2010 04:21:54 +0000    

Click here for diff

by Mike Fowler, reviewed by Peter Eisentraut  

M doc/src/sgml/func.sgml
M src/backend/parser/gram.y
M src/backend/utils/adt/xml.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.h
M src/include/parser/kwlist.h
M src/include/utils/xml.h
M src/test/regress/expected/xml.out
M src/test/regress/expected/xml_1.out
M src/test/regress/sql/xml.sql

Fix declared argument name for numeric_maximum_size.

commit   : 26e47efb66b7b41f1c4464105abd3da58a7bf04f    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 4 Aug 2010 17:35:59 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 4 Aug 2010 17:35:59 +0000    

Click here for diff

The previous commit changed the function to say 'typmod' rather than  
'typemod', but I forgot to update the header file.  

M src/include/utils/numeric.h

Fix numeric_maximum_size() calculation.

commit   : 97f38001acc61449f7ac09c539ccc29e40fecd26    
  
author   : Robert Haas <[email protected]>    
date     : Wed, 4 Aug 2010 17:33:09 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Wed, 4 Aug 2010 17:33:09 +0000    

Click here for diff

The old computation can sometimes underestimate the necessary space  
by 2 bytes; however we're not back-patching this, because this result  
isn't used for anything critical.  Per discussion with Tom Lane,  
make the typmod test in this function match the ones in numeric()  
and apply_typmod() exactly.  

M src/backend/utils/adt/numeric.c

Fix sloppy mistakes in documentation of PQescapeLiteral and PQescapeIdentifier. Noted by Dmitriy Igrishin.

commit   : ba19b236769c9dcb5782c804276abd0db667fe61    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 4 Aug 2010 16:27:05 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 4 Aug 2010 16:27:05 +0000    

Click here for diff

M doc/src/sgml/libpq.sgml

Add an example to clarify the use of ORDER BY in multiple-argument aggregates. People seem to not get this right without help.

commit   : 72150db0c5d87143c68efbf555648e3e55685535    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 4 Aug 2010 15:27:57 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 4 Aug 2010 15:27:57 +0000    

Click here for diff

M doc/src/sgml/syntax.sgml

Allow numeric to use a more compact, 2-byte header in many cases.

commit   : 145343534c153d1e6c3cff1fa1855787684d9a38    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 23:09:29 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 23:09:29 +0000    

Click here for diff

Review by Brendan Jurd and Tom Lane.  

M src/backend/utils/adt/numeric.c

Replace the naive HYPOT() macro with a standards-conformant hypotenuse function. This avoids unnecessary overflows and probably gives a more accurate result as well.

commit   : db04f2b3225aa7e6d496a087c4c0e46161744573    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 21:21:03 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 21:21:03 +0000    

Click here for diff

Paul Matthews, reviewed by Andrew Geery  

M src/backend/utils/adt/geo_ops.c
M src/include/utils/geo_decls.h

Regression tests for new btree_gist "not equals" support.

commit   : 90a391c645774c2606ae4b82f4a07130afdd0a42    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 19:53:20 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 19:53:20 +0000    

Click here for diff

Jeff Davis, with minor adjustments by me.  

M contrib/btree_gist/Makefile
A contrib/btree_gist/expected/not_equal.out
A contrib/btree_gist/sql/not_equal.sql

Code review for --quote-all-identifiers patch: add missing --help documentation for new pg_dump/pg_dumpall parameters, make a couple of trivial stylistic adjustments to make the code follow usual project style.

commit   : 349152098654b9b3b2a01d1e207296d888fb5e6e    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 19:24:05 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 19:24:05 +0000    

Click here for diff

M src/backend/utils/adt/ruleutils.c
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/dumputils.h
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c

Fix mangled grammar.

commit   : e20df55ccafc3f70d5d6e1f31763d238330dee2b    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 19:02:21 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 19:02:21 +0000    

Click here for diff

M doc/src/sgml/config.sgml

Kibitzing on \conninfo patch: adjust the order of field output to match the parameters of \connect, and fix oversight of not enabling translation of the messages. Also, adjust \connect's similar messages to match, and deal with 8.2-era violation of basic translatability guidelines there.

commit   : 5b92ef44dd9e289f1722c30c8c0108bdeda4bb3e    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 18:33:09 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 18:33:09 +0000    

Click here for diff

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c

Add EXPLAIN documentation example.

commit   : 83527b1339c340436f82e7d983a4d2d70dfd082e    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 3 Aug 2010 17:14:19 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 3 Aug 2010 17:14:19 +0000    

Click here for diff

gabrielle <[email protected]>  

M doc/src/sgml/ref/explain.sgml

Add some comments to tinterval_cmp_internal pointing out its severe implementation deficiencies. Per discussion of bug #5592, we're not going to change it, but these things should be documented so that if anyone ever reimplements type tinterval, they will be more careful.

commit   : 72405b066b8ea7ba323f773a751e5dec779c4ec9    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 16:31:02 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 16:31:02 +0000    

Click here for diff

M src/backend/utils/adt/nabstime.c

Fix inheritance count tracking in ALTER TABLE .. ADD CONSTRAINT.

commit   : 31b6fc06d83c6de3644c8f2921eb7de0eb92fac3    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 15:47:02 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 3 Aug 2010 15:47:02 +0000    

Click here for diff

Without this patch, constraints inherited by children of a parent  
table which itself has multiple inheritance parents can end up with  
the wrong coninhcount.  After dropping the constraint, the children  
end up with a leftover copy of the constraint that is not dumped  
and cannot be dropped.  There is a similar problem with ALTER TABLE  
.. ADD COLUMN, but that looks significantly more difficult to  
resolve, so I'm committing this fix separately.  
  
Back-patch to 8.4, which is the first release that has coninhcount.  
  
Report by Hank Enting.  

M src/backend/commands/tablecmds.c

Fix markup, other minor editing for recent btree_gist doc changes.

commit   : 8c19d14be57225d52f0cbdce48a9c7e26aa74a27    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 15:15:31 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 15:15:31 +0000    

Click here for diff

M doc/src/sgml/btree-gist.sgml

Be a little more careful with the shift computations in QT2QTN and makeTSQuerySign. The first of these is a live bug, on some platforms, as per bug #5590 from John Regehr. However the consequences seem limited because of the relatively narrow scope of use of QTNode.sign. The shift in makeTSQuerySign is actually safe because TSQS_SIGLEN is unsigned, but it seems like a good idea to insert an explicit cast rather than depend on that.

commit   : 532a4c3531d65fef101d2564234f064883ea92ef    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 01:50:27 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 01:50:27 +0000    

Click here for diff

M src/backend/utils/adt/tsquery_op.c
M src/backend/utils/adt/tsquery_util.c

Fix core dump in QTNodeCompare when tsquery_cmp() is applied to two empty tsqueries. CompareTSQ has to have a guard for the case rather than blindly applying QTNodeCompare to random data past the end of the datums. Also, change QTNodeCompare to be a little less trusting: use an actual test rather than just Assert'ing that the input is sane. Problem encountered while investigating another issue (I saw a core dump in autoanalyze on a table containing multiple empty tsquery values).

commit   : 57641a165ffa7ef33c21c321a59104db7985df74    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 00:10:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 3 Aug 2010 00:10:39 +0000    

Click here for diff

Back-patch to all branches with tsquery support.  
  
In HEAD, also fix some bizarre (though not outright wrong) coding in  
tsq_mcontains().  

M src/backend/utils/adt/tsquery_op.c
M src/backend/utils/adt/tsquery_util.c

Teach levenshtein() about multi-byte characters.

commit   : 57d9aefcaa1e16a3eb65ec7f03b8f8f24825f88e    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 23:20:23 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 23:20:23 +0000    

Click here for diff

Based on a patch by, and further ideas from, Alexander Korotkov.  

M contrib/fuzzystrmatch/fuzzystrmatch.c
M doc/src/sgml/fuzzystrmatch.sgml

Add btree_gist support for searching on "not equals".

commit   : ad17ff95cf0d3df41aa2a7bbc03960d42b8da9f3    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 16:26:48 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 16:26:48 +0000    

Click here for diff

Jeff Davis, with slight editorialization by me.  

M contrib/btree_gist/btree_gist.h
M contrib/btree_gist/btree_gist.sql.in
M contrib/btree_gist/btree_utils_num.c
M contrib/btree_gist/btree_utils_var.c
M doc/src/sgml/btree-gist.sgml

Don't try to force use of -no-cpp-precomp on OS X. It's been five years since Apple shipped a compiler that needed this switch, and there's increasing interest in using other compilers that won't accept the switch at all. Better to let anybody who still needs the switch inject it via CPPFLAGS. Per gripe from Neil Conway.

commit   : 98c2383ba5b51ebd0e79d0bab8a7dc5de47983c0    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 04:51:17 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 04:51:17 +0000    

Click here for diff

M src/template/darwin

Remove ancient PL/pgsql line numbering hack.

commit   : c3a05881de21438a29b6dc721ebd7d1e028a905a    
  
author   : Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 03:46:54 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Mon, 2 Aug 2010 03:46:54 +0000    

Click here for diff

While this hack arguably has some benefit in terms of making PL/pgsql's  
line numbering match the programmer's expectations, it also makes  
PL/pgsql inconsistent with the remaining PLs, making it difficult for  
clients to reliably determine where the error actually is.  On balance,  
it seems better to be consistent.  
  
Pavel Stehule  

M src/pl/plpgsql/src/pl_scanner.c
M src/test/regress/expected/domain.out
M src/test/regress/expected/guc.out
M src/test/regress/expected/plancache.out
M src/test/regress/expected/plpgsql.out

Tweak a couple of macros in the regex code to suppress compiler warnings from "clang". The VERR changes make an assignment unconditional, which is probably easier to read/understand anyway, and one can hardly argue that it's worth shaving cycles off the case of reporting another error when one has already been detected. The INSIST change limits where that macro can be used, but not in a way that creates a problem for any existing call.

commit   : e621037eec4a1c9ec2d7056c9c1c11b9b03932cb    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 02:29:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 02:29:39 +0000    

Click here for diff

M src/backend/regex/regcomp.c
M src/backend/regex/regexec.c

Fix an ancient typo that prevented the detection of conflicting fields when interval input "invalid" was specified together with other fields. Spotted by Neil Conway with the help of a clang warning. Although this has been wrong since the interval code was written more than 10 years ago, it doesn't affect anything beyond which error message you get for a wrong input, so not worth back-patching very far.

commit   : fbcf2cfb53513b9ade1c897e088aeb27252c43d7    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 01:24:54 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 2 Aug 2010 01:24:54 +0000    

Click here for diff

M src/backend/utils/adt/datetime.c
M src/interfaces/ecpg/pgtypeslib/interval.c

Fix ANALYZE's ancient deficiency of not trying to collect stats for expression indexes when the index column type (the opclass opckeytype) is different from the expression's datatype. When coded, this limitation wasn't worth worrying about because we had no intelligence to speak of in stats collection for the datatypes used by such opclasses. However, now that there's non-toy estimation capability for tsvector queries, it amounts to a bug that ANALYZE fails to do this.

commit   : 67becf8d41a082eaaf6db6e0860d49409b79e32b    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 22:38:11 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 22:38:11 +0000    

Click here for diff

The fix changes struct VacAttrStats, and therefore constitutes an API break  
for custom typanalyze functions.  Therefore we can't back-patch it into  
released branches, but it was agreed that 9.0 isn't yet frozen hard enough  
to make such a change unacceptable.  Ergo, back-patch to 9.0 but no further.  
The API break had better be mentioned in 9.0 release notes.  

M src/backend/commands/analyze.c
M src/include/commands/vacuum.h

Add some knowledge about prefix matches to tsmatchsel(). It's not terribly bright, but it beats assuming that a prefix match behaves identically to an exact match, which is what the code was doing before :-(. Noted while experimenting with Artur Dobrowski's example.

commit   : 97532f7c29468010b87e40a04f8daa3eb097f654    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 21:31:08 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 21:31:08 +0000    

Click here for diff

M src/backend/tsearch/ts_selfuncs.c

Fix an additional set of problems in GIN's handling of lossy page pointers. Although the key-combining code claimed to work correctly if its input contained both lossy and exact pointers for a single page in a single TID stream, in fact this did not work, and could not work without pretty fundamental redesign. Modify keyGetItem so that it will not return such a stream, by handling lossy-pointer cases a bit more explicitly than we did before.

commit   : d4fe61b08353c98b636255645a76709f3051df34    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 19:16:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 19:16:39 +0000    

Click here for diff

Per followup investigation of a gripe from Artur Dabrowski.  
An example of a query that failed given his data set is  
select count(*) from search_tab where  
(to_tsvector('german', keywords ) @@ to_tsquery('german', 'ee:* | dd:*')) and  
(to_tsvector('german', keywords ) @@ to_tsquery('german', 'aa:*'));  
  
Back-patch to 8.4 where the lossy pointer code was introduced.  

M src/backend/access/gin/ginget.c
M src/include/access/gin.h

Rewrite the rbtree routines so that an RBNode is the first field of the struct representing a tree entry, rather than being a separately allocated piece of storage. This API is at least as clean as the old one (if not more so --- there were some bizarre choices in there) and it permits a very substantial memory savings, on the order of 2X in ginbulk.c's usage.

commit   : 0454f131616ecafcc9289da919ab9acdabd0aad7    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 02:12:42 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 1 Aug 2010 02:12:42 +0000    

Click here for diff

Also, fix minor memory leaks in code called by ginEntryInsert, in  
particular in ginInsertValue and entryFillRoot, as well as ginEntryInsert  
itself.  These leaks resulted in the GIN index build context continuing  
to bloat even after we'd filled it to maintenance_work_mem and started  
to dump data out to the index.  
  
In combination these fixes restore the GIN index build code to honoring  
the maintenance_work_mem limit about as well as it did in 8.4.  Speed  
seems on par with 8.4 too, maybe even a bit faster, for a non-pathological  
case in which HEAD was formerly slower.  
  
Back-patch to 9.0 so we don't have a performance regression from 8.4.  

M src/backend/access/gin/ginbtree.c
M src/backend/access/gin/ginbulk.c
M src/backend/access/gin/ginentrypage.c
M src/backend/access/gin/ginfast.c
M src/backend/access/gin/gininsert.c
M src/backend/utils/misc/rbtree.c
M src/include/access/gin.h
M src/include/utils/rbtree.h

Make psql distinguish between unique indices and unique constraints.

commit   : afc2900ffd988a858aeab896f028a4fee549cbc9    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 1 Aug 2010 01:08:29 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 1 Aug 2010 01:08:29 +0000    

Click here for diff

Josh Kupershmidt.  Reviewing and kibitzing by Kevin Grittner and me.  

M src/bin/psql/describe.c
M src/test/regress/expected/typed_table.out

Tweak tsmatchsel() so that it examines the structure of the tsquery whenever possible (ie, whenever the tsquery is a constant), even when no statistics are available for the tsvector. For example, foo @@ 'a & b'::tsquery can be expected to be more selective than foo @@ 'a'::tsquery, whether or not we know anything about foo. We use DEFAULT_TS_MATCH_SEL as the assumed selectivity of individual query terms when no stats are available, then combine the terms according to the query's AND/OR structure as usual.

commit   : b8c798ebc528f6b6300174929e66b8128ac5cef8    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 31 Jul 2010 03:27:40 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 31 Jul 2010 03:27:40 +0000    

Click here for diff

Per experimentation with Artur Dabrowski's example.  (The fact that there  
are no stats available in that example is a problem in itself, but  
nonetheless tsmatchsel should be smarter about the case.)  
  
Back-patch to 8.4 to keep all versions of tsmatchsel() in sync.  

M src/backend/tsearch/ts_selfuncs.c

Rewrite the key-combination logic in GIN's keyGetItem() and scanGetItem() routines to make them behave better in the presence of "lossy" index pointers. The previous coding was outright incorrect for some cases, as recently reported by Artur Dabrowski: scanGetItem would fail to return index entries in cases where one index key had multiple exact pointers on the same page as another key had a lossy pointer. Also, keyGetItem was extremely inefficient for cases where a single index key generates multiple "entry" streams, such as an @@ operator with a multiple-clause tsquery. The presence of a lossy page pointer in any one stream defeated its ability to use the opclass consistentFn, resulting in probing many heap pages that didn't really need to be visited. In Artur's example case, a query like WHERE tsvector @@ to_tsquery('a & b') was about 50X slower than the theoretically equivalent WHERE tsvector @@ to_tsquery('a') AND tsvector @@ to_tsquery('b') The way that I chose to fix this was to have GIN call the consistentFn twice with both TRUE and FALSE values for the in-doubt entry stream, returning a hit if either call produces TRUE, but not if they both return FALSE. The code handles this for the case of a single in-doubt entry stream, but punts (falling back to the stupid behavior) if there's more than one lossy reference to the same page. The idea could be scaled up to deal with multiple lossy references, but I think that would probably be wasted complexity. At least to judge by Artur's example, such cases don't occur often enough to be worth trying to optimize.

commit   : 2ab57e089b0b94ca43dadfb3d567ee59a7ca6276    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 31 Jul 2010 00:30:54 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 31 Jul 2010 00:30:54 +0000    

Click here for diff

Back-patch to 8.4.  8.3 did not have lossy GIN index pointers, so not  
subject to these problems.  

M src/backend/access/gin/ginget.c
M src/backend/access/gin/ginscan.c
M src/include/access/gin.h

Make details of the Numeric representation private to numeric.c.

commit   : 8a4dc94ca0efec20b656f61f2efd3ab7f0d64ae7    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 30 Jul 2010 04:30:23 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 30 Jul 2010 04:30:23 +0000    

Click here for diff

Review by Tom Lane.  

M contrib/btree_gist/btree_numeric.c
M src/backend/utils/adt/format_type.c
M src/backend/utils/adt/numeric.c
M src/include/utils/numeric.h

Improved version of patch to protect pg_get_expr() against misuse: look through join alias Vars to avoid breaking join queries, and move the test to someplace where it will catch more possible ways of calling a function. We still ought to throw away the whole thing in favor of a data-type-based solution, but that's not feasible in the back branches.

commit   : f223bb7a4175e921c37bb12e9417541655219564    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 23:16:33 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 23:16:33 +0000    

Click here for diff

This needs to be back-patched further than 9.0, but I don't have time  
to do so today.  Committing now so that the fix gets into 9.0beta4.  

M src/backend/parser/parse_expr.c
M src/backend/parser/parse_func.c
M src/backend/parser/parse_oper.c
M src/include/parser/parse_func.h

Rename asyncCommitLSN to asyncXactLSN to reflect changed role in 9.0. Transaction aborts now record their LSN to avoid corner case behaviour in SR/HS, hence change of name of variables and functions. As pointed out by Fujii Masao. Cosmetic changes only.

commit   : 5b8bd0529ed5912dae04ffc3383bf4ac43e30083    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 29 Jul 2010 22:27:27 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 29 Jul 2010 22:27:27 +0000    

Click here for diff

M src/backend/access/transam/xact.c
M src/backend/access/transam/xlog.c
M src/include/access/xlog.h

Update release notes for 9.0 beta 4. Back-patch some changes that were made only in HEAD.

commit   : 478a2c1208054644a3fd5b73e686901eca679e6d    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 21:18:11 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 21:18:11 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Avoid using text_to_cstring() in levenshtein functions.

commit   : 980341b3c20b6b13cb1c06a501b0b49303f768e6    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 29 Jul 2010 20:11:48 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 29 Jul 2010 20:11:48 +0000    

Click here for diff

Operating directly on the underlying varlena saves palloc and memcpy  
overhead, which testing shows to be significant.  
  
Extracted from a larger patch by Alexander Korotkov.  

M contrib/fuzzystrmatch/fuzzystrmatch.c

commit   : aab353a60b95aadc00f81da0c6d99bde696c4b75    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 20:09:25 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 20:09:25 +0000    

Click here for diff

Back-patch to 9.0, along with an earlier fix to correctly mark cash_in  
and cash_out as stable not immutable (since they depend on lc_monetary).  
  
No catversion bump --- the implications of this are not currently  
severe enough to justify a forced initdb.  

M src/include/catalog/pg_proc.h

Fix indentation of verbatim block elements

commit   : 66424a284879b5e0d456a1c7c1ec06b0b918a798    
  
author   : Peter Eisentraut <[email protected]>    
date     : Thu, 29 Jul 2010 19:34:41 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Thu, 29 Jul 2010 19:34:41 +0000    

Click here for diff

Block elements with verbatim formatting (literallayout, programlisting,  
screen, synopsis) should be aligned at column 0 independent of the surrounding  
SGML, because whitespace is significant, and indenting them creates erratic  
whitespace in the output.  The CSS stylesheets already take care of indenting  
the output.  
  
Assorted markup improvements to go along with it.  

M doc/src/sgml/auto-explain.sgml
M doc/src/sgml/citext.sgml
M doc/src/sgml/client-auth.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/dblink.sgml
M doc/src/sgml/ddl.sgml
M doc/src/sgml/dict-xsyn.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/fuzzystrmatch.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/install-win32.sgml
M doc/src/sgml/intagg.sgml
M doc/src/sgml/intarray.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/lo.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/oid2name.sgml
M doc/src/sgml/pageinspect.sgml
M doc/src/sgml/pgarchivecleanup.sgml
M doc/src/sgml/pgbench.sgml
M doc/src/sgml/pgbuffercache.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/pgfreespacemap.sgml
M doc/src/sgml/pgrowlocks.sgml
M doc/src/sgml/pgstandby.sgml
M doc/src/sgml/pgstatstatements.sgml
M doc/src/sgml/pgstattuple.sgml
M doc/src/sgml/pgtrgm.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/ref/alter_domain.sgml
M doc/src/sgml/ref/alter_sequence.sgml
M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/create_index.sgml
M doc/src/sgml/ref/grant.sgml
M doc/src/sgml/release-8.1.sgml
M doc/src/sgml/release-old.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/sql.sgml
M doc/src/sgml/sslinfo.sgml
M doc/src/sgml/stylesheet.css
M doc/src/sgml/tablefunc.sgml
M doc/src/sgml/textsearch.sgml
M doc/src/sgml/unaccent.sgml
M doc/src/sgml/uuid-ossp.sgml
M doc/src/sgml/vacuumlo.sgml
M doc/src/sgml/xaggr.sgml
M doc/src/sgml/xfunc.sgml
M doc/src/sgml/xml2.sgml

Fix another longstanding problem in copy_relation_data: it was blithely assuming that a local char[] array would be aligned on at least a word boundary. There are architectures on which that is pretty much guaranteed to NOT be the case ... and those arches also don't like non-aligned memory accesses, meaning that log_newpage() would crash if it ever got invoked. Even on Intel-ish machines there's a potential for a large performance penalty from doing I/O to an inadequately aligned buffer. So palloc it instead.

commit   : 984d56b80f5a945db2bfa80499b5ed913848242b    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 19:23:20 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 19:23:20 +0000    

Click here for diff

Backpatch to 8.0 --- 7.4 doesn't have this code.  

M src/backend/commands/tablecmds.c

Work around a documentation toolchain problem by replacing the "AIX-fixlevels" table with a <variablelist> carrying the same information. Previously the 9.0 documentation was failing to build as a US-size PDF file. It's quite obscure what the real problem is or why this avoids it, but we need a hack now so we can build docs for beta4.

commit   : 5b48e2ecd469380d7ab10e0ea6bc0345dee01dbe    
  
author   : Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 18:29:52 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Thu, 29 Jul 2010 18:29:52 +0000    

Click here for diff

In passing do a bit of editing in the AIX installation docs, in particular  
remove a long-obsolete claim that the regression tests are likely to fail.  

M doc/src/sgml/installation.sgml

Fix possible page corruption by ALTER TABLE .. SET TABLESPACE.

commit   : 1a078629acac290c972edeb6ae096e26b48ca032    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 29 Jul 2010 16:14:36 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 29 Jul 2010 16:14:36 +0000    

Click here for diff

If a zeroed page is present in the heap, ALTER TABLE .. SET TABLESPACE will  
set the LSN and TLI while copying it, which is wrong, and heap_xlog_newpage()  
will do the same thing during replay, so the corruption propagates to any  
standby.  Note, however, that the bug can't be demonstrated unless archiving  
is enabled, since in that case we skip WAL logging altogether, and the LSN/TLI  
are not set.  
  
Back-patch to 8.0; prior releases do not have tablespaces.  
  
Analysis and patch by Jeff Davis.  Adjustments for back-branches and minor  
wordsmithing by me.  

M src/backend/access/heap/heapam.c

Add explicit regression tests for ALTER TABLE lock levels. Use this to catch a couple of lock level assignments that slipped through manual testing, per Peter Eisentraut.

commit   : 04e17bae50a73af524731fa11210d5c3f7d8e1f9    
  
author   : Simon Riggs <[email protected]>    
date     : Thu, 29 Jul 2010 11:06:34 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Thu, 29 Jul 2010 11:06:34 +0000    

Click here for diff

M src/backend/commands/cluster.c
M src/backend/commands/tablecmds.c
M src/include/commands/cluster.h
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql

Remove wildly obsolete type attribute externallength from chkpass

commit   : f0790a642c25bc3cc869331ba04656fd47323b81    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 28 Jul 2010 20:34:34 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 28 Jul 2010 20:34:34 +0000    

Click here for diff

M contrib/chkpass/chkpass.sql.in

Fix oversight in new EvalPlanQual logic: the second loop over the ExecRowMark list in ExecLockRows() forgot to allow for the possibility that some of the rowmarks are for child tables that aren't relevant to the current row. Per report from Kenichiro Tanaka.

commit   : 77c75076f3f49ef19b5e59eae531f1836613ed56    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 28 Jul 2010 17:21:56 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 28 Jul 2010 17:21:56 +0000    

Click here for diff

M src/backend/executor/nodeLockRows.c

Reduce lock levels of CREATE TRIGGER and some ALTER TABLE, CREATE RULE actions. Avoid hard-coding lockmode used for many altering DDL commands, allowing easier future changes of lock levels. Implementation of initial analysis on DDL sub-commands, so that many lock levels are now at ShareUpdateExclusiveLock or ShareRowExclusiveLock, allowing certain DDL not to block reads/writes. First of number of planned changes in this area; additional docs required when full project complete.

commit   : 2dbbda02e7e688311e161a912a0ce00cde9bb6fc    
  
author   : Simon Riggs <[email protected]>    
date     : Wed, 28 Jul 2010 05:22:24 +0000    
  
committer: Simon Riggs <[email protected]>    
date     : Wed, 28 Jul 2010 05:22:24 +0000    

Click here for diff

M doc/src/sgml/mvcc.sgml
M src/backend/catalog/pg_shdepend.c
M src/backend/commands/alter.c
M src/backend/commands/tablecmds.c
M src/backend/commands/trigger.c
M src/backend/commands/typecmds.c
M src/backend/parser/parse_utilcmd.c
M src/backend/rewrite/rewriteDefine.c
M src/backend/utils/adt/ri_triggers.c
M src/include/commands/tablecmds.h

Fix potential failure when hashing the output of a subplan that produces a pass-by-reference datatype with a nontrivial projection step. We were using the same memory context for the projection operation as for the temporary context used by the hashtable routines in execGrouping.c. However, the hashtable routines feel free to reset their temp context at any time, which'd lead to destroying input data that was still needed. Report and diagnosis by Tao Ma.

commit   : 133924e13e004db8979424bf5436e21b0a09a069    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 28 Jul 2010 04:50:50 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 28 Jul 2010 04:50:50 +0000    

Click here for diff

Back-patch to 8.1, where the problem was introduced by the changes that  
allowed us to work with "virtual" tuples instead of materializing intermediate  
tuple values everywhere.  The earlier code looks quite similar, but it doesn't  
suffer the problem because the data gets copied into another context as a  
result of having to materialize ExecProject's output tuple.  

M src/backend/executor/nodeSubplan.c
M src/include/nodes/execnodes.h
M src/test/regress/expected/subselect.out
M src/test/regress/sql/subselect.sql

Show psql timing output even in quiet mode

commit   : 4ff9c8dd48b265d925be8bf90ac65c34a249c7b5    
  
author   : Peter Eisentraut <[email protected]>    
date     : Wed, 28 Jul 2010 04:39:14 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Wed, 28 Jul 2010 04:39:14 +0000    

Click here for diff

These two settings ought to be independent of each other.  

M src/bin/psql/common.c

Add ssl_cipher() and ssl_version() functions to contrib/sslinfo.

commit   : 6d16902eda62c0bd6deb342d7234e81a9def0f48    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 23:43:42 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 23:43:42 +0000    

Click here for diff

Review by Dave Page.  

M contrib/sslinfo/sslinfo.c
M contrib/sslinfo/sslinfo.sql.in
M contrib/sslinfo/uninstall_sslinfo.sql
M doc/src/sgml/sslinfo.sgml

Fix typo in PL/pgsql code example.

commit   : 9b6b0b0d9aaaaba98a63307b48e2ade2ca8c5187    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 20:02:06 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 20:02:06 +0000    

Click here for diff

Backpatch to 8.4.  
  
Marc Cousin.  Review by Kevin Grittner.  

M doc/src/sgml/plpgsql.sgml

Spelling fixes

commit   : d33cfbd2e017c631913fcbdf9447248679297ca5    
  
author   : Peter Eisentraut <[email protected]>    
date     : Tue, 27 Jul 2010 19:01:16 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Tue, 27 Jul 2010 19:01:16 +0000    

Click here for diff

M doc/src/sgml/config.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/install-win32.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/release-9.0.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xml2.sgml

In postgresql.conf.sample, use on/off rather than true/false.

commit   : e0226a9bf2dd7e639754d530d21e98c929344f6a    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 16:06:53 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 27 Jul 2010 16:06:53 +0000    

Click here for diff

We used to be consistent about this, but my recent patch to add a  
restart_after_crash GUC failed to follow the existing convention.  
  
Report and patch from Fujii Masao.  

M src/backend/utils/misc/postgresql.conf.sample

Ensure $_SHARED is declared in the main:: namespace, per bugs #5570 and #5571.

commit   : 7badf1b25d0d1b5422b215ad6ef7cd2094b4a244    
  
author   : Alvaro Herrera <[email protected]>    
date     : Tue, 27 Jul 2010 04:18:28 +0000    
  
committer: Alvaro Herrera <[email protected]>    
date     : Tue, 27 Jul 2010 04:18:28 +0000    

Click here for diff

Author: Alex Hunsaker  

M src/pl/plperl/expected/plperl_shared.out
M src/pl/plperl/plc_perlboot.pl
M src/pl/plperl/sql/plperl_shared.sql

Fix grammar

commit   : 314ef0ec364f2edfd6b9f1e5a159e2e918229352    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 26 Jul 2010 20:28:49 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 26 Jul 2010 20:28:49 +0000    

Click here for diff

backpatched to 8.1  

M doc/src/sgml/perform.sgml

Add table creation and population to example

commit   : b4d7ea5f6e3cce29b0ba4a373d3a36aa2542d86b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 26 Jul 2010 20:14:05 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 26 Jul 2010 20:14:05 +0000    

Click here for diff

from John Gage  

M doc/src/sgml/xfunc.sgml

Remove tabs from sgml file.

commit   : d017f8359c863ff4064f3fdb66aa07d4dcf380c9    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 26 Jul 2010 01:43:52 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 26 Jul 2010 01:43:52 +0000    

Click here for diff

M doc/src/sgml/ref/create_table.sgml

CREATE TABLE IF NOT EXISTS.

commit   : a3b012b560f8871e9c24abb24e28cabc6d3c92ea    
  
author   : Robert Haas <[email protected]>    
date     : Sun, 25 Jul 2010 23:21:22 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Sun, 25 Jul 2010 23:21:22 +0000    

Click here for diff

Reviewed by Bernd Helmle.  

M doc/src/sgml/ref/create_table.sgml
M src/backend/bootstrap/bootparse.y
M src/backend/catalog/heap.c
M src/backend/catalog/toasting.c
M src/backend/commands/cluster.c
M src/backend/commands/sequence.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/commands/view.c
M src/backend/executor/execMain.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/parser/gram.y
M src/backend/tcop/utility.c
M src/include/catalog/heap.h
M src/include/nodes/parsenodes.h
M src/test/regress/expected/create_table.out
M src/test/regress/expected/typed_table.out
M src/test/regress/sql/create_table.sql
M src/test/regress/sql/typed_table.sql

Add INSERT statement to example so that it can be reproduced

commit   : edff75bef809629c197c27b23f57baa36330d12e    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 25 Jul 2010 08:30:42 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 25 Jul 2010 08:30:42 +0000    

Click here for diff

from John Gage  

M doc/src/sgml/xfunc.sgml

Adjust check_for_isn_and_int8_passing_mismatch() so it is called for all migrations.

commit   : 8af787ea24916439c7c2d8086a577f4bf9a4bc04    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 25 Jul 2010 03:47:29 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 25 Jul 2010 03:47:29 +0000    

Click here for diff

Backpatch to 9.0.  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.h
M contrib/pg_upgrade/version_old_8_3.c

Prevent pg_upgrade from migrating databases that use reg* data types where the oid is not preserved by pg_upgrade (everything but pg_type). Update documentation.

commit   : f31b1fd7c1af812561f8729f80ecc8ad55f81a2a    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 25 Jul 2010 03:28:32 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 25 Jul 2010 03:28:32 +0000    

Click here for diff

Per bug report from [email protected].  

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/function.c
M contrib/pg_upgrade/version_old_8_3.c
M doc/src/sgml/pgupgrade.sgml

Fix typo

commit   : c3f903aca7e5f75d6deb0acc2c758791ad9bfdd4    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 16:46:57 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 16:46:57 +0000    

Click here for diff

M doc/src/sgml/datatype.sgml

Tidy up boolean data type page

commit   : caf2d69ee0f80daab7168adff3a721fbf94f7ca7    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 12:17:35 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 12:17:35 +0000    

Click here for diff

by Thom Brown  

M doc/src/sgml/datatype.sgml

Remove tab from SGML file

commit   : f581215660c733f346e12a718e4596736b87ab69    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 12:16:20 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sat, 24 Jul 2010 12:16:20 +0000    

Click here for diff

M doc/src/sgml/config.sgml

Add more checks against altering typed tables

commit   : 0156840e4e4647bef6c6278265b748c8a799e317    
  
author   : Peter Eisentraut <[email protected]>    
date     : Fri, 23 Jul 2010 20:04:18 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Fri, 23 Jul 2010 20:04:18 +0000    

Click here for diff

- Prohibit altering column type  
- Prohibit changing inheritance  
- Move checks from Exec to Prep phases in ALTER TABLE code  
  
backpatched to 9.0  

M src/backend/commands/tablecmds.c
M src/test/regress/expected/typed_table.out
M src/test/regress/sql/typed_table.sql

Have psql avoid describing local sockets as host names.

commit   : 87e0b7422d70ff4fb69612ef7ba3cbee6ed8d2ae    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 23 Jul 2010 14:56:54 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 23 Jul 2010 14:56:54 +0000    

Click here for diff

We now use the phrase 'via local socket in' rather than 'on host' in both  
\c and \conninfo output, when applicable.  
  
Fujii Masao, with some kibitzing by me.  

M src/bin/psql/command.c

Avoid deep recursion when assigning XIDs to multiple levels of subxacts.

commit   : 7be8946c78935f20faf17f8e313c4b86cb773967    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 23 Jul 2010 00:43:00 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 23 Jul 2010 00:43:00 +0000    

Click here for diff

Backpatch to 8.0.  
  
Andres Freund, with cleanup and adjustment for older branches by me.  

M src/backend/access/transam/xact.c

Add missing function prototype.

commit   : bca03b12c14cb49f487d02d17d1a2034c35ae844    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 13:03:11 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 13:03:11 +0000    

Click here for diff

Fujii Masao  

M src/backend/replication/walsender.c

Fix bogus server version in pg_dumpall --quote-all-identifiers.

commit   : 4da29da18142b24a190c250f6970d8f268596e82    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 01:25:01 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 01:25:01 +0000    

Click here for diff

M src/bin/pg_dump/pg_dumpall.c

Add options to force quoting of all identifiers.

commit   : ce68df468a41d8dbb992184aad490c07d02ca721    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 01:22:35 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 01:22:35 +0000    

Click here for diff

I've added a quote_all_identifiers GUC which affects the behavior  
of the backend, and a --quote-all-identifiers argument to pg_dump  
and pg_dumpall which sets the GUC and also affects the quoting done  
internally by those applications.  
  
Design by Tom Lane; review by Alex Hunsaker; in response to bug #5488  
filed by Hartmut Goebel.  

M doc/src/sgml/config.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/bin/pg_dump/dumputils.c
M src/bin/pg_dump/dumputils.h
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/include/utils/builtins.h

Centralize DML permissions-checking logic.

commit   : b8c6c71d1c513391975fc107a95f104aeeac3117    
  
author   : Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 00:47:59 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Thu, 22 Jul 2010 00:47:59 +0000    

Click here for diff

Remove bespoke code in DoCopy and RI_Initial_Check, which now instead  
fabricate call ExecCheckRTPerms with a manufactured RangeTblEntry.  
This is intended to make it feasible for an enhanced security provider  
to actually make use of ExecutorCheckPerms_hook, but also has the  
advantage that RI_Initial_Check can allow use of the fast-path when  
column-level but not table-level permissions are present.  
  
KaiGai Kohei.  Reviewed (in an earlier version) by Stephen Frost, and by me.  
Some further changes to the comments by me.  

M src/backend/commands/copy.c
M src/backend/executor/execMain.c
M src/backend/utils/adt/ri_triggers.c
M src/include/executor/executor.h

CVS test: please ignore

commit   : 9f8cf32b341f3af070c512c7d6ad7f6a5aa7505b    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 20 Jul 2010 18:38:53 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 20 Jul 2010 18:38:53 +0000    

Click here for diff

Does modification just of CVS tag text cause an empty CVS diff for the commit?  

M src/backend/catalog/README

commit   : c86f467d18aa58e18fd85b560b46d8de014e6017    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 20 Jul 2010 18:14:16 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 20 Jul 2010 18:14:16 +0000    

Click here for diff

Report from Tom Lane.  
  
Backpatch to 9.0.  

M src/backend/commands/dbcommands.c
M src/backend/commands/tablespace.c

Have \conninfo mention the port even for local sockets.

commit   : 8ceb68b0ce70293038507c4c8f800767dbee8905    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 14:14:30 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 14:14:30 +0000    

Click here for diff

Per discussion with David Christensen, there can be multiple  
instances of PG accessible via local sockets, and you need the port  
to see which one you're actually connected to.  David's original  
patch worked this way, but I inadvertently ripped it out during  
commit.  

M src/bin/psql/command.c

Add \conninfo command to psql, to show current connection info.

commit   : 013ed0bd814218076385de8bb8438e2020abdf50    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 03:54:19 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 03:54:19 +0000    

Click here for diff

David Christensen. Reviewed by Steve Singer.  Some further changes by me.  

M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/help.c
M src/bin/psql/tab-complete.c

Make ECPG regression tests independent of standard_conforming_strings.

commit   : b25749cc64995ae668f6744765169b354a7f43be    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 01:57:19 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 01:57:19 +0000    

Click here for diff

Per buildfarm, again.  

M src/interfaces/ecpg/test/expected/sql-quote.c
M src/interfaces/ecpg/test/expected/sql-quote.stderr
M src/interfaces/ecpg/test/expected/sql-quote.stdout
M src/interfaces/ecpg/test/sql/quote.pgc

Make hstore regression tests independent of standard_conforming_strings.

commit   : 0e22e08fe5a5de9baa0a4ec12c8df548594a461a    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 01:22:52 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 01:22:52 +0000    

Click here for diff

Per buildfarm.  

M contrib/hstore/expected/hstore.out
M contrib/hstore/sql/hstore.sql

Add restart_after_crash GUC.

commit   : 5ffaa9005c451330bcde29d11a9385c0900ee707    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 00:47:53 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 00:47:53 +0000    

Click here for diff

Normally, we automatically restart after a backend crash, but in some  
cases when PostgreSQL is invoked by clusterware it may be desirable to  
suppress this behavior, so we provide an option which does this.  
Since no existing GUC group quite fits, create a new group called  
"error handling options" for this and the previously undocumented GUC  
exit_on_error, which is now documented.  
  
Review by Fujii Masao.  

M doc/src/sgml/config.sgml
M src/backend/postmaster/postmaster.c
M src/backend/utils/misc/check_guc
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/postmaster/postmaster.h
M src/include/utils/guc_tables.h

Change the default value of standard_conforming_strings to on.

commit   : 0839f312e92c7ab0aecb2c4133197a7da7c5fc39    
  
author   : Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 00:34:44 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Tue, 20 Jul 2010 00:34:44 +0000    

Click here for diff

This change should be publicized to driver maintainers at once and  
release-noted as an incompatibility with previous releases.  

M doc/src/sgml/config.sgml
M doc/src/sgml/syntax.sgml
M src/backend/parser/scan.l
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample

Portability fixes for Solaris for requirepeer feature patch

commit   : 0b4a0868f92baca61b5db5ea7c5e3c919621db4d    
  
author   : Peter Eisentraut <[email protected]>    
date     : Mon, 19 Jul 2010 18:53:25 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Mon, 19 Jul 2010 18:53:25 +0000    

Click here for diff

per report from Dave Page  

M src/interfaces/libpq/fe-connect.c

Remove unnecessary "Not safe to send CSV data" complaint from elog.c's fallback path when CSV logging is configured but not yet operational. It's sufficient to send the message to stderr, as we were already doing, and the "Not safe" gripe has already confused at least two core members ...

commit   : cf5305f4066d827269b27f75af52dc2699d5426f    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 23:43:32 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 23:43:32 +0000    

Click here for diff

Backpatch to 9.0, but not further --- doesn't seem appropriate to change  
this behavior in stable branches.  

M src/backend/utils/error/elog.c

Allow ORDER BY/GROUP BY/etc items to match targetlist items regardless of any implicit casting previously applied to the targetlist item. This is reasonable because the implicit cast, by definition, wasn't written by the user; so we are preserving the expected behavior that ORDER BY items match textually equivalent tlist items. The case never arose before because there couldn't be any implicit casting of a top-level SELECT item before we process ORDER BY etc. But now it can arise in the context of aggregates containing ORDER BY clauses, since the "targetlist" is the already-casted list of arguments for the aggregate. The net effect is that the datatype used for ORDER BY/DISTINCT purposes is the aggregate's declared input type, not that of the original input column; which is a bit debatable but not horrendous, and to do otherwise would require major rework that doesn't seem justified.

commit   : fba999cb2c8aeafc113b965682bcc9f9ce081c88    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 19:37:49 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 19:37:49 +0000    

Click here for diff

Per bug #5564 from Daniel Grace.  Back-patch to 9.0 where aggregate ORDER BY  
was implemented.  

M src/backend/parser/parse_clause.c
M src/test/regress/expected/aggregates.out
M src/test/regress/sql/aggregates.sql

Fix up poor handling of unsupported-platform case in requirepeer patch.

commit   : 1b51018afce1461c00d745b0ac61bc4d4744d9bc    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 17:08:11 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 17:08:11 +0000    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Fix thinko in recent patch: 'sock' should be 'conn->sock'.

commit   : 25241aee6089509fb014e0510a3e92f6769e312d    
  
author   : Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 16:42:20 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sun, 18 Jul 2010 16:42:20 +0000    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Add SO_PEERCRED check in new unix domain socket permission checking code.

commit   : 9c5ea833a090e55fe35e8d8b52fbc81fc893f57a    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 18 Jul 2010 15:51:00 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 18 Jul 2010 15:51:00 +0000    

Click here for diff

M src/interfaces/libpq/fe-connect.c

Add server authentication over Unix-domain sockets

commit   : 040aee295ef66ce772050c99902e424d99c2124b    
  
author   : Peter Eisentraut <[email protected]>    
date     : Sun, 18 Jul 2010 11:37:26 +0000    
  
committer: Peter Eisentraut <[email protected]>    
date     : Sun, 18 Jul 2010 11:37:26 +0000    

Click here for diff

This adds a libpq connection parameter requirepeer that specifies the user  
name that the server process is expected to run under.  
  
reviewed by KaiGai Kohei  

M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/fe-connect.c
M src/interfaces/libpq/libpq-int.h

Simplify missing tablespace replay error hint message, but only in HEAD so we don't need to re-translate for 9.0.

commit   : ed92bec07983931f856214a70982cc0382c464a1    
  
author   : Bruce Momjian <[email protected]>    
date     : Sun, 18 Jul 2010 04:47:46 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Sun, 18 Jul 2010 04:47:46 +0000    

Click here for diff

M src/backend/commands/tablespace.c

Add a log_file_mode GUC that allows control of the file permissions set on log files created by the syslogger process.

commit   : 3ec694e17bc01cec4ae2000847f25e3d549888c0    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 22:25:51 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 22:25:51 +0000    

Click here for diff

In passing, make unix_file_permissions display its value in octal, same  
as log_file_mode now does.  
  
Martin Pihlak  

M doc/src/sgml/config.sgml
M src/backend/postmaster/syslogger.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/postmaster/syslogger.h

Fix typo spotted by Thom Brown.

commit   : 6b0937cd58a8a777c53f7c1651e0b04cdf3f4784    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 16 Jul 2010 11:35:40 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 16 Jul 2010 11:35:40 +0000    

Click here for diff

M doc/src/sgml/wal.sgml

Add a paragraph explaining what restartpoints are. Mention that wal_keep_segments does not take effect during recovery.

commit   : 8f9c46117569131e63f36dbd5412f68d9ab167b2    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Fri, 16 Jul 2010 11:20:23 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Fri, 16 Jul 2010 11:20:23 +0000    

Click here for diff

Fujii Masao  

M doc/src/sgml/config.sgml
M doc/src/sgml/wal.sgml

Add support for dividing money by money (yielding a float8 result) and for casting between money and numeric.

commit   : 7590ddb3eba2e8bcbd531687789f56f9e0658277    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 02:15:56 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 02:15:56 +0000    

Click here for diff

Andy Balholm, reviewed by Kevin Grittner  

M doc/src/sgml/datatype.sgml
M src/backend/utils/adt/cash.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_cast.h
M src/include/catalog/pg_operator.h
M src/include/catalog/pg_proc.h
M src/include/utils/cash.h

Remove a sanity check in the exclusion-constraint code that prevented users from defining non-self-conflicting constraints.

commit   : e11cfa87be2144dd9fd2c73480c708f61d40625d    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 00:45:30 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 00:45:30 +0000    

Click here for diff

Jeff Davis  
  
Note: I (tgl) objected to removing this check in 9.0 on the grounds that it  
was an important sanity check in new, poorly tested code.  However, it should  
be all right to remove it for 9.1, since we'll get field testing from the  
9.0 branch.  

M src/backend/executor/execUtils.c

Remove duplicate code in DefineOpFamily().

commit   : 8514bf45e755ed779d2076c4784d903777551b14    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 00:13:23 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 16 Jul 2010 00:13:23 +0000    

Click here for diff

The code was probably meant to be this way all along, since the subroutine  
CreateOpFamily previously had only one caller.  But it wasn't.  
  
KaiGai Kohei  

M src/backend/commands/opclasscmds.c

Use an <xref> for restore_command reference. Marko Tiikkaja

commit   : 25be9b1d54ad956d17bbee3e377b82b5f7d934b6    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 22:04:21 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 22:04:21 +0000    

Click here for diff

M doc/src/sgml/high-availability.sgml

Fix several problems in pg_dump's handling of SQL/MED objects, notably failure to dump a PUBLIC user mapping correctly, as per bug #5560 from Shigeru Hanada. Use the pg_user_mappings view rather than trying to access pg_user_mapping directly, so that the code doesn't fail when run by a non-superuser. And clean up some minor carelessness such as unsafe usage of fmtId().

commit   : 599dba4aab4f3b91aac606ee7158b4dc9b252a63    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 21:21:08 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 21:21:08 +0000    

Click here for diff

Back-patch to 8.4 where this code was added.  

M src/bin/pg_dump/pg_dump.c

Allow full SSL certificate verification (wherein libpq checks its host name parameter against server cert's CN field) to succeed in the case where both host and hostaddr are specified. As with the existing precedents for Kerberos, GSSAPI, SSPI, it is the calling application's responsibility that host and hostaddr match up --- we just use the host name as given. Per bug #5559 from Christopher Head.

commit   : d494e685c580ae149639f4a380157996a7b61f74    
  
author   : Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 17:09:45 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Wed, 14 Jul 2010 17:09:45 +0000    

Click here for diff

In passing, make the error handling and messages for the no-host-name-given  
failure more consistent among these four cases, and correct a lie in the  
documentation: we don't attempt to reverse-lookup host from hostaddr  
if host is missing.  
  
Back-patch to 8.4 where SSL cert verification was introduced.  

M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/fe-auth.c
M src/interfaces/libpq/fe-secure.c
M src/interfaces/libpq/libpq-int.h

Teach EXPLAIN to print PARAM_EXEC Params as the referenced expressions, rather than just $N. This brings the display of nestloop-inner-indexscan plans back to where it's been, and incidentally improves the display of SubPlan parameters as well. In passing, simplify the EXPLAIN code by having it deal primarily in the PlanState tree rather than separately searching Plan and PlanState trees. This is noticeably cleaner for subplans, and about a wash elsewhere.

commit   : 1cc29fe7c60ba643c114979dbe588d3a38005449    
  
author   : Tom Lane <[email protected]>    
date     : Tue, 13 Jul 2010 20:57:19 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Tue, 13 Jul 2010 20:57:19 +0000    

Click here for diff

One small difference from previous behavior is that EXPLAIN will no longer  
qualify local variable references in inner-indexscan plan nodes, since it  
no longer sees such nodes as possibly referencing multiple tables.  Vars  
referenced through PARAM_EXEC Params are still forcibly qualified, though,  
so I don't think the display is any more confusing than before.  Adjust a  
couple of examples in the documentation to match this behavior.  

M doc/src/sgml/perform.sgml
M doc/src/sgml/planstats.sgml
M src/backend/commands/explain.c
M src/backend/utils/adt/ruleutils.c
M src/include/utils/builtins.h

On Win32, pg_upgrade cannot sent any server log output to the log file because of file access limitations on that platform.

commit   : 4504a1bc017ff006c129dfce3e691f0d9b29a0c3    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 20:03:32 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 20:03:32 +0000    

Click here for diff

M contrib/pg_upgrade/server.c

Remove incorrect email address for pg_upgrade bug reports.

commit   : 477c01b00d52635a3a850fff5afa6c0fe8fb56ed    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 18:14:14 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 18:14:14 +0000    

Click here for diff

M contrib/pg_upgrade/option.c

In pg_upgrade, report /bin directory checks independent of /data checks.

commit   : f87bd25f009210a8c4eabcd066dd9b5f6b8ef857    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 18:09:55 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 18:09:55 +0000    

Click here for diff

M contrib/pg_upgrade/exec.c

Print each test_fsync description while test is running, rather than at the end.

commit   : bae8283557e08c71c263288b32ebcbaa86b152ca    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 17:00:50 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 17:00:50 +0000    

Click here for diff

M src/tools/fsync/test_fsync.c

In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc.

commit   : 804f96accbfe25a13f464788f0b8f1266430cedc    
  
author   : Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 15:56:53 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Tue, 13 Jul 2010 15:56:53 +0000    

Click here for diff

M contrib/pg_upgrade/check.c
M contrib/pg_upgrade/pg_upgrade.c

Oops, in the previous fix to prevent a cursor that's being used in a FOR loop from being dropped, I missed subtransaction cleanup. Pinned portals must be dropped at subtransaction cleanup just as they are at main transaction cleanup.

commit   : 2751a249cbb314990642c67cf1ad7d638eac5911    
  
author   : Heikki Linnakangas <[email protected]>    
date     : Tue, 13 Jul 2010 09:02:30 +0000    
  
committer: Heikki Linnakangas <[email protected]>    
date     : Tue, 13 Jul 2010 09:02:30 +0000    

Click here for diff

Per bug #5556 by Robert Walker. Backpatch to 8.0, 7.4 didn't have  
subtransactions.  

M src/backend/utils/mmgr/portalmem.c

Restore pl/pgsql default install release note item.

commit   : f0fd939655b0294f03317f142cc885dc13d5cb26    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 18:30:36 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 18:30:36 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

9.0 release note improvements

commit   : 5d4faf07ab1afc2ddf0ba5ea5e83c56275cf6e6e    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 18:25:21 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 18:25:21 +0000    

Click here for diff

Erik Rijkers  

M doc/src/sgml/release-9.0.sgml

Spellcheck 9.0 release notes.

commit   : d89e72c4754ec93c65a414dec47cc9bde959b3fa    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 17:47:39 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 17:47:39 +0000    

Click here for diff

M doc/src/sgml/release-9.0.sgml

Make NestLoop plan nodes pass outer-relation variables into their inner relation using the general PARAM_EXEC executor parameter mechanism, rather than the ad-hoc kluge of passing the outer tuple down through ExecReScan. The previous method was hard to understand and could never be extended to handle parameters coming from multiple join levels. This patch doesn't change the set of possible plans nor have any significant performance effect, but it's necessary infrastructure for future generalization of the concept of an inner indexscan plan.

commit   : 53e757689ce94520f1c53a89dbaa14ea57b09da7    
  
author   : Tom Lane <[email protected]>    
date     : Mon, 12 Jul 2010 17:01:06 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Mon, 12 Jul 2010 17:01:06 +0000    

Click here for diff

ExecReScan's second parameter is now unused, so it's removed.  

M src/backend/executor/execAmi.c
M src/backend/executor/execMain.c
M src/backend/executor/execProcnode.c
M src/backend/executor/execQual.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeAppend.c
M src/backend/executor/nodeBitmapAnd.c
M src/backend/executor/nodeBitmapHeapscan.c
M src/backend/executor/nodeBitmapIndexscan.c
M src/backend/executor/nodeBitmapOr.c
M src/backend/executor/nodeCtescan.c
M src/backend/executor/nodeFunctionscan.c
M src/backend/executor/nodeGroup.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/executor/nodeIndexscan.c
M src/backend/executor/nodeLimit.c
M src/backend/executor/nodeLockRows.c
M src/backend/executor/nodeMaterial.c
M src/backend/executor/nodeMergejoin.c
M src/backend/executor/nodeModifyTable.c
M src/backend/executor/nodeNestloop.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/executor/nodeResult.c
M src/backend/executor/nodeSeqscan.c
M src/backend/executor/nodeSetOp.c
M src/backend/executor/nodeSort.c
M src/backend/executor/nodeSubplan.c
M src/backend/executor/nodeSubqueryscan.c
M src/backend/executor/nodeTidscan.c
M src/backend/executor/nodeUnique.c
M src/backend/executor/nodeValuesscan.c
M src/backend/executor/nodeWindowAgg.c
M src/backend/executor/nodeWorktablescan.c
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/plan/createplan.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/plan/subselect.c
M src/include/executor/executor.h
M src/include/executor/nodeAgg.h
M src/include/executor/nodeAppend.h
M src/include/executor/nodeBitmapAnd.h
M src/include/executor/nodeBitmapHeapscan.h
M src/include/executor/nodeBitmapIndexscan.h
M src/include/executor/nodeBitmapOr.h
M src/include/executor/nodeCtescan.h
M src/include/executor/nodeFunctionscan.h
M src/include/executor/nodeGroup.h
M src/include/executor/nodeHash.h
M src/include/executor/nodeHashjoin.h
M src/include/executor/nodeIndexscan.h
M src/include/executor/nodeLimit.h
M src/include/executor/nodeLockRows.h
M src/include/executor/nodeMaterial.h
M src/include/executor/nodeMergejoin.h
M src/include/executor/nodeModifyTable.h
M src/include/executor/nodeNestloop.h
M src/include/executor/nodeRecursiveunion.h
M src/include/executor/nodeResult.h
M src/include/executor/nodeSeqscan.h
M src/include/executor/nodeSetOp.h
M src/include/executor/nodeSort.h
M src/include/executor/nodeSubqueryscan.h
M src/include/executor/nodeTidscan.h
M src/include/executor/nodeUnique.h
M src/include/executor/nodeValuesscan.h
M src/include/executor/nodeWindowAgg.h
M src/include/executor/nodeWorktablescan.h
M src/include/nodes/nodes.h
M src/include/nodes/plannodes.h
M src/include/nodes/primnodes.h
M src/include/nodes/relation.h
M src/include/optimizer/subselect.h
M src/test/regress/expected/rangefuncs.out
M src/test/regress/sql/rangefuncs.sql

Document bump of minor library version numbers.

commit   : 5a3489357fb61f1ea76412ada33549aca152ad55    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 16:21:51 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 16:21:51 +0000    

Click here for diff

M src/tools/RELEASE_CHANGES

Bump minor library version numbers, for 9.1 release.

commit   : b1261bd5622cf03ebe46773560b65083d8b8804f    
  
author   : Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 16:18:44 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Mon, 12 Jul 2010 16:18:44 +0000    

Click here for diff

M src/interfaces/ecpg/compatlib/Makefile
M src/interfaces/ecpg/ecpglib/Makefile
M src/interfaces/ecpg/pgtypeslib/Makefile
M src/interfaces/ecpg/preproc/Makefile
M src/interfaces/libpq/Makefile

Add a note about preferred window width to the section about code formatting conventions.

commit   : 4720ad515ed28f5f93b6702c1a7fc6e0978944c1    
  
author   : Tom Lane <[email protected]>    
date     : Sat, 10 Jul 2010 18:37:00 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Sat, 10 Jul 2010 18:37:00 +0000    

Click here for diff

M doc/src/sgml/sources.sgml

Clarify that "psql -c" ignores psqlrc files.

commit   : 2e6d24a6216742692d9a85a16ca0b9513470218b    
  
author   : Robert Haas <[email protected]>    
date     : Sat, 10 Jul 2010 00:50:24 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Sat, 10 Jul 2010 00:50:24 +0000    

Click here for diff

Tim Landscheidt  

M doc/src/sgml/ref/psql-ref.sgml

Avoid an Assert failure in deconstruct_array() by making get_attstatsslot() use the actual element type of the array it's disassembling, rather than trusting the type OID passed in by its caller. This is needed because sometimes the planner passes in a type OID that's only binary-compatible with the target column's type, rather than being an exact match. Per an example from Bernd Helmle.

commit   : 5ce63f480b9b9e77d4f5ab70cf59e8e31d40a8e0    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 22:57:39 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 22:57:39 +0000    

Click here for diff

Possibly we should refactor get_attstatsslot/free_attstatsslot to not expect  
the caller to supply type ID data at all, but for now I'll just do the  
minimum-change fix.  
  
Back-patch to 7.4.  Bernd's test case only crashes back to 8.0, but since  
these subroutines are the same in 7.4, I suspect there may be variant  
cases that would crash 7.4 as well.  

M src/backend/utils/cache/lsyscache.c

Fix ruleutils' get_variable() to print something useful for Vars referencing resjunk outputs of subquery tlists, instead of throwing an error. Per bug #5548 from Daniel Grace.

commit   : 2b8a624596179efc3605cef4c80ba9fcea75c21c    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 21:11:47 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 21:11:47 +0000    

Click here for diff

We might at some point find we ought to back-patch this further than 9.0,  
but I think that such Vars can only occur as resjunk members of upper-level  
tlists, in which case the problem can't arise because prior versions didn't  
print resjunk tlist items in EXPLAIN VERBOSE.  

M src/backend/utils/adt/ruleutils.c

Properly report errno/out-of-disk-space error from pg_upgrade when in copy mode, per report from [email protected].

commit   : a0d7c5f6894fd1402c7cae8ebc23c4265265919c    
  
author   : Bruce Momjian <[email protected]>    
date     : Fri, 9 Jul 2010 16:51:23 +0000    
  
committer: Bruce Momjian <[email protected]>    
date     : Fri, 9 Jul 2010 16:51:23 +0000    

Click here for diff

Patch suggestion from Magnus.  
  
Backpatch to 9.0.X.  

M contrib/pg_upgrade/TESTING
M contrib/pg_upgrade/file.c

Add a hook in ExecCheckRTPerms().

commit   : f4122a8d50a56787770cb87e8269d6b48775ff4e    
  
author   : Robert Haas <[email protected]>    
date     : Fri, 9 Jul 2010 14:06:01 +0000    
  
committer: Robert Haas <[email protected]>    
date     : Fri, 9 Jul 2010 14:06:01 +0000    

Click here for diff

This hook allows a loadable module to gain control when table permissions  
are checked.  It is expected to be used by an eventual SE-PostgreSQL  
implementation, but there are other possible applications as well.  A  
sample contrib module can be found in the archives at:  
  
http://archives.postgresql.org/pgsql-hackers/2010-05/msg01095.php  
  
Robert Haas and Stephen Frost  

M src/backend/executor/execMain.c
M src/include/executor/executor.h

Stamp HEAD as 9.1devel. (And there was much rejoicing.)

commit   : b40466c33731eed31e08f116487259d800eb1891    
  
author   : Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 04:10:58 +0000    
  
committer: Tom Lane <[email protected]>    
date     : Fri, 9 Jul 2010 04:10:58 +0000    

Click here for diff

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32
M src/interfaces/libpq/libpq.rc.in
M src/port/win32ver.rc
M src/tools/version_stamp.pl