
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
68 lines
2.2 KiB
Makefile
68 lines
2.2 KiB
Makefile
# contrib/test_decoding/Makefile
|
|
|
|
MODULES = test_decoding
|
|
PGFILEDESC = "test_decoding - example of a logical decoding output plugin"
|
|
|
|
# Note: because we don't tell the Makefile there are any regression tests,
|
|
# we have to clean those result files explicitly
|
|
EXTRA_CLEAN = $(pg_regress_clean_files)
|
|
|
|
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
|
|
|
|
# Disabled because these tests require "wal_level=logical", which
|
|
# typical installcheck users do not have (e.g. buildfarm clients).
|
|
installcheck:;
|
|
|
|
# But it can nonetheless be very helpful to run tests on preexisting
|
|
# installation, allow to do so, but only if requested explicitly.
|
|
installcheck-force: regresscheck-install-force isolationcheck-install-force
|
|
|
|
check: regresscheck isolationcheck
|
|
|
|
submake-regress:
|
|
$(MAKE) -C $(top_builddir)/src/test/regress all
|
|
|
|
submake-isolation:
|
|
$(MAKE) -C $(top_builddir)/src/test/isolation all
|
|
|
|
submake-test_decoding:
|
|
$(MAKE) -C $(top_builddir)/contrib/test_decoding
|
|
|
|
REGRESSCHECKS=ddl xact rewrite toast permissions decoding_in_xact \
|
|
decoding_into_rel binary prepared replorigin time messages \
|
|
spill slot truncate
|
|
|
|
regresscheck: | submake-regress submake-test_decoding temp-install
|
|
$(pg_regress_check) \
|
|
--temp-config $(top_srcdir)/contrib/test_decoding/logical.conf \
|
|
$(REGRESSCHECKS)
|
|
|
|
regresscheck-install-force: | submake-regress submake-test_decoding temp-install
|
|
$(pg_regress_installcheck) \
|
|
$(REGRESSCHECKS)
|
|
|
|
ISOLATIONCHECKS=mxact delayed_startup ondisk_startup concurrent_ddl_dml \
|
|
oldest_xmin snapshot_transfer subxact_without_top
|
|
|
|
isolationcheck: | submake-isolation submake-test_decoding temp-install
|
|
$(pg_isolation_regress_check) \
|
|
--temp-config $(top_srcdir)/contrib/test_decoding/logical.conf \
|
|
$(ISOLATIONCHECKS)
|
|
|
|
isolationcheck-install-force: all | submake-isolation submake-test_decoding temp-install
|
|
$(pg_isolation_regress_installcheck) \
|
|
$(ISOLATIONCHECKS)
|
|
|
|
.PHONY: submake-test_decoding submake-regress check \
|
|
regresscheck regresscheck-install-force \
|
|
isolationcheck isolationcheck-install-force
|