PostgreSQL 9.0.1 commit log

Fix back-branch breakage from ill-advised last-minute commit.

  
commit   : a0ccae7ed41201251c0da51a91b84eb9d13c4ab1    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Fri, 1 Oct 2010 10:25:44 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Fri, 1 Oct 2010 10:25:44 -0400    

Click here for diff

  
  

Tag 9.0.1

  
commit   : fd51c16ce9ed3dfad9432b830dac46f30d6052ac    
  
author   : Marc G. Fournier <scrappy@hub.org>    
date     : Fri, 1 Oct 2010 10:28:42 -0300    
  
committer: Marc G. Fournier <scrappy@hub.org>    
date     : Fri, 1 Oct 2010 10:28:42 -0300    

Click here for diff

  
  

Use a separate interpreter for each calling SQL userid in plperl and pltcl.

  
commit   : 0d1f3d7bb2303268a00223f22134bc874bdac1d9    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 30 Sep 2010 17:19:44 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 30 Sep 2010 17:19:44 -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  
  

Adjust pg_archivecleanup docs to match message changes made 2010-06-17.

  
commit   : f5f945f9f14e0d33b2357eb69a8f9b7cd1b737d4    
  
author   : Robert Haas <rhaas@postgresql.org>    
date     : Thu, 30 Sep 2010 17:05:15 -0400    
  
committer: Robert Haas <rhaas@postgresql.org>    
date     : Thu, 30 Sep 2010 17:05:15 -0400    

Click here for diff

  
Erik Rijkers  
  

Translation updates for 9.0.1

  
commit   : 9103b311a4f126e1a8b674aa90c6f2890ff15124    
  
author   : Peter Eisentraut <peter_e@gmx.net>    
date     : Thu, 30 Sep 2010 23:46:16 +0300    
  
committer: Peter Eisentraut <peter_e@gmx.net>    
date     : Thu, 30 Sep 2010 23:46:16 +0300    

Click here for diff

  
  

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   : 9caf5a841b6231715a9612d97579b5b93e3c2322    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 30 Sep 2010 14:27:28 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 30 Sep 2010 14:27:28 -0400    

Click here for diff

  
  

Have pg_upgrade use strtoul(), not strtol().

  
commit   : 3689583d5adff94257a6a6eca9dcd2d9bd60ca6b    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Wed, 29 Sep 2010 02:40:26 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Wed, 29 Sep 2010 02:40:26 +0000    

Click here for diff

  
  

Use macro atooid() for conversion of strings to oids, per suggestion from Tom.

  
commit   : b757f18f2ff9e1e16c45030e7e2a1c7f116ccf40    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 22:11:21 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 22:11:21 +0000    

Click here for diff

  
  

In pg_upgrade, properly handle oids > 2^31 by using strtoul() internally rather than atol().

  
commit   : ddfa48776c7cb6117d09bef6b9ab9cda58084472    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 21:41:03 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 21:41:03 +0000    

Click here for diff

  
Per report from Brian Hirt  
  

Fix leak patch that was using fclose() instead of close().

  
commit   : 0364ab8b26c105b94e45c9519400796c1439f1b1    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 21:37:14 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 21:37:14 +0000    

Click here for diff

  
  

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   : c767c3bd3690aa06a7965d7f9f9d80e5c15174cd    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 19:25:13 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 19:25:13 +0000    

Click here for diff

  
Per patch from Grzegorz Ja?kiewicz.  
  

Fix another small oversight in command_no_begin patch.

  
commit   : 3fe9f0e5c734c79b604abfdfd3766e85c1e4b2b7    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 28 Sep 2010 14:47:25 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
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.  
  

Mention that pg_upgrade requires write permission in the current directory.

  
commit   : 798cbc015b6512b54a41bf3d40fd235322125292    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 18:43:01 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 18:43:01 +0000    

Click here for diff

  
Per report from Harald Armin Massa.  
  

Mention in pg_upgrade docs that the proper Win32 service name should be used.

  
commit   : 946de44b3dfb7b939ee9e71f761b9c01ad880525    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 18:32:07 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 18:32:07 +0000    

Click here for diff

  
Per report from Harald Armin Massa  
  

