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 по дате отправления: