postgresql/contrib
Amit Kapila e3ff789acf Stop demanding that top xact must be seen before subxact in decoding.
Manifested as

ERROR:  subtransaction logged without previous top-level txn record

this check forbids legit behaviours like
 - First xl_xact_assignment record is beyond reading, i.e. earlier
   restart_lsn.
 - After restart_lsn there is some change of a subxact.
 - After that, there is second xl_xact_assignment (for another subxact)
   revealing the relationship between top and first subxact.

Such a transaction won't be streamed anyway because we hadn't seen it in
full.  Saying for sure whether xact of some record encountered after
the snapshot was deserialized can be streamed or not requires to know
whether it wrote something before deserialization point --if yes, it
hasn't been seen in full and can't be decoded. Snapshot doesn't have such
info, so there is no easy way to relax the check.

Reported-by: Hsu, John
Diagnosed-by: Arseny Sher
Author: Arseny Sher, Amit Kapila
Reviewed-by: Amit Kapila, Dilip Kumar
Backpatch-through: 9.5
Discussion: https://postgr.es/m/AB5978B2-1772-4FEE-A245-74C91704ECB0@amazon.com
2020-02-19 08:15:49 +05:30
..
adminpack Remove some dead code in contrib/adminpack/ 2020-02-14 12:38:44 +09:00
amcheck Update copyrights for 2020 2020-01-01 12:21:45 -05:00
auth_delay Update copyrights for 2020 2020-01-01 12:21:45 -05:00
auto_explain Update copyrights for 2020 2020-01-01 12:21:45 -05:00
bloom Introduce IndexAM fields for parallel vacuum. 2020-01-15 07:24:14 +05:30
btree_gin Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
btree_gist Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
citext Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
cube Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
dblink Clean up newlines following left parentheses 2020-01-30 13:42:14 -03:00
dict_int Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
dict_xsyn Update copyrights for 2020 2020-01-01 12:21:45 -05:00
earthdistance Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
file_fdw Update copyrights for 2020 2020-01-01 12:21:45 -05:00
fuzzystrmatch Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
hstore Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
hstore_plperl Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
hstore_plpython Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
intagg Schema-qualify some references to regprocedure. 2016-06-10 10:41:58 -04:00
intarray Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
isn Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
jsonb_plperl Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
jsonb_plpython In jsonb_plpython.c, suppress warning message from gcc 10. 2020-01-30 18:26:12 -05:00
lo Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
ltree Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
ltree_plpython Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
oid2name Clean up newlines following left parentheses 2020-01-30 13:42:14 -03:00
pageinspect Clean up newlines following left parentheses 2020-01-30 13:42:14 -03:00
passwordcheck Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_buffercache Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
pg_freespacemap Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
pg_prewarm Remove excess parens in ereport() calls 2020-01-30 13:32:04 -03:00
pg_standby Remove useless "return;" lines 2019-11-28 16:48:37 -03:00
pg_stat_statements Use pg_pwrite() in more places. 2020-02-11 17:50:22 +13:00
pg_trgm Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
pg_visibility Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgcrypto Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
pgrowlocks Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
pgstattuple Remove excess parens in ereport() calls 2020-01-30 13:32:04 -03:00
postgres_fdw Add connection parameters to control SSL protocol min/max in libpq 2020-01-28 10:40:48 +09:00
seg Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
sepgsql Update copyrights for 2020 2020-01-01 12:21:45 -05:00
spi Remove dependency to system calls for memory allocation in refint 2020-01-08 10:02:55 +09:00
sslinfo Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
start-scripts Remove contrib/start-scripts/osx/. 2017-11-17 12:53:20 -05:00
tablefunc Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
tcn Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
test_decoding Stop demanding that top xact must be seen before subxact in decoding. 2020-02-19 08:15:49 +05:30
tsm_system_rows Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
tsm_system_time Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
unaccent Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
uuid-ossp Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
vacuumlo Update copyrights for 2020 2020-01-01 12:21:45 -05:00
xml2 Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
Makefile Transforms for jsonb to PL/Perl 2018-04-03 09:47:18 -04:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -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 "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.