postgresql/src
Andres Freund 07172b20f1 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
2016-10-03 22:14:12 -07:00
..
backend Correct logical decoding restore behaviour for subtransactions. 2016-10-03 22:14:12 -07:00
bin Include <sys/select.h> where needed 2016-09-27 01:05:21 -03:00
common Unlink static libraries before rebuilding them. 2015-03-01 13:06:33 -05:00
include Avoid using PostmasterRandom() for DSM control segment ID. 2016-09-23 09:54:11 -04:00
interfaces Fix ecpg -? option on Windows, add -V alias for --version. 2016-09-18 13:59:57 +03:00
makefiles Consolidate makefile code for setting top_srcdir, srcdir and VPATH. 2015-07-30 20:49:22 -04:00
pl Translation updates 2016-08-08 10:58:04 -04:00
port Include <sys/select.h> where needed 2016-09-27 01:05:21 -03:00
template AIX: Test the -qlonglong option before use. 2015-07-17 03:01:35 -04:00
test Include <sys/select.h> where needed 2016-09-27 01:05:21 -03:00
timezone Add regression test coverage for non-default timezone abbreviation sets. 2016-09-04 20:02:16 -04:00
tools MSVC: Include pg_recvlogical in client-only install. 2016-09-19 14:27:13 -04:00
tutorial pgindent run for 9.4 2014-05-06 12:12:18 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Install TAP test infrastructure so it's available for extension testing. 2016-09-23 15:50:00 -04:00
Makefile.global.in Back-patch fixes to make TAP tests work on Windows. 2015-11-17 14:10:24 -05:00
Makefile.shlib Make the AIX case of Makefile.shlib safe for parallel make. 2016-07-23 20:30:44 -04:00
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00