Go to file
Tom Lane 5707f35559 Fix unsafe order of operations in foreign-table DDL commands.
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.
2011-08-14 15:40:36 -04:00
config Backport changes to allow building with MinGW 64 bit compiler. 2011-04-09 17:59:27 -04:00
contrib In pg_upgrade, fix the -l/log option to work on Windows. 2011-07-20 18:31:08 -04:00
doc Fix thinko in documentation of local_preload_libraries. 2011-08-05 21:18:23 -04:00
src Fix unsafe order of operations in foreign-table DDL commands. 2011-08-14 15:40:36 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:06 +02:00
aclocal.m4
configure Tag 9.0.4. 2011-04-15 00:15:53 -03:00
configure.in Tag 9.0.4. 2011-04-15 00:15:53 -03:00
COPYRIGHT
GNUmakefile.in Back-patch replacement of README.CVS with README.git. 2010-09-21 14:42:58 -04:00
Makefile Add new make targets "world", "install-world" and "installcheck-world" to build, install and check just about everything. 2010-01-28 23:59:52 +00:00
README
README.git Back-patch replacement of README.CVS with README.git. 2010-09-21 14:42:58 -04:00

PostgreSQL Database Management System
=====================================
  
This directory contains the source code distribution of the PostgreSQL
database management system.

PostgreSQL is an advanced object-relational database management system
that supports an extended subset of the SQL standard, including
transactions, foreign keys, subqueries, triggers, user-defined types
and functions.  This distribution also contains C language bindings.

PostgreSQL has many language interfaces, many of which are listed here:

	http://www.postgresql.org/download

See the file INSTALL for instructions on how to build and install
PostgreSQL.  That file also lists supported operating systems and
hardware platforms and contains information regarding any other
software packages that are required to build or run the PostgreSQL
system.  Changes between all PostgreSQL releases are recorded in the
file HISTORY.  Copyright and license information can be found in the
file COPYRIGHT.  A comprehensive documentation set is included in this
distribution; it can be read as described in the installation
instructions.

The latest version of this software may be obtained at
http://www.postgresql.org/download/.  For more information look at our
web site located at http://www.postgresql.org/.