pgsql: Correct logical decoding restore behaviour for subtransactions.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: Correct logical decoding restore behaviour for subtransactions.
Дата
Msg-id E1brI95-0006D3-DT@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Correct logical decoding restore behaviour for subtransactions.

Before initializing iteration over a subtransaction's changes, the last
few changes were not spilled to disk. That's correct if the transaction
didn't spill to disk, but otherwise... This bug can lead to missed or
misorderd subtransaction contents when they were spilled to disk.

Move spilling of the remaining in-memory changes to
ReorderBufferIterTXNInit(), where it can easily be applied to the top
transaction and, if present, subtransactions.

Since this code had too many bugs already, noticeably increase test
coverage.

Fixes: #14319
Reported-By: Huan Ruan
Discussion: <20160909012610.20024.58169@wrigleys.postgresql.org>
Backport: 9,4-, where logical decoding was added

Branch
------
REL9_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/07172b20f1a0c4e3a24b0b8f6781de4d2c4866cb

Modified Files
--------------
contrib/test_decoding/Makefile                  |   2 +-
contrib/test_decoding/expected/spill.out        | 256 ++++++++++++++++++++++++
contrib/test_decoding/sql/spill.sql             | 179 +++++++++++++++++
src/backend/replication/logical/reorderbuffer.c |  13 +-
4 files changed, 444 insertions(+), 6 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Correct logical decoding restore behaviour for subtransactions.
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Correct logical decoding restore behaviour for subtransactions.