postgresql/contrib/test_decoding/expected
Amit Kapila 247ee94150 Fix data loss in logical replication.
This commit is a backpatch of commit 4909b38af0 for 13.

Data loss can happen when the DDLs like ALTER PUBLICATION ... ADD TABLE ...
or ALTER TYPE ...  that don't take a strong lock on table happens
concurrently to DMLs on the tables involved in the DDL. This happens
because logical decoding doesn't distribute invalidations to concurrent
transactions and those transactions use stale cache data to decode the
changes. The problem becomes bigger because we keep using the stale cache
even after those in-progress transactions are finished and skip the
changes required to be sent to the client.

This commit fixes the issue by distributing invalidation messages from
catalog-modifying transactions to all concurrent in-progress transactions.
This allows the necessary rebuild of the catalog cache when decoding new
changes after concurrent DDL.

The fix for 13 is different from what we did in branches 14 and above,
such that for 13, the concurrent DDL changes (from DDL types mentioned
earlier) will be visible for any newly started transactions. To make them
visible in concurrent transactions, we need to introduce a new change type
REORDER_BUFFER_CHANGE_INVALIDATION, already present in branches 14 and
greater. We decided not to take the risk of a bigger change and fix the
issue partially in 13.

Reported-by: hubert depesz lubaczewski <depesz@depesz.com>
Reported-by: Tomas Vondra <tomas.vondra@enterprisedb.com>
Author: Shlok Kyal <shlok.kyal.oss@gmail.com>
Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Zhijie Hou <houzj.fnst@fujitsu.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Tested-by: Benoit Lobréau <benoit.lobreau@dalibo.com>
Discussion: https://postgr.es/m/de52b282-1166-1180-45a2-8d8917ca74c6@enterprisedb.com
Discussion: https://postgr.es/m/CAD21AoAenVqiMjpN-PvGHL1N9DWnHSq673bfgr6phmBUzx=kLQ@mail.gmail.com
Discussion: https://postgr.es/m/CAD21AoAhU3kp8shYqP=ExiFDZ9sZxpFb5WzLa0p+vEe5j+7CWQ@mail.gmail.com
2025-04-24 10:31:40 +05:30
..
binary.out Message style improvements 2015-10-28 20:38:36 -04:00
catalog_change_snapshot.out Fix assertion failures while processing NEW_CID record in logical decoding. 2022-10-20 09:25:13 +05:30
concurrent_ddl_dml.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -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 Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04:00
invalidation_distrubution.out Fix data loss in logical replication. 2025-04-24 10:31:40 +05:30
messages.out Add required database and origin filtering for logical messages. 2016-04-13 17:38:54 -07:00
mxact.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04:00
oldest_xmin.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04:00
ondisk_startup.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04: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 Remove assertion for replication origins in PREPARE TRANSACTION 2021-12-14 10:58:29 +09:00
rewrite.out Fix regression tests to use only global names beginning with "regress_". 2019-06-29 11:09:03 -04:00
skip_snapshot_restore.out Fix possibility of logical decoding partial transaction changes. 2024-07-11 22:48:10 +09:00
slot.out Check slot->restart_lsn validity in a few more places 2020-04-28 20:39:04 -04:00
snapshot_transfer.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04:00
spill.out Make contrib/test_decoding regression tests safe for CZ locale. 2016-11-21 20:39:28 -05:00
subxact_without_top.out Improve display of query results in isolation tests. 2021-06-23 11:12:31 -04:00
time.out logical decoding: fix decoding of a commit's commit time. 2016-03-02 23:42:21 -08:00
toast.out WAL log unchanged toasted replica identity key attributes. 2022-02-14 08:24:44 +05:30
truncate.out Force synchronous commit to be enabled for all test_decoding tests. 2018-10-10 13:53:02 -07:00
xact.out Don't propagate a null subtransaction snapshot up to parent transaction. 2016-08-07 13:15:55 -04:00