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
auto_explain
btree_gin
btree_gist
chkpass
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
dict_xsyn
dummy_seclabel
earthdistance
file_fdw
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
intarray Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
isn
lo Defend against bad trigger definitions in contrib/lo's lo_manage() trigger. 2013-11-23 22:46:43 -05:00
ltree
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
pg_archivecleanup
pg_buffercache
pg_freespacemap
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
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
spi Add use of asprintf() 2013-10-13 00:09:18 -04:00
sslinfo
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
test_parser
tsearch2
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
worker_spi Fix thinko in worker_spi, count(*) returns a bigint. Thanks RhodiumToad 2013-09-03 13:27:34 +01:00
xml2
contrib-global.mk
Makefile pg_prewarm, a contrib module for prewarming relationd data. 2013-12-20 08:14:13 -05: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.