Fix PlaceHolderVar mechanism’s interaction with outer joins.

  
commit   : 4ec15077b2eaa1f7713e4fff87e220a23c772688    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 28 Sep 2010 12:08:56 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
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.  
  

Add mention of installing pg_upgrade_support in pg_upgrade doc section title, per suggestion from Ian Barwick.

  
commit   : cd1454cdc357593f1d17fd33b9583511a9fe57b1    
  
author   : Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 17:25:21 +0000    
  
committer: Bruce Momjian <bruce@momjian.us>    
date     : Tue, 28 Sep 2010 17:25:21 +0000    

Click here for diff

  
  

Only DISCARD ALL should be in the command_no_begin list. We allowes DISCARD PLANS and TEMP in a transaction.

  
commit   : 279ab82791ebcb09442a599a74c641c5c5255dbf    
  
author   : Itagaki Takahiro <itagaki.takahiro@gmail.com>    
date     : Tue, 28 Sep 2010 15:56:46 +0900    
  
committer: Itagaki Takahiro <itagaki.takahiro@gmail.com>    
date     : Tue, 28 Sep 2010 15:56:46 +0900    

Click here for diff

  
  

Add DISCARD to the command_no_begin list for AUTOCOMMIT=off. Backpatch to 8.3.

  
commit   : 60da196636239a9906a22de1bc1d95133ea9904a    
  
author   : Itagaki Takahiro <itagaki.takahiro@gmail.com>    
date     : Tue, 28 Sep 2010 14:24:02 +0900    
  
committer: Itagaki Takahiro <itagaki.takahiro@gmail.com>    
date     : Tue, 28 Sep 2010 14:24:02 +0900    

Click here for diff

  
Reported by Sergey Burladyan.  
  

Add “(change requires restart)” note to some postgresql.conf parameters.

  
commit   : e701e912181893f1dad3a66e125ba3635afdd541    
  
author   : Robert Haas <rhaas@postgresql.org>    
date     : Mon, 27 Sep 2010 09:14:14 -0400    
  
committer: Robert Haas <rhaas@postgresql.org>    
date     : Mon, 27 Sep 2010 09:14:14 -0400    

Click here for diff

  
Devrim GÜNDÜZ  
  

Fix another join removal bug: the check on PlaceHolderVars was wrong.

  
commit   : 7fc8db849106db91e1053ed25045eb4fa877f212    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Sat, 25 Sep 2010 19:04:02 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Sat, 25 Sep 2010 19:04:02 -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.  
  

Further fixes to the pg_get_expr() security fix in back branches.

  
commit   : 3613d0893f526619471026b6b04bda70e31fe9e2    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Sat, 25 Sep 2010 15:57:05 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Sat, 25 Sep 2010 15:57:05 -0400    

Click here for diff

  
It now emerges that the JDBC driver expects to be able to use pg_get_expr()  
on an output of a sub-SELECT.  So extend the check logic to be able to recurse  
into a sub-SELECT to see if the argument is ultimately coming from an  
appropriate column.  Per report from Thomas Kellerer.  
  

Fix man page markup for with multiple variants

  
commit   : f27860dba39f3467bdcac6f91a8ca798b009f079    
  
author   : Peter Eisentraut <peter_e@gmx.net>    
date     : Sat, 25 Sep 2010 09:57:09 +0300    
  
committer: Peter Eisentraut <peter_e@gmx.net>    
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  
  

Still more .gitignore cleanup.

  
commit   : 4afd557901448a2c9c6d407e8e174bd2c0f3a28f    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Fri, 24 Sep 2010 13:48:20 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Fri, 24 Sep 2010 13:48:20 -0400    

Click here for diff

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

Add contrib/xml2/pgxml.sql to .gitignore

  
commit   : 7ffb4d6c53041515c49db20f1f67cfb68e366a57    
  
author   : Robert Haas <rhaas@postgresql.org>    
date     : Thu, 23 Sep 2010 22:00:26 -0400    
  
committer: Robert Haas <rhaas@postgresql.org>    
date     : Thu, 23 Sep 2010 22:00:26 -0400    

Click here for diff

  
Kevin Grittner  
  

ProcessIncomingNotify must reset notifyInterruptOccurred when called.

  
commit   : c825a15700907d6a155511d82bcf8fe0f2f7dc0b    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 17:17:02 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 17:17:02 -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.  
  

