Parsed test spec with 11 sessions starting permutation: ab bb cb a1 b1 c1 a2 b2 c2 v a3 b3 c3 atag v rscan ridx rbm ragg rpar ac ba rscan ridx rbm ragg rpar v rscan ridx rbm ragg rpar cc rscan ridx rbm ragg rpar v rscan ragg frozen step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step v: VACUUM iso_wp; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count|sum -----+--- 10| 55 (1 row) step ridx: SET enable_seqscan = off; SET enable_indexscan = on; SET enable_bitmapscan = off; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 10 (1 row) step rbm: SET enable_seqscan = off; SET enable_indexscan = off; SET enable_bitmapscan = on; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 10 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count|sum -+-----+--- 0| 10| 55 (1 row) step rpar: SET sift.enable_agg = off; SET max_parallel_workers_per_gather = 2; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SELECT count(*), sum(id) FROM iso_wp; count|sum -----+--- 10| 55 (1 row) step ac: COMMIT; step ba: ROLLBACK; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step ridx: SET enable_seqscan = off; SET enable_indexscan = on; SET enable_bitmapscan = off; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step rbm: SET enable_seqscan = off; SET enable_indexscan = off; SET enable_bitmapscan = on; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) step rpar: SET sift.enable_agg = off; SET max_parallel_workers_per_gather = 2; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step ridx: SET enable_seqscan = off; SET enable_indexscan = on; SET enable_bitmapscan = off; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step rbm: SET enable_seqscan = off; SET enable_indexscan = off; SET enable_bitmapscan = on; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) step rpar: SET sift.enable_agg = off; SET max_parallel_workers_per_gather = 2; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step cc: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step ridx: SET enable_seqscan = off; SET enable_indexscan = on; SET enable_bitmapscan = off; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 36010 (1 row) step rbm: SET enable_seqscan = off; SET enable_indexscan = off; SET enable_bitmapscan = on; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 36010 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 3|18000|5634009000 (3 rows) step rpar: SET sift.enable_agg = off; SET max_parallel_workers_per_gather = 2; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 3|18000|5634009000 (3 rows) step frozen: SELECT sift._test_tbl_tagged('iso_wp') = 0 AS frozen; frozen ------ t (1 row) starting permutation: ab bb cb a1 b1 c1 a2 b2 c2 a3 b3 c3 ac ba v rscan ragg ca rscan ragg v rscan ridx rbm ragg frozen step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step ba: ROLLBACK; step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) step ca: ROLLBACK; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) step ridx: SET enable_seqscan = off; SET enable_indexscan = on; SET enable_bitmapscan = off; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step rbm: SET enable_seqscan = off; SET enable_indexscan = off; SET enable_bitmapscan = on; SELECT count(*) FROM iso_wp WHERE id > 0; count ----- 18010 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) step frozen: SELECT sift._test_tbl_tagged('iso_wp') = 0 AS frozen; frozen ------ t (1 row) starting permutation: rrb ab bb cb a1 b1 c1 a2 b2 c2 a3 b3 c3 ac ba cc v rrscan rre rscan ragg step rrb: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT count(*) FROM iso_wp; count ----- 10 (1 row) step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step ba: ROLLBACK; step cc: COMMIT; step v: VACUUM iso_wp; step rrscan: SELECT id / 100000 AS g, count(*) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count -+----- 0| 10 (1 row) step rre: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 3|18000|5634009000 (3 rows) starting permutation: ab bb cb a1 b1 c1 a2 b2 c2 a3 b3 c3 ac ba rrb cc v rrscan v rre rscan ragg step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step ba: ROLLBACK; step rrb: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT count(*) FROM iso_wp; count ----- 18010 (1 row) step cc: COMMIT; step v: VACUUM iso_wp; step rrscan: SELECT id / 100000 AS g, count(*) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count -+----- 0| 10 1|18000 (2 rows) step v: VACUUM iso_wp; step rre: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 3|18000|5634009000 (3 rows) starting permutation: ab bb cb a1 b1 c1 a2 b2 c2 a3 b3 c3 ac ba rsb cc v rsscan rse rscan ragg step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step ba: ROLLBACK; step rsb: BEGIN ISOLATION LEVEL SERIALIZABLE; SELECT count(*) FROM iso_wp; count ----- 18010 (1 row) step cc: COMMIT; step v: VACUUM iso_wp; step rsscan: SELECT id / 100000 AS g, count(*) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count -+----- 0| 10 1|18000 (2 rows) step rse: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 36010|7668018055 (1 row) step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 3|18000|5634009000 (3 rows) starting permutation: rsb ab bb cb a1 b1 c1 a2 b2 c2 a3 b3 c3 ac ba ca v rsscan rse ragg step rsb: BEGIN ISOLATION LEVEL SERIALIZABLE; SELECT count(*) FROM iso_wp; count ----- 10 (1 row) step ab: BEGIN; step bb: BEGIN; step cb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (300000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (310000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step c3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (320000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step ba: ROLLBACK; step ca: ROLLBACK; step v: VACUUM iso_wp; step rsscan: SELECT id / 100000 AS g, count(*) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count -+----- 0| 10 (1 row) step rse: COMMIT; step ragg: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SET sift.enable_agg = on; SET cpu_tuple_cost = 0.5; SELECT id / 100000 AS g, count(*), sum(id) FROM iso_wp GROUP BY 1 ORDER BY 1; g|count| sum -+-----+---------- 0| 10| 55 1|18000|2034009000 (2 rows) starting permutation: ab a1 a2 a3 v atag ub u1 ac ur rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step v: VACUUM iso_wp; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ub: BEGIN; step u1: INSERT INTO iso_wp VALUES (100003, 'dup', 3); step ac: COMMIT; step u1: <... completed> ERROR: duplicate key value violates unique constraint "iso_wp_pkey" step ur: ROLLBACK; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) starting permutation: ab a1 a2 a3 v atag ub u1 aa uc rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step v: VACUUM iso_wp; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ub: BEGIN; step u1: INSERT INTO iso_wp VALUES (100003, 'dup', 3); step aa: ROLLBACK; step u1: <... completed> step uc: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+------ 11|100058 (1 row) starting permutation: ab a1 a2 a3 v atag ub u2 ac uc rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step v: VACUUM iso_wp; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ub: BEGIN; step u2: INSERT INTO iso_wp VALUES (100003, 'dup', 3) ON CONFLICT (id) DO NOTHING; step ac: COMMIT; step u2: <... completed> step uc: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 18010|2034009055 (1 row) starting permutation: ab a1 a2 a3 v atag ub u2 aa uc rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step v: VACUUM iso_wp; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ub: BEGIN; step u2: INSERT INTO iso_wp VALUES (100003, 'dup', 3) ON CONFLICT (id) DO NOTHING; step aa: ROLLBACK; step u2: <... completed> step uc: COMMIT; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+------ 11|100058 (1 row) starting permutation: ab bb a1 b1 a2 b2 a3 b3 atag ci ac ba rw rwseq step ab: BEGIN; step bb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ci: CREATE INDEX iso_wp_w ON iso_wp (w); step ac: COMMIT; step ba: ROLLBACK; step ci: <... completed> step rw: SET enable_seqscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp WHERE w = 7; count| sum -----+-------- 181|20332267 (1 row) step rwseq: SET enable_seqscan = on; SELECT count(*), sum(id) FROM iso_wp WHERE w = 7; count| sum -----+-------- 181|20332267 (1 row) starting permutation: ab bb a1 b1 a2 b2 a3 b3 atag cic ac ba rw rwseq step ab: BEGIN; step bb: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (200000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (210000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step b3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (220000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step cic: CREATE INDEX CONCURRENTLY iso_wp_w ON iso_wp (w); step ac: COMMIT; step ba: ROLLBACK; step cic: <... completed> step rw: SET enable_seqscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp WHERE w = 7; count| sum -----+-------- 181|20332267 (1 row) step rwseq: SET enable_seqscan = on; SELECT count(*), sum(id) FROM iso_wp WHERE w = 7; count| sum -----+-------- 181|20332267 (1 row) starting permutation: ab a1 a2 a3 atag lupd lfu ac rrow lupd rrow lfu step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step lupd: UPDATE iso_wp SET v = 'l' WHERE id = 100002; step lfu: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE; id -- (0 rows) step ac: COMMIT; step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+---- 100002|xxxx (1 row) step lupd: UPDATE iso_wp SET v = 'l' WHERE id = 100002; step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+- 100002|l (1 row) step lfu: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE; id ------ 100002 (1 row) starting permutation: ab a1 a2 a3 atag ac v lupd rrow lfu step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step ac: COMMIT; step v: VACUUM iso_wp; step lupd: UPDATE iso_wp SET v = 'l' WHERE id = 100002; step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+- 100002|l (1 row) step lfu: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE; id ------ 100002 (1 row) starting permutation: ab a1 a2 a3 atag aupd adel ac rupd rscan v rupd rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step aupd: UPDATE iso_wp SET v = 'a-upd' WHERE id BETWEEN 100001 AND 100500; step adel: DELETE FROM iso_wp WHERE id BETWEEN 100501 AND 101000; step ac: COMMIT; step rupd: SELECT count(*) FILTER (WHERE v = 'a-upd') AS updated, count(*) FILTER (WHERE id BETWEEN 100501 AND 101000) AS deleted_ones FROM iso_wp; updated|deleted_ones -------+------------ 500| 0 (1 row) step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 17510|1983633805 (1 row) step v: VACUUM iso_wp; step rupd: SELECT count(*) FILTER (WHERE v = 'a-upd') AS updated, count(*) FILTER (WHERE id BETWEEN 100501 AND 101000) AS deleted_ones FROM iso_wp; updated|deleted_ones -------+------------ 500| 0 (1 row) step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count| sum -----+---------- 17510|1983633805 (1 row) starting permutation: ab a1 a2 a3 atag aupd adel aa v rscan step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step atag: SELECT sift._test_tbl_tagged('iso_wp') > 0 AS promoted_rows; promoted_rows ------------- t (1 row) step aupd: UPDATE iso_wp SET v = 'a-upd' WHERE id BETWEEN 100001 AND 100500; step adel: DELETE FROM iso_wp WHERE id BETWEEN 100501 AND 101000; step aa: ROLLBACK; step v: VACUUM iso_wp; step rscan: SET enable_seqscan = on; SET enable_indexscan = off; SET enable_bitmapscan = off; SELECT count(*), sum(id) FROM iso_wp; count|sum -----+--- 10| 55 (1 row) starting permutation: ab a1 a2 a3 ac l1b l1u l2nw l2sk l2u l1c rrow step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step l1b: BEGIN; step l1u: UPDATE iso_wp SET v = 'l1' WHERE id = 100002; step l2nw: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "iso_wp" step l2sk: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE SKIP LOCKED; id -- (0 rows) step l2u: UPDATE iso_wp SET v = v || '+l2' WHERE id = 100002; step l1c: COMMIT; step l2u: <... completed> step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+---- 100002|l1+l (1 row) starting permutation: ab a1 a2 a3 ac v l1b l1u l2nw l2sk l2u l1c rrow step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step v: VACUUM iso_wp; step l1b: BEGIN; step l1u: UPDATE iso_wp SET v = 'l1' WHERE id = 100002; step l2nw: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "iso_wp" step l2sk: SELECT id FROM iso_wp WHERE id = 100002 FOR UPDATE SKIP LOCKED; id -- (0 rows) step l2u: UPDATE iso_wp SET v = v || '+l2' WHERE id = 100002; step l1c: COMMIT; step l2u: <... completed> step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+---- 100002|l1+l (1 row) starting permutation: ab a1 a2 a3 ac rrb l1b l1u l1c rrupd rre rrow step ab: BEGIN; step a1: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (100000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a2: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (110000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step a3: DO $$ BEGIN FOR i IN 1..6000 LOOP INSERT INTO iso_wp VALUES (120000 + i, repeat('x', 1000), i % 100); END LOOP; END $$; step ac: COMMIT; step rrb: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT count(*) FROM iso_wp; count ----- 18010 (1 row) step l1b: BEGIN; step l1u: UPDATE iso_wp SET v = 'l1' WHERE id = 100002; step l1c: COMMIT; step rrupd: UPDATE iso_wp SET v = 'rr' WHERE id = 100002; ERROR: could not serialize access due to concurrent update step rre: COMMIT; step rrow: SELECT id, left(v, 4) AS v FROM iso_wp WHERE id = 100002; id|v ------+-- 100002|l1 (1 row)