postgresql/contrib/test_decoding
Amit Kapila 25f7be1ca2 Fix assertion failures while processing NEW_CID record in logical decoding.
When the logical decoding restarts from NEW_CID, since there is no
association between the top transaction and its subtransaction, both are
created as top transactions and have the same LSN. This caused the
assertion failure in AssertTXNLsnOrder().

This patch skips the assertion check until we reach the LSN at which we
start decoding the contents of the transaction, specifically
start_decoding_at LSN in SnapBuild. This is okay because we don't
guarantee to make the association between top transaction and
subtransaction until we try to decode the actual contents of transaction.
The ordering of the records prior to the start_decoding_at LSN should have
been checked before the restart.

The other assertion failure is due to the reason that we forgot to track
that we have considered top-level transaction id in the list of catalog
changing transactions that were committed when one of its subtransactions
is marked as containing catalog change.

Reported-by: Tomas Vondra, Osumi Takamichi
Author: Masahiko Sawada, Kuroda Hayato
Reviewed-by: Amit Kapila, Dilip Kumar, Kuroda Hayato, Kyotaro Horiguchi, Masahiko Sawada
Backpatch-through: 10
Discussion: https://postgr.es/m/a89b46b6-0239-2fd5-71a9-b19b1f7a7145%40enterprisedb.com
Discussion: https://postgr.es/m/TYCPR01MB83733C6CEAE47D0280814D5AED7A9%40TYCPR01MB8373.jpnprd01.prod.outlook.com
2022-10-20 09:25:13 +05:30
..
expected Fix assertion failures while processing NEW_CID record in logical decoding. 2022-10-20 09:25:13 +05:30
specs Fix assertion failures while processing NEW_CID record in logical decoding. 2022-10-20 09:25:13 +05:30
sql Remove assertion for replication origins in PREPARE TRANSACTION 2021-12-14 10:58:29 +09:00
.gitignore Improve isolation tests infrastructure. 2017-03-14 15:56:17 -07:00
Makefile Fix catalog lookup with the wrong snapshot during logical decoding. 2022-08-11 09:30:55 +05:30
logical.conf Add logical_decoding_work_mem to limit ReorderBuffer memory usage. 2019-11-19 07:32:36 +05:30
test_decoding.c Clean up newlines following left parentheses 2020-01-30 13:42:14 -03:00