mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
Commit 0da92dc530 improved the logical decoding infrastructure to handle sequences, and did various changes to related parts (WAL logging etc.). But it did not include any implementation of the new callbacks added to OutputPluginCallbacks. This extends test_decoding with two callbacks to decode sequences. The decoding of sequences may be disabled using 'include-sequences', a new option of the output plugin. Author: Tomas Vondra, Cary Huang Reviewed-by: Peter Eisentraut, Hannu Krosing, Andres Freund Discussion: https://postgr.es/m/d045f3c2-6cfb-06d3-5540-e63c320df8bc@enterprisedb.com Discussion: https://postgr.es/m/1710ed7e13b.cd7177461430746.3372264562543607781@highgo.ca
39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
setup
|
|
{
|
|
DROP TABLE IF EXISTS do_write;
|
|
CREATE TABLE do_write(id serial primary key);
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE IF EXISTS do_write;
|
|
SELECT 'stop' FROM pg_drop_replication_slot('isolation_slot');
|
|
}
|
|
|
|
session "s0"
|
|
setup { SET synchronous_commit=on; }
|
|
step "s0init" {SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');}
|
|
step "s0start" {SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');}
|
|
step "s0alter" {ALTER TABLE do_write ADD column ts timestamptz; }
|
|
step "s0w" { INSERT INTO do_write DEFAULT VALUES; }
|
|
|
|
session "s1"
|
|
setup { SET synchronous_commit=on; }
|
|
step "s1begin" {BEGIN;}
|
|
step "s1sharepgclass" { SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s; }
|
|
step "s1keysharepgclass" { SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s; }
|
|
step "s1commit" {COMMIT;}
|
|
|
|
session "s2"
|
|
setup { SET synchronous_commit=on; }
|
|
step "s2begin" {BEGIN;}
|
|
step "s2sharepgclass" { SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s; }
|
|
step "s2keysharepgclass" { SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s; }
|
|
step "s2commit" {COMMIT;}
|
|
|
|
# test that we're handling an update-only mxact xmax correctly
|
|
permutation "s0init" "s0start" "s1begin" "s1sharepgclass" "s2begin" "s2sharepgclass" "s0w" "s0start" "s2commit" "s1commit"
|
|
|
|
# test that we're handling an update-only mxact xmax correctly
|
|
permutation "s0init" "s0start" "s1begin" "s1keysharepgclass" "s2begin" "s2keysharepgclass" "s0alter" "s0w" "s0start" "s2commit" "s1commit"
|