postgresql/contrib/test_decoding/expected
Amit Kapila 7259736a6e Implement streaming mode in ReorderBuffer.
Instead of serializing the transaction to disk after reaching the
logical_decoding_work_mem limit in memory, we consume the changes we have
in memory and invoke stream API methods added by commit 45fdc9738b.
However, sometimes if we have incomplete toast or speculative insert we
spill to the disk because we can't generate the complete tuple and stream.
And, as soon as we get the complete tuple we stream the transaction
including the serialized changes.

We can do this incremental processing thanks to having assignments
(associating subxact with toplevel xacts) in WAL right away, and
thanks to logging the invalidation messages at each command end. These
features are added by commits 0bead9af48 and c55040ccd0 respectively.

Now that we can stream in-progress transactions, the concurrent aborts
may cause failures when the output plugin consults catalogs (both system
and user-defined).

We handle such failures by returning ERRCODE_TRANSACTION_ROLLBACK
sqlerrcode from system table scan APIs to the backend or WALSender
decoding a specific uncommitted transaction. The decoding logic on the
receipt of such a sqlerrcode aborts the decoding of the current
transaction and continue with the decoding of other transactions.

We have ReorderBufferTXN pointer in each ReorderBufferChange by which we
know which xact it belongs to.  The output plugin can use this to decide
which changes to discard in case of stream_abort_cb (e.g. when a subxact
gets discarded).

We also provide a new option via SQL APIs to fetch the changes being
streamed.

Author: Dilip Kumar, Tomas Vondra, Amit Kapila, Nikhil Sontakke
Reviewed-by: Amit Kapila, Kuntal Ghosh, Ajin Cherian
Tested-by: Neha Sharma, Mahendra Singh Thalor and Ajin Cherian
Discussion: https://postgr.es/m/688b0b7f-2f6c-d827-c27b-216a8e3ea700@2ndquadrant.com
2020-08-08 07:47:06 +05:30
..
binary.out Message style improvements 2015-10-28 20:38:36 -04:00
concurrent_ddl_dml.out Handle heap rewrites even better in logical decoding 2018-03-21 09:15:04 -04:00
ddl.out Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
decoding_in_xact.out Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
decoding_into_rel.out Fix crash when logical decoding is invoked from a PL function. 2017-10-06 19:18:58 -04:00
delayed_startup.out Introduce logical decoding. 2014-03-03 16:32:18 -05:00
messages.out Add required database and origin filtering for logical messages. 2016-04-13 17:38:54 -07:00
mxact.out Introduce logical decoding. 2014-03-03 16:32:18 -05:00
oldest_xmin.out Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
ondisk_startup.out Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
permissions.out Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
prepared.out Add skip-empty-xacts option to test_decoding for use in the regression tests. 2014-09-01 15:59:44 +02:00
replorigin.out Replace superuser check by ACLs for replication origin functions 2020-06-14 12:40:37 +09:00
rewrite.out Fix regression tests to use only global names beginning with "regress_". 2019-06-29 11:09:03 -04:00
slot.out Check slot->restart_lsn validity in a few more places 2020-04-28 20:39:04 -04:00
snapshot_transfer.out Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
spill.out Make contrib/test_decoding regression tests safe for CZ locale. 2016-11-21 20:39:28 -05:00
stream.out Implement streaming mode in ReorderBuffer. 2020-08-08 07:47:06 +05:30
subxact_without_top.out Stop demanding that top xact must be seen before subxact in decoding. 2020-02-19 08:15:49 +05:30
time.out logical decoding: fix decoding of a commit's commit time. 2016-03-02 23:42:21 -08:00
toast.out Propagate ALTER TABLE ... SET STORAGE to indexes 2020-05-08 08:39:17 +02:00
truncate.out Implement streaming mode in ReorderBuffer. 2020-08-08 07:47:06 +05:30
xact.out Don't propagate a null subtransaction snapshot up to parent transaction. 2016-08-07 13:15:55 -04:00