postgresql/contrib
Tom Lane 462bd95705 Fix planning of SELECT FOR UPDATE on child table with partial index.
Ordinarily we can omit checking of a WHERE condition that matches a partial
index's condition, when we are using an indexscan on that partial index.
However, in SELECT FOR UPDATE we must include the "redundant" filter
condition in the plan so that it gets checked properly in an EvalPlanQual
recheck.  The planner got this mostly right, but improperly omitted the
filter condition if the index in question was on an inheritance child
table.  In READ COMMITTED mode, this could result in incorrectly returning
just-updated rows that no longer satisfy the filter condition.

The cause of the error is using get_parse_rowmark() when get_plan_rowmark()
is what should be used during planning.  In 9.3 and up, also fix the same
mistake in contrib/postgres_fdw.  It's currently harmless there (for lack
of inheritance support) but wrong is wrong, and the incorrect code might
get copied to someplace where it's more significant.

Report and fix by Kyotaro Horiguchi.  Back-patch to all supported branches.
2014-12-11 21:02:25 -05:00
..
adminpack Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
auth_delay Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
auto_explain Print planning time only in EXPLAIN ANALYZE, not plain EXPLAIN. 2014-10-15 18:50:13 -04:00
btree_gin Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
btree_gist Support timezone abbreviations that sometimes change. 2014-10-16 15:22:10 -04:00
chkpass Fix volatility markings of some contrib I/O functions. 2014-11-05 11:34:11 -05:00
citext Fix citext upgrade script for disallowance of oidvector element assignment. 2014-08-28 18:21:05 -04:00
cube Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
dblink Fix SHLIB_PREREQS use in contrib, allowing PGXS builds 2014-12-04 07:58:12 -05:00
dict_int Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
dict_xsyn Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
earthdistance Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
file_fdw Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
fuzzystrmatch Move the guts of our Levenshtein implementation into core. 2014-11-13 12:33:26 -05:00
hstore Fix hstore_to_json_loose's detection of valid JSON number values. 2014-12-01 11:28:45 -05:00
intagg Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
intarray Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
isn Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
lo Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
ltree Fix volatility markings of some contrib I/O functions. 2014-11-05 11:34:11 -05:00
oid2name Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
pageinspect pageinspect/BRIN: minor tweaks 2014-12-02 12:20:50 -03:00
passwordcheck Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
pg_archivecleanup Replace a few strncmp() calls with strlcpy(). 2014-08-18 22:59:31 -04:00
pg_buffercache Make backend local tracking of buffer pins memory efficient. 2014-08-30 14:03:21 +02:00
pg_freespacemap Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pg_prewarm Add interrupt checks to contrib/pg_prewarm. 2014-11-12 18:52:49 +01:00
pg_standby Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
pg_stat_statements Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pg_test_fsync Avoid file descriptor leak in pg_test_fsync. 2014-11-19 12:06:24 -05:00
pg_test_timing Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
pg_trgm Fix volatility markings of some contrib I/O functions. 2014-11-05 11:34:11 -05:00
pg_upgrade Keep track of transaction commit timestamps 2014-12-03 11:53:02 -03:00
pg_upgrade_support pg_upgrade: prevent automatic oid assignment 2014-08-25 22:19:05 -04:00
pg_xlogdump pg_xlogdump/.gitignore: add committsdesc.c 2014-12-09 09:54:14 -03:00
pgbench Add --latency-limit option to pgbench. 2014-10-13 20:50:24 +03:00
pgcrypto Loop when necessary in contrib/pgcrypto's pktreader_pull(). 2014-11-11 17:22:15 -05:00
pgrowlocks Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pgstattuple Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
postgres_fdw Fix planning of SELECT FOR UPDATE on child table with partial index. 2014-12-11 21:02:25 -05:00
seg Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
sepgsql Add bms_next_member(), and use it where appropriate. 2014-11-28 13:37:25 -05:00
spi Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
sslinfo Make Port->ssl_in_use available, even when built with !USE_SSL 2014-11-25 09:46:11 +02:00
start-scripts doc: Reflect renaming of Mac OS X to OS X 2014-09-09 13:56:29 -04:00
tablefunc Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
tcn Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
test_decoding Don't skip SQL backends in logical decoding for visibility computation. 2014-12-02 23:47:08 +01:00
tsearch2 Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
unaccent Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
uuid-ossp Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
vacuumlo Add file version information to most installed Windows binaries. 2014-07-14 14:07:52 -04:00
xml2 Free libxml2/libxslt resources in a safer order. 2014-11-27 11:13:29 -05:00
contrib-global.mk
Makefile Move test modules from contrib to src/test/modules 2014-11-29 23:55:00 -03:00
README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.