postgresql/contrib
Robert Haas 37484ad2aa Change the way we mark tuples as frozen.
Instead of changing the tuple xmin to FrozenTransactionId, the combination
of HEAP_XMIN_COMMITTED and HEAP_XMIN_INVALID, which were previously never
set together, is now defined as HEAP_XMIN_FROZEN.  A variety of previous
proposals to freeze tuples opportunistically before vacuum_freeze_min_age
is reached have foundered on the objection that replacing xmin by
FrozenTransactionId might hinder debugging efforts when things in this
area go awry; this patch is intended to solve that problem by keeping
the XID around (but largely ignoring the value to which it is set).

Third-party code that checks for HEAP_XMIN_INVALID on tuples where
HEAP_XMIN_COMMITTED might be set will be broken by this change.  To fix,
use the new accessor macros in htup_details.h rather than consulting the
bits directly.  HeapTupleHeaderGetXmin has been modified to return
FrozenTransactionId when the infomask bits indicate that the tuple is
frozen; use HeapTupleHeaderGetRawXmin when you already know that the
tuple isn't marked commited or frozen, or want the raw value anyway.
We currently do this in routines that display the xmin for user consumption,
in tqual.c where it's known to be safe and important for the avoidance of
extra cycles, and in the function-caching code for various procedural
languages, which shouldn't invalidate the cache just because the tuple
gets frozen.

Robert Haas and Andres Freund
2013-12-22 15:49:09 -05:00
..
adminpack Add use of asprintf() 2013-10-13 00:09:18 -04:00
auth_delay Limit values of archive_timeout, post_auth_delay, auth_delay.milliseconds. 2012-11-18 17:15:06 -05:00
auto_explain Update copyrights for 2013 2013-01-01 17:15:01 -05:00
btree_gin Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
btree_gist pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
chkpass Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
citext Add record_image_ops opclass for matview concurrent refresh. 2013-10-09 14:26:09 -05:00
cube Use appendStringInfoString instead of appendStringInfo where possible. 2013-10-31 10:55:59 -04:00
dblink Fix performance regression in dblink connection speed. 2013-12-07 17:00:26 -08:00
dict_int Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dict_xsyn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dummy_seclabel Update copyrights for 2013 2013-01-01 17:15:01 -05:00
earthdistance Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
file_fdw pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
fuzzystrmatch fuzzystrmatch: replace broken link in C comment 2013-09-10 21:34:01 -04:00
hstore Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
intagg Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
intarray Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
isn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
lo Defend against bad trigger definitions in contrib/lo's lo_manage() trigger. 2013-11-23 22:46:43 -05:00
ltree Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
oid2name Replace pg_asprintf() with psprintf(). 2013-10-22 19:40:26 -04:00
pageinspect Change the way we mark tuples as frozen. 2013-12-22 15:49:09 -05:00
passwordcheck Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pg_archivecleanup pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pg_buffercache Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
pg_freespacemap Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
pg_prewarm pg_prewarm, a contrib module for prewarming relationd data. 2013-12-20 08:14:13 -05:00
pg_standby Silence benign warnings from clang version 3.0-6ubuntu3. 2013-11-07 16:35:43 -06:00
pg_stat_statements Fix pg_stat_statements build on 32-bit systems 2013-12-08 11:59:07 +01:00
pg_test_fsync pg_test_fsync: expand ops/sec display 2013-08-02 00:45:19 -04:00
pg_test_timing Remove undocumented -h (help) option 2013-07-01 12:40:33 -04:00
pg_trgm Use appendStringInfoString instead of appendStringInfo where possible. 2013-10-31 10:55:59 -04:00
pg_upgrade Fix compiler warning. 2013-12-18 13:31:35 -05:00
pg_upgrade_support Move pg_upgrade_support global variables to their own include file 2013-12-19 16:10:07 -05:00
pg_xlogdump Remove broken PGXS code for pg_xlogdump 2013-10-01 17:36:15 -03:00
pgbench Fix progress logging when scale factor is large. 2013-12-12 19:10:35 +09:00
pgcrypto Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
pgrowlocks pgrowlocks: Use GetActiveSnapshot() rather than SnapshotNow. 2013-07-22 16:21:14 -04:00
pgstattuple pgstattuple: Use SnapshotDirty, not SnapshotNow. 2013-07-25 16:21:13 -04:00
postgres_fdw Use appendStringInfoString instead of appendStringInfo where possible. 2013-10-31 10:55:59 -04:00
seg Fix contrib/cube and contrib/seg to build with bison 3.0. 2013-07-29 10:42:37 -04:00
sepgsql Use an MVCC snapshot, rather than SnapshotNow, for catalog scans. 2013-07-02 09:47:01 -04:00
spi Add use of asprintf() 2013-10-13 00:09:18 -04:00
sslinfo Lots of doc corrections. 2012-04-23 22:43:09 -04:00
start-scripts Remove dead URL mention in OSX startup script 2013-09-04 17:04:33 -04:00
tablefunc Use appendStringInfoString instead of appendStringInfo where possible. 2013-10-31 10:55:59 -04:00
tcn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
test_parser Update copyrights for 2013 2013-01-01 17:15:01 -05:00
tsearch2 Update copyrights for 2013 2013-01-01 17:15:01 -05:00
unaccent unaccent: Revert patch 9299f61798 2013-11-18 15:54:34 -05:00
uuid-ossp Fix quoting in help messages in uuid-ossp extension scripts. 2013-11-22 12:07:53 -05:00
vacuumlo vacuumlo: Use a cursor to limit client-side memory usage. 2013-07-15 10:51:27 -04:00
worker_spi Fix thinko in worker_spi, count(*) returns a bigint. Thanks RhodiumToad 2013-09-03 13:27:34 +01:00
xml2 Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
Makefile pg_prewarm, a contrib module for prewarming relationd data. 2013-12-20 08:14:13 -05:00
README Update contrib/README 2012-04-14 09:29:54 +03:00
contrib-global.mk Remove cvs keywords from all files. 2010-09-20 22:08:53 +02: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 "gmake all" and "gmake
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.