mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-20 17:03:24 +02:00
Manifested as ERROR: subtransaction logged without previous top-level txn record this check forbids legit behaviours like - First xl_xact_assignment record is beyond reading, i.e. earlier restart_lsn. - After restart_lsn there is some change of a subxact. - After that, there is second xl_xact_assignment (for another subxact) revealing the relationship between top and first subxact. Such a transaction won't be streamed anyway because we hadn't seen it in full. Saying for sure whether xact of some record encountered after the snapshot was deserialized can be streamed or not requires to know whether it wrote something before deserialization point --if yes, it hasn't been seen in full and can't be decoded. Snapshot doesn't have such info, so there is no easy way to relax the check. Reported-by: Hsu, John Diagnosed-by: Arseny Sher Author: Arseny Sher, Amit Kapila Reviewed-by: Amit Kapila, Dilip Kumar Backpatch-through: 9.5 Discussion: https://postgr.es/m/AB5978B2-1772-4FEE-A245-74C91704ECB0@amazon.com
35 lines
1.2 KiB
Makefile
35 lines
1.2 KiB
Makefile
# contrib/test_decoding/Makefile
|
|
|
|
MODULES = test_decoding
|
|
PGFILEDESC = "test_decoding - example of a logical decoding output plugin"
|
|
|
|
REGRESS = ddl xact rewrite toast permissions decoding_in_xact \
|
|
decoding_into_rel binary prepared replorigin time messages \
|
|
spill slot truncate
|
|
ISOLATION = mxact delayed_startup ondisk_startup concurrent_ddl_dml \
|
|
oldest_xmin snapshot_transfer subxact_without_top
|
|
|
|
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf
|
|
ISOLATION_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf
|
|
|
|
# Disabled because these tests require "wal_level=logical", which
|
|
# typical installcheck users do not have (e.g. buildfarm clients).
|
|
NO_INSTALLCHECK = 1
|
|
|
|
ifdef USE_PGXS
|
|
PG_CONFIG = pg_config
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
include $(PGXS)
|
|
else
|
|
subdir = contrib/test_decoding
|
|
top_builddir = ../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
include $(top_srcdir)/contrib/contrib-global.mk
|
|
endif
|
|
|
|
# But it can nonetheless be very helpful to run tests on preexisting
|
|
# installation, allow to do so, but only if requested explicitly.
|
|
installcheck-force:
|
|
$(pg_regress_installcheck) $(REGRESS)
|
|
$(pg_isolation_regress_installcheck) $(ISOLATION)
|