postgresql/contrib/test_decoding/sql
Amit Kapila a271a1b50e Allow decoding at prepare time in ReorderBuffer.
This patch allows PREPARE-time decoding of two-phase transactions (if the
output plugin supports this capability), in which case the transactions
are replayed at PREPARE and then committed later when COMMIT PREPARED
arrives.

Now that we decode the changes before the commit, the concurrent aborts
may cause failures when the output plugin consults catalogs (both system
and user-defined).

We detect such failures with a special sqlerrcode
ERRCODE_TRANSACTION_ROLLBACK introduced by commit 7259736a6e and stop
decoding the remaining changes. Then we rollback the changes when rollback
prepared is encountered.

Author: Ajin Cherian and Amit Kapila based on previous work by Nikhil Sontakke and Stas Kelvich
Reviewed-by: Amit Kapila, Peter Smith, Sawada Masahiko, Arseny Sher, and Dilip Kumar
Tested-by: Takamichi Osumi
Discussion:
https://postgr.es/m/02DA5F5E-CECE-4D9C-8B4B-418077E2C010@postgrespro.ru
https://postgr.es/m/CAMGcDxeqEpWj3fTXwqhSwBdXd2RS9jzwWscO-XbeCfso6ts3+Q@mail.gmail.com
2021-01-04 08:34:50 +05:30
..
binary.sql test_decoding: Protect against rare spurious test failures. 2015-09-22 15:39:46 +02:00
ddl.sql Add regression tests for REPLICA IDENTITY with dropped indexes 2020-08-26 20:42:27 +09:00
decoding_in_xact.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
decoding_into_rel.sql Fix crash when logical decoding is invoked from a PL function. 2017-10-06 19:18:58 -04:00
messages.sql Add required database and origin filtering for logical messages. 2016-04-13 17:38:54 -07:00
permissions.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
prepared.sql Add skip-empty-xacts option to test_decoding for use in the regression tests. 2014-09-01 15:59:44 +02:00
replorigin.sql Replace superuser check by ACLs for replication origin functions 2020-06-14 12:40:37 +09:00
rewrite.sql Fix regression tests to use only global names beginning with "regress_". 2019-06-29 11:09:03 -04:00
slot.sql Add facility to copy replication slots 2019-04-05 18:05:18 -03:00
spill.sql Make contrib/test_decoding regression tests safe for CZ locale. 2016-11-21 20:39:28 -05:00
stats.sql Change the attribute name in pg_stat_replication_slots view. 2020-10-20 10:24:36 +05:30
stream.sql Fix the logical streaming test. 2020-08-08 12:13:18 +05:30
time.sql logical decoding: fix decoding of a commit's commit time. 2016-03-02 23:42:21 -08:00
toast.sql Propagate ALTER TABLE ... SET STORAGE to indexes 2020-05-08 08:39:17 +02:00
truncate.sql Implement streaming mode in ReorderBuffer. 2020-08-08 07:47:06 +05:30
twophase.sql Allow decoding at prepare time in ReorderBuffer. 2021-01-04 08:34:50 +05:30
twophase_stream.sql Allow decoding at prepare time in ReorderBuffer. 2021-01-04 08:34:50 +05:30
xact.sql Don't propagate a null subtransaction snapshot up to parent transaction. 2016-08-07 13:15:55 -04:00