Prevent show_session_authorization from crashing when session_authorization hasn’t been set.

  
commit   : f73ccedcf857e1855b44a9b2545ff7b8ee498ee5    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 16:53:22 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 16:53:22 -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.  
  

Avoid sharing subpath list structure when flattening nested AppendRels.

  
commit   : b74ecb9194c9bf35d2775eed08dad777afa40af1    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 19:34:56 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Thu, 23 Sep 2010 19: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.  
  

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   : 0e6519e11523e8f504d29eb05e4775aa6a847fa5    
  
author   : Heikki Linnakangas <heikki.linnakangas@iki.fi>    
date     : Thu, 23 Sep 2010 14:49:00 +0300    
  
committer: Heikki Linnakangas <heikki.linnakangas@iki.fi>    
date     : Thu, 23 Sep 2010 14:49:00 +0300    

Click here for diff

  
  

Re-allow input of Julian dates prior to 0001-01-01 AD.

  
commit   : 6f664c1af4ebb8d4f131af04d5762ac6f720b70b    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 23:48:14 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 23:48:14 -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.  
  

More fixes for libpq’s .gitignore file.

  
commit   : e482ebdf0bbe90786612c7baa2110220f738429f    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 22:32:19 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 22:32:19 -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.  
  

Do some copy-editing on the Git usage docs.

  
commit   : 535c611f7617ce7c9258f20230d959ffae85f306    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 20:22:35 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 20:22:35 -0400    

Click here for diff

  
  

Fix remaining stray references to CVS.

  
commit   : 5074f688485c5526980677df8641d35db9f50d9c    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 19:51:46 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 19:51:46 -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.  
  

Add assorted other documentation build targets to documentation gitignore.

  
commit   : f3a838bb761cdddf4a90cb62e2e585b82205d13c    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 18:08:53 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 18:08:53 -0400    

Click here for diff

  
  

Some more gitignore cleanups: cover contrib and PL regression test outputs.

  
commit   : 8d0b5d8971d66f331737dab401c19a7e8ddae71c    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 17:21:58 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Wed, 22 Sep 2010 17:21:58 -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.  
  

Add gitignore files for ecpg regression tests.

  
commit   : f23bc1e8a42cab50c204bbab837f95cbc2353311    
  
author   : Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 21:49:07 +0200    
  
committer: Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 21:49:07 +0200    

Click here for diff

  
Backpatch to 8.2 as that's how far the structure looks the same.  
  

Remove anonymous cvs instructions, and replace them with instructions for git. Change other references from cvs to git as well.

  
commit   : bbf84ac0007bc031e4ee4e06abfa2a4d157c26e1    
  
author   : Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 20:10:29 +0200    
  
committer: Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 20:10:29 +0200    

Click here for diff

  
  

Convert cvsignore to gitignore, and add .gitignore for build targets.

  
commit   : a6923594114601b4aaaf0cfd82eb5088af837664    
  
author   : Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 12:57:06 +0200    
  
committer: Magnus Hagander <magnus@hagander.net>    
date     : Wed, 22 Sep 2010 12:57:06 +0200    

Click here for diff

  
  

Fix a missed explanation of auto-analyze threshold, per Joe Miller.

  
commit   : dcd9dcdeebe811d942648df07f864ade07383824    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 21 Sep 2010 16:40:50 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 21 Sep 2010 16:40:50 -0400    

Click here for diff

  
  

Back-patch replacement of README.CVS with README.git.

  
commit   : 829f5b3571241cae2cc1a02923439cd0725d683c    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 21 Sep 2010 14:42:58 -0400    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Tue, 21 Sep 2010 14:42:58 -0400    

Click here for diff

  
In older branches, also git-ify the "make distdir" rule.  
  

Move pg_db_role_setting docs to correct place in alphabetical order.

  
commit   : c6f6db5fdfe18ff140ed5a9bd5f0439678aee09c    
  
author   : Robert Haas <rhaas@postgresql.org>    
date     : Fri, 17 Sep 2010 18:50:22 +0000    
  
committer: Robert Haas <rhaas@postgresql.org>    
date     : Fri, 17 Sep 2010 18:50:22 +0000    

Click here for diff