postgresql/src/backend
Tom Lane 6c2e734f0a Refactor ALTER EXTENSION UPDATE to have cleaner multi-step semantics.
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.
2011-02-12 16:40:41 -05:00
..
access Send status updates back from standby server to master, indicating how far 2011-02-10 21:04:02 +02:00
bootstrap Per-column collation support 2011-02-08 23:04:18 +02:00
catalog DDL support for collations 2011-02-12 15:55:18 +02:00
commands Refactor ALTER EXTENSION UPDATE to have cleaner multi-step semantics. 2011-02-12 16:40:41 -05:00
executor Fix improper matching of resjunk column names for FOR UPDATE in subselect. 2011-02-09 23:27:42 -05:00
foreign Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
lib Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
libpq Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
main Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
nodes Add support for multiple versions of an extension and ALTER EXTENSION UPDATE. 2011-02-11 21:25:57 -05:00
optimizer Fix improper matching of resjunk column names for FOR UPDATE in subselect. 2011-02-09 23:27:42 -05:00
parser DDL support for collations 2011-02-12 15:55:18 +02:00
po Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
port Move pipe.c into the backend. 2011-02-04 15:52:21 -05:00
postmaster Track last time for statistics reset on databases and bgwriter 2011-02-10 15:14:04 +01:00
regex Fix comparisons of pointers with zero to compare with NULL instead. 2010-10-29 15:51:52 -04:00
replication Typo fixes. receivedUpto should be capitalized consistently. 2011-02-11 11:55:12 -05:00
rewrite Core support for "extensions", which are packages of SQL objects. 2011-02-08 16:13:22 -05:00
snowball Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
storage Allocate all entries in the serializable xid hash up-front, so that you don't 2011-02-10 12:03:21 +02:00
tcop DDL support for collations 2011-02-12 15:55:18 +02:00
tsearch Fix "variable not used" warnings when USE_WIDE_UPPER_LOWER is not 2011-02-10 16:58:02 -05:00
utils Properly handle Win32 paths of 'E:abc', which can be either absolute or 2011-02-12 09:47:51 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
common.mk Workaround for recursive make breakage 2011-01-13 09:32:06 +02:00
Makefile Make handling of errcodes.h more consistent with other generated headers. 2011-02-04 09:29:10 -05:00
nls.mk Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00