Improve display of query results in isolation tests.
authorTom Lane
Wed, 23 Jun 2021 15:12:31 +0000 (11:12 -0400)
committerTom Lane
Wed, 23 Jun 2021 15:13:00 +0000 (11:13 -0400)
Previously, isolationtester displayed SQL query results using some
ad-hoc code that clearly hadn't had much effort expended on it.
Field values longer than 14 characters weren't separated from
the next field, and usually caused misalignment of the columns
too.  Also there was no visual separation of a query's result
from subsequent isolationtester output.  This made test result
files confusing and hard to read.

To improve matters, let's use libpq's PQprint() function.  Although
that's long since unused by psql, it's still plenty good enough
for the purpose here.

Like 741d7f104, back-patch to all supported branches, so that this
isn't a stumbling block for back-patching isolation test changes.

Discussion: https://postgr.es/m/582362.1623798221@sss.pgh.pa.us

104 files changed:
contrib/test_decoding/expected/concurrent_ddl_dml.out
contrib/test_decoding/expected/concurrent_stream.out
contrib/test_decoding/expected/delayed_startup.out
contrib/test_decoding/expected/mxact.out
contrib/test_decoding/expected/oldest_xmin.out
contrib/test_decoding/expected/ondisk_startup.out
contrib/test_decoding/expected/snapshot_transfer.out
contrib/test_decoding/expected/subxact_without_top.out
contrib/test_decoding/expected/twophase_snapshot.out
src/test/isolation/expected/aborted-keyrevoke.out
src/test/isolation/expected/alter-table-1.out
src/test/isolation/expected/alter-table-2.out
src/test/isolation/expected/alter-table-3.out
src/test/isolation/expected/alter-table-4.out
src/test/isolation/expected/async-notify.out
src/test/isolation/expected/classroom-scheduling.out
src/test/isolation/expected/create-trigger.out
src/test/isolation/expected/deadlock-parallel.out
src/test/isolation/expected/delete-abort-savept-2.out
src/test/isolation/expected/delete-abort-savept.out
src/test/isolation/expected/detach-partition-concurrently-1.out
src/test/isolation/expected/detach-partition-concurrently-2.out
src/test/isolation/expected/detach-partition-concurrently-3.out
src/test/isolation/expected/detach-partition-concurrently-4.out
src/test/isolation/expected/drop-index-concurrently-1.out
src/test/isolation/expected/drop-index-concurrently-1_2.out
src/test/isolation/expected/eval-plan-qual-trigger.out
src/test/isolation/expected/eval-plan-qual.out
src/test/isolation/expected/fk-partitioned-2.out
src/test/isolation/expected/freeze-the-dead.out
src/test/isolation/expected/horizons.out
src/test/isolation/expected/inherit-temp.out
src/test/isolation/expected/insert-conflict-do-nothing-2.out
src/test/isolation/expected/insert-conflict-do-nothing.out
src/test/isolation/expected/insert-conflict-do-update-2.out
src/test/isolation/expected/insert-conflict-do-update-3.out
src/test/isolation/expected/insert-conflict-do-update.out
src/test/isolation/expected/insert-conflict-specconflict.out
src/test/isolation/expected/lock-committed-keyupdate.out
src/test/isolation/expected/lock-committed-update.out
src/test/isolation/expected/lock-update-delete.out
src/test/isolation/expected/lock-update-delete_1.out
src/test/isolation/expected/lock-update-traversal.out
src/test/isolation/expected/multiple-cic.out
src/test/isolation/expected/multiple-row-versions.out
src/test/isolation/expected/multixact-no-deadlock.out
src/test/isolation/expected/multixact-no-forget.out
src/test/isolation/expected/multixact-no-forget_1.out
src/test/isolation/expected/nowait-2.out
src/test/isolation/expected/nowait-3.out
src/test/isolation/expected/nowait-4.out
src/test/isolation/expected/nowait-4_1.out
src/test/isolation/expected/nowait-5.out
src/test/isolation/expected/nowait.out
src/test/isolation/expected/partial-index.out
src/test/isolation/expected/partition-concurrent-attach.out
src/test/isolation/expected/partition-key-update-2.out
src/test/isolation/expected/partition-key-update-3.out
src/test/isolation/expected/partition-key-update-4.out
src/test/isolation/expected/plpgsql-toast.out
src/test/isolation/expected/predicate-gin.out
src/test/isolation/expected/predicate-gist.out
src/test/isolation/expected/predicate-hash.out
src/test/isolation/expected/predicate-lock-hot-tuple.out
src/test/isolation/expected/prepared-transactions-cic.out
src/test/isolation/expected/prepared-transactions.out
src/test/isolation/expected/project-manager.out
src/test/isolation/expected/read-only-anomaly-2.out
src/test/isolation/expected/read-only-anomaly-3.out
src/test/isolation/expected/read-only-anomaly.out
src/test/isolation/expected/read-write-unique-2.out
src/test/isolation/expected/read-write-unique-3.out
src/test/isolation/expected/read-write-unique-4.out
src/test/isolation/expected/read-write-unique.out
src/test/isolation/expected/receipt-report.out
src/test/isolation/expected/referential-integrity.out
src/test/isolation/expected/reindex-concurrently.out
src/test/isolation/expected/ri-trigger.out
src/test/isolation/expected/sequence-ddl.out
src/test/isolation/expected/serializable-parallel-2.out
src/test/isolation/expected/serializable-parallel.out
src/test/isolation/expected/skip-locked-2.out
src/test/isolation/expected/skip-locked-3.out
src/test/isolation/expected/skip-locked-4.out
src/test/isolation/expected/skip-locked-4_1.out
src/test/isolation/expected/skip-locked.out
src/test/isolation/expected/temporal-range-integrity.out
src/test/isolation/expected/timeouts.out
src/test/isolation/expected/total-cash.out
src/test/isolation/expected/truncate-conflict.out
src/test/isolation/expected/tuplelock-conflict.out
src/test/isolation/expected/tuplelock-partition.out
src/test/isolation/expected/tuplelock-update.out
src/test/isolation/expected/tuplelock-upgrade-no-deadlock.out
src/test/isolation/expected/two-ids.out
src/test/isolation/expected/update-conflict-out.out
src/test/isolation/expected/vacuum-reltuples.out
src/test/isolation/isolationtester.c
src/test/modules/brin/expected/summarization-and-inprogress-insertion.out
src/test/modules/delay_execution/expected/partition-addition.out
src/test/modules/delay_execution/expected/partition-removal-1.out
src/test/modules/snapshot_too_old/expected/sto_using_cursor.out
src/test/modules/snapshot_too_old/expected/sto_using_hash_index.out
src/test/modules/snapshot_too_old/expected/sto_using_select.out

index 53578c8ed60fb74d30f50e21ec65dc409cd63e05..3742a2a2474ff42e44bd96b1f9590962789c95c8 100644 (file)
@@ -2,30 +2,38 @@ Parsed test spec with 2 sessions
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_float s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_float: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE float;
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                               
+-------------------------------------------------------------------
+BEGIN                                                              
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1         
 table public.tbl2: INSERT: val1[integer]:1 val2[double precision]:1
-COMMIT         
-?column?       
+COMMIT                                                             
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl1_float s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; 
@@ -33,42 +41,54 @@ step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_alter_tbl1_float: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_char s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying;
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                  
+----------------------------------------------------------------------
+BEGIN                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1            
 table public.tbl2: INSERT: val1[integer]:1 val2[character varying]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl1_char s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varying; 
@@ -76,21 +96,27 @@ step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_alter_tbl1_char: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s2_alter_tbl1_float s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
@@ -98,21 +124,27 @@ step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; 
 step s1_commit: COMMIT;
 step s2_alter_tbl1_float: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
@@ -120,21 +152,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi
 step s1_commit: COMMIT;
 step s2_alter_tbl1_char: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_float s1_insert_tbl2 s2_alter_tbl1_float s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_float: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE float;
@@ -143,21 +181,27 @@ step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; 
 step s1_commit: COMMIT;
 step s2_alter_tbl1_float: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                               
+-------------------------------------------------------------------
+BEGIN                                                              
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1         
 table public.tbl2: INSERT: val1[integer]:1 val2[double precision]:1
-COMMIT         
-?column?       
+COMMIT                                                             
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_char s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying;
@@ -166,21 +210,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi
 step s1_commit: COMMIT;
 step s2_alter_tbl1_char: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                  
+----------------------------------------------------------------------
+BEGIN                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1            
 table public.tbl2: INSERT: val1[integer]:1 val2[character varying]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_char s1_begin s1_insert_tbl1 s2_alter_tbl2_text s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -188,21 +238,27 @@ step s2_alter_tbl2_text: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE text;
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1'
-COMMIT         
-?column?       
+table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' 
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_char s1_begin s1_insert_tbl1 s2_alter_tbl2_text s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -212,21 +268,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi
 step s1_commit: COMMIT;
 step s2_alter_tbl1_char: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1'
-COMMIT         
-?column?       
+table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' 
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_boolean s1_insert_tbl2 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_boolean: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE boolean;
@@ -234,21 +296,27 @@ ERROR:  column "val2" cannot be cast automatically to type boolean
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_boolean s1_insert_tbl2 s2_alter_tbl1_boolean s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_boolean: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE boolean;
@@ -259,42 +327,54 @@ step s1_commit: COMMIT;
 step s2_alter_tbl1_boolean: <... completed>
 ERROR:  column "val2" cannot be cast automatically to type boolean
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_int s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                      
+--------------------------------------------------------------------------
+BEGIN                                                                     
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_int s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
@@ -304,45 +384,57 @@ step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-BEGIN          
+data                                                                      
+--------------------------------------------------------------------------
+BEGIN                                                                     
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1                
+COMMIT                                                                    
+BEGIN                                                                     
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                    
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_float s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_add_float: ALTER TABLE tbl2 ADD COLUMN val3 FLOAT;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                               
+-----------------------------------------------------------------------------------
+BEGIN                                                                              
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                         
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[double precision]:1
-COMMIT         
-?column?       
+COMMIT                                                                             
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_float s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
@@ -352,45 +444,57 @@ step s2_alter_tbl2_add_float: ALTER TABLE tbl2 ADD COLUMN val3 FLOAT;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-BEGIN          
+data                                                                               
+-----------------------------------------------------------------------------------
+BEGIN                                                                              
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                         
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1                         
+COMMIT                                                                             
+BEGIN                                                                              
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[double precision]:1
-COMMIT         
-?column?       
+COMMIT                                                                             
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_char s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                                  
+--------------------------------------------------------------------------------------
+BEGIN                                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                            
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                                
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_char s1_insert_tbl2_3col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
@@ -400,24 +504,30 @@ step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-BEGIN          
+data                                                                                  
+--------------------------------------------------------------------------------------
+BEGIN                                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                            
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1                            
+COMMIT                                                                                
+BEGIN                                                                                 
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                                
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER;
 step s1_begin: BEGIN;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
@@ -425,20 +535,26 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; 
 step s1_commit: COMMIT;
 step s2_alter_tbl2_drop_3rd_col: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                                      
+--------------------------------------------------------------------------
+BEGIN                                                                     
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                    
+(3 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s1_commit s1_insert_tbl2 s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER;
 step s1_begin: BEGIN;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
@@ -448,24 +564,30 @@ step s1_commit: COMMIT;
 step s2_alter_tbl2_drop_3rd_col: <... completed>
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
+data                                                                         
+-----------------------------------------------------------------------------
+BEGIN                                                                        
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1   
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:null
-COMMIT         
-BEGIN          
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                       
+BEGIN                                                                        
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1                   
+COMMIT                                                                       
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_commit s2_get_changes s2_alter_tbl2_add_text s1_begin s1_insert_tbl2_3col s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s2_get_changes s2_alter_tbl2_3rd_int s1_insert_tbl2_3col s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER;
 step s1_begin: BEGIN;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
@@ -473,11 +595,13 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; 
 step s1_commit: COMMIT;
 step s2_alter_tbl2_drop_3rd_col: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                                      
+--------------------------------------------------------------------------
+BEGIN                                                                     
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
-COMMIT         
+COMMIT                                                                    
+(3 rows)
+
 step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT;
 step s1_begin: BEGIN;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
@@ -486,29 +610,37 @@ step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s1_commit: COMMIT;
 step s2_alter_tbl2_3rd_char: <... completed>
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                                     
+-------------------------------------------------------------------------
+BEGIN                                                                    
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
-COMMIT         
+COMMIT                                                                   
+(4 rows)
+
 step s2_alter_tbl2_3rd_int: ALTER TABLE tbl2 ALTER COLUMN val3 TYPE int USING val3::integer;
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                                      
+--------------------------------------------------------------------------
+BEGIN                                                                     
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                    
+(3 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s1_insert_tbl2_3col s2_alter_tbl2_3rd_text s1_insert_tbl2_3col s1_commit s1_insert_tbl2_3col s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -519,25 +651,31 @@ step s1_commit: COMMIT;
 step s2_alter_tbl2_3rd_text: <... completed>
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                                  
+--------------------------------------------------------------------------------------
+BEGIN                                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                            
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
-COMMIT         
-BEGIN          
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                                
+BEGIN                                                                                 
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'             
+COMMIT                                                                                
+(8 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_text s1_begin s1_insert_tbl1 s1_insert_tbl2_3col s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s1_insert_tbl2_3col s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -548,25 +686,31 @@ step s1_commit: COMMIT;
 step s2_alter_tbl2_3rd_char: <... completed>
 step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
-COMMIT         
-BEGIN          
+data                                                                                  
+--------------------------------------------------------------------------------------
+BEGIN                                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                            
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'             
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'             
+COMMIT                                                                                
+BEGIN                                                                                 
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
-COMMIT         
-?column?       
+COMMIT                                                                                
+(8 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s2_alter_tbl2_3rd_text s1_insert_tbl2_3col s1_commit s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -576,24 +720,30 @@ step s1_commit: COMMIT;
 step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3;
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                     
+-------------------------------------------------------------------------
+BEGIN                                                                    
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1               
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1'
-COMMIT         
-BEGIN          
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                   
+BEGIN                                                                    
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1               
+COMMIT                                                                   
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_text s1_begin s1_insert_tbl1 s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -603,24 +753,30 @@ step s1_commit: COMMIT;
 step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3;
 step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1);
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
+data                                                                                  
+--------------------------------------------------------------------------------------
+BEGIN                                                                                 
+table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1                            
 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1'
-COMMIT         
-BEGIN          
-table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                                                
+BEGIN                                                                                 
+table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1                            
+COMMIT                                                                                
+(7 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s2_alter_tbl2_drop_3rd_col s1_insert_tbl1 s1_commit s2_get_changes
 step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying;
 step s1_begin: BEGIN;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
@@ -628,12 +784,16 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3;
 step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1);
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                      
+----------------------------------------------------------
+BEGIN                                                     
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1
-COMMIT         
-?column?       
+COMMIT                                                    
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index 6f8b2176db50e32294b54b4e832cfd640bd37757..bf1e1326c6196b4aebf3225f05ec9d0a5706befa 100644 (file)
@@ -9,12 +9,16 @@ step s1_toast_insert: INSERT INTO stream_test SELECT large_val();
 step s2_ddl: CREATE TABLE stream_test2(data text);
 step s1_commit: COMMIT;
 step s1_get_stream_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1');
-data           
-
+data                                    
+----------------------------------------
 opening a streamed block for transaction
-streaming change for transaction
+streaming change for transaction        
 closing a streamed block for transaction
-committing streamed transaction
-?column?       
+committing streamed transaction         
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index db8c525ac408b5e7943800fabc432bb45a676d9b..d10de3658acc8b37acf970491bb599e53882deaa 100644 (file)
@@ -6,33 +6,45 @@ step s1w: INSERT INTO do_write DEFAULT VALUES;
 step s2init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); 
 step s1c: COMMIT;
 step s2init: <... completed>
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
+data
+----
+(0 rows)
 
 step s1b: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1w: INSERT INTO do_write DEFAULT VALUES;
 step s1c: COMMIT;
 step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
+data                                        
+--------------------------------------------
+BEGIN                                       
 table public.do_write: INSERT: id[integer]:2
-COMMIT         
+COMMIT                                      
+(3 rows)
+
 step s1b: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1w: INSERT INTO do_write DEFAULT VALUES;
 step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
+data
+----
+(0 rows)
 
 step s1c: COMMIT;
 step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
+data                                        
+--------------------------------------------
+BEGIN                                       
 table public.do_write: INSERT: id[integer]:3
-COMMIT         
-?column?       
+COMMIT                                      
+(3 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index f0d96cc67d0b26a99af7bd4f7594a27464c1817d..03ad3df09996838408069b2aec53b66a8630b854 100644 (file)
@@ -2,65 +2,89 @@ Parsed test spec with 3 sessions
 
 starting permutation: s0init s0start s1begin s1sharepgclass s2begin s2sharepgclass s0w s0start s2commit s1commit
 step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
+data
+----
+(0 rows)
 
 step s1begin: BEGIN;
 step s1sharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s;
-?column?       
+?column?
+--------
+t       
+(1 row)
 
-t              
 step s2begin: BEGIN;
 step s2sharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s;
-?column?       
+?column?
+--------
+t       
+(1 row)
 
-t              
 step s0w: INSERT INTO do_write DEFAULT VALUES;
 step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
+data                                        
+--------------------------------------------
+BEGIN                                       
 table public.do_write: INSERT: id[integer]:1
-COMMIT         
+COMMIT                                      
+(3 rows)
+
 step s2commit: COMMIT;
 step s1commit: COMMIT;
-?column?       
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s0init s0start s1begin s1keysharepgclass s2begin s2keysharepgclass s0alter s0w s0start s2commit s1commit
 step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
+data
+----
+(0 rows)
 
 step s1begin: BEGIN;
 step s1keysharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s;
-?column?       
+?column?
+--------
+t       
+(1 row)
 
-t              
 step s2begin: BEGIN;
 step s2keysharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s;
-?column?       
+?column?
+--------
+t       
+(1 row)
 
-t              
 step s0alter: ALTER TABLE do_write ADD column ts timestamptz;
 step s0w: INSERT INTO do_write DEFAULT VALUES;
 step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
-COMMIT         
-BEGIN          
+data                                                                          
+------------------------------------------------------------------------------
+BEGIN                                                                         
+COMMIT                                                                        
+BEGIN                                                                         
 table public.do_write: INSERT: id[integer]:1 ts[timestamp with time zone]:null
-COMMIT         
+COMMIT                                                                        
+(5 rows)
+
 step s2commit: COMMIT;
 step s1commit: COMMIT;
-?column?       
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index 02a091398fc15b02daddfc00cb1a40cd5bb346e2..dd6053f9c1f4b8a86d1abeedffa3627fb2c2aec9 100644 (file)
@@ -3,28 +3,38 @@ Parsed test spec with 2 sessions
 starting permutation: s0_begin s0_getxid s1_begin s1_insert s0_alter s0_commit s0_checkpoint s0_get_changes s0_get_changes s1_commit s0_vacuum s0_get_changes
 step s0_begin: BEGIN;
 step s0_getxid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s1_begin: BEGIN;
 step s1_insert: INSERT INTO harvest VALUES ((1, 2, 3));
 step s0_alter: ALTER TYPE basket DROP ATTRIBUTE mangos;
 step s0_commit: COMMIT;
 step s0_checkpoint: CHECKPOINT;
 step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
+data
+----
+(0 rows)
 
 step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
+data
+----
+(0 rows)
 
 step s1_commit: COMMIT;
 step s0_vacuum: VACUUM pg_attribute;
 step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                                  
+------------------------------------------------------
+BEGIN                                                 
 table public.harvest: INSERT: fruits[basket]:'(1,2,3)'
-COMMIT         
-?column?       
+COMMIT                                                
+(3 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index 586b03d75dbb8bb16d9980d76ae9fc18e0356b62..bc7ff071648795c890b987d333c7af2e7f2d0dbc 100644 (file)
@@ -3,50 +3,64 @@ Parsed test spec with 3 sessions
 starting permutation: s2b s2txid s1init s3b s3txid s2alter s2c s2b s2txid s3c s2c s1insert s1checkpoint s1start s1insert s1alter s1insert s1start
 step s2b: BEGIN;
 step s2txid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); 
 step s3b: BEGIN;
 step s3txid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s2alter: ALTER TABLE do_write ADD COLUMN addedbys2 int;
 step s2c: COMMIT;
 step s2b: BEGIN;
 step s2txid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s3c: COMMIT;
 step s1init: <... completed>
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s2c: COMMIT;
 step s1insert: INSERT INTO do_write DEFAULT VALUES;
 step s1checkpoint: CHECKPOINT;
 step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
+data                                                                
+--------------------------------------------------------------------
+BEGIN                                                               
 table public.do_write: INSERT: id[integer]:1 addedbys2[integer]:null
-COMMIT         
+COMMIT                                                              
+(3 rows)
+
 step s1insert: INSERT INTO do_write DEFAULT VALUES;
 step s1alter: ALTER TABLE do_write ADD COLUMN addedbys1 int;
 step s1insert: INSERT INTO do_write DEFAULT VALUES;
 step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
-data           
-
-BEGIN          
-table public.do_write: INSERT: id[integer]:2 addedbys2[integer]:null
-COMMIT         
-BEGIN          
-COMMIT         
-BEGIN          
+data                                                                                        
+--------------------------------------------------------------------------------------------
+BEGIN                                                                                       
+table public.do_write: INSERT: id[integer]:2 addedbys2[integer]:null                        
+COMMIT                                                                                      
+BEGIN                                                                                       
+COMMIT                                                                                      
+BEGIN                                                                                       
 table public.do_write: INSERT: id[integer]:3 addedbys2[integer]:null addedbys1[integer]:null
-COMMIT         
-?column?       
+COMMIT                                                                                      
+(8 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index c3a00009946bef1c2d7afaed5cbe8103fd956f81..833f47874cbcc58c9ff83c357edc16610cb6f36e 100644 (file)
@@ -4,32 +4,40 @@ starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_sub_get_base_s
 step s0_begin: BEGIN;
 step s0_begin_sub0: SAVEPOINT s0;
 step s0_log_assignment: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0);
 step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int;
 step s0_insert: INSERT INTO harvest VALUES (1, 2, 3);
 step s0_end_sub0: RELEASE SAVEPOINT s0;
 step s0_commit: COMMIT;
 step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.dummy: INSERT: i[integer]:0
+data                                                                              
+----------------------------------------------------------------------------------
+BEGIN                                                                             
+table public.dummy: INSERT: i[integer]:0                                          
 table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3
-COMMIT         
-?column?       
+COMMIT                                                                            
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
 
 starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_begin_sub1 s0_sub_get_base_snap s1_produce_new_snap s0_insert s0_end_sub1 s0_end_sub0 s0_commit s0_get_changes
 step s0_begin: BEGIN;
 step s0_begin_sub0: SAVEPOINT s0;
 step s0_log_assignment: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s0_begin_sub1: SAVEPOINT s1;
 step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0);
 step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int;
@@ -38,12 +46,16 @@ step s0_end_sub1: RELEASE SAVEPOINT s1;
 step s0_end_sub0: RELEASE SAVEPOINT s0;
 step s0_commit: COMMIT;
 step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
-table public.dummy: INSERT: i[integer]:0
+data                                                                              
+----------------------------------------------------------------------------------
+BEGIN                                                                             
+table public.dummy: INSERT: i[integer]:0                                          
 table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3
-COMMIT         
-?column?       
+COMMIT                                                                            
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index 99ce99882257044b0f8b829c441fa6ae32812398..4241b0015bd662ba5f700770277ad931e4f22a1c 100644 (file)
@@ -15,25 +15,35 @@ step s2_checkpoint: CHECKPOINT;
 step s1_begin: BEGIN;
 step s1_dml: INSERT INTO harvest VALUES (43);
 step s0_many_subxacts: select subxacts();
-subxacts       
+subxacts
+--------
+        
+(1 row)
 
-               
 step s0_commit: COMMIT;
 step s2_checkpoint: CHECKPOINT;
 step s2_get_changes_suppress_output: SELECT null n FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') GROUP BY n;
-n              
+n
+-
+(1 row)
 
-               
 step s2_get_changes_suppress_output: SELECT null n FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') GROUP BY n;
-n              
+n
+-
+(0 rows)
 
 step s1_commit: COMMIT;
 step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                            
+------------------------------------------------
+BEGIN                                           
 table public.harvest: INSERT: apples[integer]:43
-COMMIT         
-?column?       
+COMMIT                                          
+(3 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index 0e8e1f50fe49772e8eedac64e03d4f2386150beb..f555ffddf74f8d1529e6a4f5c9fb86f2821a67ad 100644 (file)
@@ -3,39 +3,51 @@ Parsed test spec with 3 sessions
 starting permutation: s2b s2txid s1init s3b s3txid s2c s2b s2insert s2p s3c s1insert s1start s2cp s1start
 step s2b: BEGIN;
 step s2txid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding', false, true); 
 step s3b: BEGIN;
 step s3txid: SELECT pg_current_xact_id() IS NULL;
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s2c: COMMIT;
 step s2b: BEGIN;
 step s2insert: INSERT INTO do_write DEFAULT VALUES;
 step s2p: PREPARE TRANSACTION 'test1';
 step s3c: COMMIT;
 step s1init: <... completed>
-?column?       
+?column?
+--------
+init    
+(1 row)
 
-init           
 step s1insert: INSERT INTO do_write DEFAULT VALUES;
 step s1start: SELECT data  FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                        
+--------------------------------------------
+BEGIN                                       
 table public.do_write: INSERT: id[integer]:2
-COMMIT         
+COMMIT                                      
+(3 rows)
+
 step s2cp: COMMIT PREPARED 'test1';
 step s1start: SELECT data  FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'skip-empty-xacts', '1');
-data           
-
-BEGIN          
+data                                        
+--------------------------------------------
+BEGIN                                       
 table public.do_write: INSERT: id[integer]:1
-PREPARE TRANSACTION 'test1'
-COMMIT PREPARED 'test1'
-?column?       
+PREPARE TRANSACTION 'test1'                 
+COMMIT PREPARED 'test1'                     
+(4 rows)
+
+?column?
+--------
+stop    
+(1 row)
 
-stop           
index c93762394ffa4c2786f74c8f30b9b1666ceb0bb1..a03542636faa0fd7526e497ea336dfac4cd9f1ec 100644 (file)
@@ -5,14 +5,18 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1s s1u s1r s1l s2l s1c s2c
@@ -20,13 +24,17 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2c: COMMIT;
 
@@ -35,13 +43,17 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1c: COMMIT;
 
@@ -50,13 +62,17 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2c: COMMIT;
 
@@ -65,13 +81,17 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1c: COMMIT;
 
@@ -80,14 +100,18 @@ step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s1s s1u s2l s1r s1l s1c s2c
@@ -96,13 +120,17 @@ step s1u: UPDATE foo SET key = 2;
 step s2l: SELECT * FROM foo FOR KEY SHARE; 
 step s1r: ROLLBACK TO f;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2c: COMMIT;
 
@@ -112,13 +140,17 @@ step s1u: UPDATE foo SET key = 2;
 step s2l: SELECT * FROM foo FOR KEY SHARE; 
 step s1r: ROLLBACK TO f;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1c: COMMIT;
 
@@ -128,89 +160,113 @@ step s1u: UPDATE foo SET key = 2;
 step s2l: SELECT * FROM foo FOR KEY SHARE; 
 step s1r: ROLLBACK TO f;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s1s s2l s1u s2c s1r s1l s1c
 step s1s: SAVEPOINT f;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1u: UPDATE foo SET key = 2; 
 step s2c: COMMIT;
 step s1u: <... completed>
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s1s s2l s2c s1u s1r s1l s1c
 step s1s: SAVEPOINT f;
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s2l s1s s1u s2c s1r s1l s1c
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2; 
 step s2c: COMMIT;
 step s1u: <... completed>
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s2l s1s s2c s1u s1r s1l s1c
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1s: SAVEPOINT f;
 step s2c: COMMIT;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 
 starting permutation: s2l s2c s1s s1u s1r s1l s1c
 step s2l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1s: SAVEPOINT f;
 step s1u: UPDATE foo SET key = 2;
 step s1r: ROLLBACK TO f;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
index dd5d8b11b6153233b7fce8adfb6bf6633620e2d6..5e88174be4ff638edf9b3ae7b3e6fc157a19f89b 100644 (file)
@@ -8,16 +8,20 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 at2 rx1 sc2 wx rx3 c2
@@ -27,17 +31,21 @@ step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 at2 rx1 wx sc2 rx3 c2
@@ -47,17 +55,21 @@ step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 at2 rx1 wx rx3 sc2 c2
@@ -67,16 +79,20 @@ step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -87,16 +103,20 @@ step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -106,18 +126,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 rx1 at2 wx sc2 rx3 c2
@@ -126,18 +150,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 rx1 at2 wx rx3 sc2 c2
@@ -146,17 +174,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -166,17 +198,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -186,18 +222,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 s2 rx1 wx at2 rx3 sc2 c2
@@ -206,17 +246,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -226,17 +270,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -246,16 +294,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -266,16 +318,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -286,16 +342,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step sc1: COMMIT;
 step s2: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -305,19 +365,23 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 rx1 s2 at2 wx sc2 rx3 c2
@@ -325,19 +389,23 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 rx1 s2 at2 wx rx3 sc2 c2
@@ -345,18 +413,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -365,18 +437,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -385,19 +461,23 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 rx1 s2 wx at2 rx3 sc2 c2
@@ -405,18 +485,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -425,18 +509,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -445,17 +533,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -465,17 +557,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -485,17 +581,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -505,19 +605,23 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 sc1 rx1 wx s2 at2 rx3 sc2 c2
@@ -525,18 +629,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -545,18 +653,22 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -565,17 +677,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -585,17 +701,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -605,17 +725,21 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -625,16 +749,20 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -645,16 +773,20 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -665,16 +797,20 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -685,16 +821,20 @@ step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -704,59 +844,71 @@ starting permutation: s1 at1 rx1 sc1 s2 at2 sc2 wx rx3 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 rx1 sc1 s2 at2 wx sc2 rx3 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx3 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -764,19 +916,23 @@ starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx3 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -784,39 +940,47 @@ starting permutation: s1 at1 rx1 sc1 s2 wx at2 sc2 rx3 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx3 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -824,19 +988,23 @@ starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx3 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -844,18 +1012,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 at2 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -864,18 +1036,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 at2 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -884,18 +1060,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 c2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -904,39 +1084,47 @@ starting permutation: s1 at1 rx1 sc1 wx s2 at2 sc2 rx3 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx3 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -944,19 +1132,23 @@ starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx3 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -964,18 +1156,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 at2 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -984,18 +1180,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 at2 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -1004,18 +1204,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 c2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1024,17 +1228,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 at2 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1044,17 +1252,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 at2 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -1064,17 +1276,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 c2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1084,17 +1300,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 c2 s2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1104,9 +1324,11 @@ starting permutation: s1 at1 rx1 wx sc1 s2 at2 sc2 rx3 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
@@ -1114,31 +1336,37 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx3 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
@@ -1146,20 +1374,24 @@ starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx3 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
@@ -1167,19 +1399,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 at2 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -1188,19 +1424,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 at2 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -1209,19 +1449,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 c2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1230,18 +1474,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 at2 sc2 c2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1251,18 +1499,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 at2 c2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -1272,18 +1524,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 c2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1293,18 +1549,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 c2 s2 at2 sc2
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1313,9 +1573,11 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 s2 at2 sc2 wx rx3 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
@@ -1323,19 +1585,23 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 at2 wx sc2 rx3 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
@@ -1343,59 +1609,71 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx3 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx3 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 wx at2 sc2 rx3 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
@@ -1403,69 +1681,83 @@ step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx3 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx3 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 s2 wx rx3 at2 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -1473,19 +1765,23 @@ step c2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 s2 wx rx3 at2 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -1493,19 +1789,23 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 s2 wx rx3 c2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1513,9 +1813,11 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx s2 at2 sc2 rx3 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
@@ -1523,69 +1825,83 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx3 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx3 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: s1 rx1 at1 sc1 wx s2 rx3 at2 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -1593,19 +1909,23 @@ step c2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx s2 rx3 at2 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -1613,19 +1933,23 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx s2 rx3 c2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1633,18 +1957,22 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx rx3 s2 at2 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1653,18 +1981,22 @@ step c2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx rx3 s2 at2 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -1673,18 +2005,22 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx rx3 s2 c2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1693,18 +2029,22 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 sc1 wx rx3 c2 s2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1713,9 +2053,11 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 s2 at2 sc2 rx3 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
@@ -1724,19 +2066,23 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx3 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
@@ -1744,20 +2090,24 @@ step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx3 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
@@ -1765,31 +2115,37 @@ step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: s1 rx1 at1 wx sc1 s2 rx3 at2 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
@@ -1797,20 +2153,24 @@ step c2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 s2 rx3 at2 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
@@ -1818,20 +2178,24 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 s2 rx3 c2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1839,19 +2203,23 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 rx3 s2 at2 sc2 c2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -1860,19 +2228,23 @@ step c2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 rx3 s2 at2 c2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -1881,19 +2253,23 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 rx3 s2 c2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1902,19 +2278,23 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 at1 wx sc1 rx3 c2 s2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -1923,17 +2303,21 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 wx at1 rx3 c2 sc1 s2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: <... completed>
 step sc1: COMMIT;
@@ -1944,16 +2328,20 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 wx rx3 at1 c2 sc1 s2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step c2: COMMIT;
 step at1: <... completed>
@@ -1965,16 +2353,20 @@ step sc2: COMMIT;
 starting permutation: s1 rx1 wx rx3 c2 at1 sc1 s2 at2 sc2
 step s1: BEGIN;
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -1984,9 +2376,11 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 at2 sc2 wx rx3 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -1995,18 +2389,22 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 at2 wx sc2 rx3 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2015,18 +2413,22 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx3 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2034,19 +2436,23 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx3 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2054,19 +2460,23 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx at2 sc2 rx3 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2075,18 +2485,22 @@ step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx3 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2094,19 +2508,23 @@ step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx3 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2114,79 +2532,95 @@ step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx rx3 at2 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx rx3 at2 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 s2 wx rx3 c2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step s2: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 at2 sc2 rx3 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2195,18 +2629,22 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx3 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2214,19 +2652,23 @@ step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx3 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2234,89 +2676,107 @@ step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 rx3 at2 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 rx3 at2 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx s2 rx3 c2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx rx3 s2 at2 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -2324,19 +2784,23 @@ step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx rx3 s2 at2 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -2344,19 +2808,23 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx rx3 s2 c2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -2364,19 +2832,23 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 sc1 wx rx3 c2 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -2384,9 +2856,11 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 at2 sc2 rx3 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2396,18 +2870,22 @@ step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx3 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2416,19 +2894,23 @@ step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx3 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2437,19 +2919,23 @@ step wx: <... completed>
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 rx3 at2 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2457,20 +2943,24 @@ step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 rx3 at2 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2478,20 +2968,24 @@ step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 s2 rx3 c2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
@@ -2499,31 +2993,37 @@ step sc1: COMMIT;
 step wx: <... completed>
 step s2: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 rx3 s2 at2 sc2 c2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step sc2: COMMIT;
@@ -2531,20 +3031,24 @@ step c2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 rx3 s2 at2 c2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
 step c2: COMMIT;
@@ -2552,20 +3056,24 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 rx3 s2 c2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s2: BEGIN;
 step c2: COMMIT;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -2573,20 +3081,24 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 at1 wx sc1 rx3 c2 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step wx: INSERT INTO b VALUES (0); 
 step sc1: COMMIT;
 step wx: <... completed>
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s2: BEGIN;
 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
@@ -2594,18 +3106,22 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 wx at1 rx3 c2 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: <... completed>
 step sc1: COMMIT;
@@ -2615,17 +3131,21 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 wx rx3 at1 c2 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step c2: COMMIT;
 step at1: <... completed>
@@ -2636,17 +3156,21 @@ step sc2: COMMIT;
 
 starting permutation: rx1 s1 wx rx3 c2 at1 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step s1: BEGIN;
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2656,18 +3180,22 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx s1 at1 rx3 c2 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: <... completed>
 step sc1: COMMIT;
@@ -2677,17 +3205,21 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx s1 rx3 at1 c2 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s1: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step c2: COMMIT;
 step at1: <... completed>
@@ -2698,17 +3230,21 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx s1 rx3 c2 at1 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step s1: BEGIN;
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step sc1: COMMIT;
@@ -2718,16 +3254,20 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx rx3 s1 at1 c2 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step c2: COMMIT;
@@ -2739,16 +3279,20 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx rx3 s1 c2 at1 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step s1: BEGIN;
 step c2: COMMIT;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
@@ -2759,16 +3303,20 @@ step sc2: COMMIT;
 
 starting permutation: rx1 wx rx3 c2 s1 at1 sc1 s2 at2 sc2
 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id           
+a_id
+----
+   1
+(1 row)
 
-1              
 step wx: INSERT INTO b VALUES (0);
 step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
-a_id           
+a_id
+----
+   3
+   3
+   3
+(3 rows)
 
-3              
-3              
-3              
 step c2: COMMIT;
 step s1: BEGIN;
 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
index 33ea4421138ca6b2f60032812b4c439816e07b66..819bc332e52d9eb3ec9ab858520b7a6dffe74463 100644 (file)
@@ -6,13 +6,17 @@ step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step s1c: COMMIT;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -23,13 +27,17 @@ step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N
 step s2a: BEGIN;
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -39,14 +47,18 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -56,13 +68,17 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -73,13 +89,17 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -92,13 +112,17 @@ step s2a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -108,14 +132,18 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -125,13 +153,17 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -142,13 +174,17 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -159,15 +195,19 @@ starting permutation: s1a s2a s2b s1b s1c s2c s2d s2e s2f
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -176,14 +216,18 @@ starting permutation: s1a s2a s2b s1b s2c s1c s2d s2e s2f
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -193,14 +237,18 @@ starting permutation: s1a s2a s2b s1b s2c s2d s1c s2e s2f
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -211,13 +259,17 @@ starting permutation: s1a s2a s2b s2c s1b s1c s2d s2e s2f
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
@@ -228,13 +280,17 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c s2e s2f
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
@@ -246,13 +302,17 @@ starting permutation: s1a s2a s2b s2c s2d s1b s2e s2f s1c
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step s2e: INSERT INTO a VALUES (4);
@@ -264,13 +324,17 @@ starting permutation: s1a s2a s2b s2c s2d s2e s1b s2f s1c
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
@@ -282,13 +346,17 @@ starting permutation: s1a s2a s2b s2c s2d s2e s2f s1b s1c
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -301,13 +369,17 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -317,14 +389,18 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -334,13 +410,17 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -351,13 +431,17 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -368,15 +452,19 @@ starting permutation: s2a s1a s2b s1b s1c s2c s2d s2e s2f
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -385,14 +473,18 @@ starting permutation: s2a s1a s2b s1b s2c s1c s2d s2e s2f
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -402,14 +494,18 @@ starting permutation: s2a s1a s2b s1b s2c s2d s1c s2e s2f
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -420,13 +516,17 @@ starting permutation: s2a s1a s2b s2c s1b s1c s2d s2e s2f
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
@@ -437,13 +537,17 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c s2e s2f
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
@@ -455,13 +559,17 @@ starting permutation: s2a s1a s2b s2c s2d s1b s2e s2f s1c
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step s2e: INSERT INTO a VALUES (4);
@@ -473,13 +581,17 @@ starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f s1c
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
@@ -491,13 +603,17 @@ starting permutation: s2a s1a s2b s2c s2d s2e s2f s1b s1c
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -507,16 +623,20 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s1a s1b s1c s2c s2d s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -524,15 +644,19 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s1a s1b s2c s1c s2d s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -541,15 +665,19 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s1a s1b s2c s2d s1c s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
 step s2d: <... completed>
@@ -559,14 +687,18 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s1c s2d s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
 step s2d: INSERT INTO b VALUES (0);
@@ -576,14 +708,18 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s2d s1c s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2d: INSERT INTO b VALUES (0); 
 step s1c: COMMIT;
@@ -594,14 +730,18 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s1a s2c s2d s1b s2e s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
 step s2e: INSERT INTO a VALUES (4);
@@ -612,14 +752,18 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s1a s2c s2d s2e s1b s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
@@ -630,14 +774,18 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s1a s2c s2d s2e s2f s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
@@ -647,13 +795,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s1c s2d s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s1c: COMMIT;
@@ -664,13 +816,17 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s2d s1c s2e s2f
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
 step s2d: INSERT INTO b VALUES (0); 
@@ -682,13 +838,17 @@ step s2f: COMMIT;
 starting permutation: s2a s2b s2c s1a s2d s1b s2e s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1a: BEGIN;
 step s2d: INSERT INTO b VALUES (0);
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
@@ -700,13 +860,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s1a s2d s2e s1b s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1a: BEGIN;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -718,13 +882,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s1a s2d s2e s2f s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s1a: BEGIN;
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
@@ -735,13 +903,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s1a s1b s2e s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1a: BEGIN;
 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; 
@@ -753,13 +925,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s1a s2e s1b s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1a: BEGIN;
 step s2e: INSERT INTO a VALUES (4);
@@ -771,13 +947,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s1a s2e s2f s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s1a: BEGIN;
 step s2e: INSERT INTO a VALUES (4);
@@ -788,13 +968,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s2e s1a s1b s2f s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s1a: BEGIN;
@@ -806,13 +990,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s2e s1a s2f s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s1a: BEGIN;
@@ -823,13 +1011,17 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s2e s2f s1a s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
-a_id           
+a_id
+----
+   3
+(1 row)
 
-3              
 step s2d: INSERT INTO b VALUES (0);
 step s2e: INSERT INTO a VALUES (4);
 step s2f: COMMIT;
index aad837206977f63be09f68953a460ff8fd4f373f..427364ee89e5412d339e8de620425e629db5691f 100644 (file)
@@ -7,9 +7,11 @@ step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -21,9 +23,11 @@ step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2a: BEGIN;
 step s1d: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -34,9 +38,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -48,9 +54,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
 step s2c: <... completed>
@@ -64,9 +72,11 @@ step s2a: BEGIN;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -77,9 +87,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2a: BEGIN;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -91,9 +103,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2a: BEGIN;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
 step s2c: <... completed>
@@ -105,9 +119,11 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
@@ -119,9 +135,11 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
@@ -134,9 +152,11 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
@@ -151,9 +171,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -164,9 +186,11 @@ step s2a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -178,9 +202,11 @@ step s2a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
 step s2c: <... completed>
@@ -192,9 +218,11 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
@@ -206,9 +234,11 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
@@ -221,9 +251,11 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
@@ -235,9 +267,11 @@ starting permutation: s1a s2a s2b s1b s1c s1d s2c s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
@@ -249,9 +283,11 @@ starting permutation: s1a s2a s2b s1b s1c s2c s1d s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
@@ -264,9 +300,11 @@ starting permutation: s1a s2a s2b s1b s2c s1c s1d s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
@@ -279,9 +317,11 @@ starting permutation: s1a s2a s2b s2c s1b s1c s1d s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -293,9 +333,11 @@ starting permutation: s1a s2a s2b s2c s1b s1c s2d s1d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -307,9 +349,11 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c s1d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -321,9 +365,11 @@ starting permutation: s1a s2a s2b s2c s2d s1b s1c s1d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -338,9 +384,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -351,9 +399,11 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -365,9 +415,11 @@ step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
 step s2c: <... completed>
@@ -379,9 +431,11 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
 step s2c: INSERT INTO a VALUES (0);
@@ -393,9 +447,11 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
 step s1d: COMMIT;
@@ -408,9 +464,11 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0); 
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
@@ -422,9 +480,11 @@ starting permutation: s2a s1a s2b s1b s1c s1d s2c s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s1d: COMMIT;
@@ -436,9 +496,11 @@ starting permutation: s2a s1a s2b s1b s1c s2c s1d s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
@@ -451,9 +513,11 @@ starting permutation: s2a s1a s2b s1b s2c s1c s1d s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
@@ -466,9 +530,11 @@ starting permutation: s2a s1a s2b s2c s1b s1c s1d s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -480,9 +546,11 @@ starting permutation: s2a s1a s2b s2c s1b s1c s2d s1d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -494,9 +562,11 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c s1d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
@@ -508,9 +578,11 @@ starting permutation: s2a s1a s2b s2c s2d s1b s1c s1d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
@@ -521,9 +593,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s1a s1b s1c s1d s2c s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
@@ -535,9 +609,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s1b s1c s2c s1d s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s1c: ALTER TABLE a ENABLE TRIGGER t;
@@ -550,9 +626,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s1b s2c s1c s1d s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: ALTER TABLE a DISABLE TRIGGER t;
 step s2c: INSERT INTO a VALUES (0); 
@@ -565,9 +643,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s1c s1d s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -579,9 +659,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s1c s2d s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -593,9 +675,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s2d s1c s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -607,9 +691,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s1a s2c s2d s1b s1c s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
@@ -621,9 +707,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s1c s1d s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1a: BEGIN;
@@ -635,9 +723,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s1c s2d s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1a: BEGIN;
@@ -649,9 +739,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s2d s1c s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1a: BEGIN;
@@ -663,9 +755,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s2c s1a s2d s1b s1c s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s1a: BEGIN;
@@ -677,9 +771,11 @@ step s1d: COMMIT;
 starting permutation: s2a s2b s2c s2d s1a s1b s1c s1d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: INSERT INTO a VALUES (0);
 ERROR:  duplicate key value violates unique constraint "a_pkey"
 step s2d: COMMIT;
index 1009844f06f3d0fcff95b2cc578a059368035b20..fc579101c54a495aa73ae5be0f8beea9e84546b2 100644 (file)
@@ -6,13 +6,17 @@ step s1delc1: ALTER TABLE c1 NO INHERIT p;
 step s2sel: SELECT SUM(a) FROM p; 
 step s1c: COMMIT;
 step s2sel: <... completed>
-sum            
+sum
+---
+ 11
+(1 row)
 
-11             
 step s2sel: SELECT SUM(a) FROM p;
-sum            
+sum
+---
+  1
+(1 row)
 
-1              
 
 starting permutation: s1b s1delc1 s1addc2 s2sel s1c s2sel
 step s1b: BEGIN;
@@ -21,13 +25,17 @@ step s1addc2: ALTER TABLE c2 INHERIT p;
 step s2sel: SELECT SUM(a) FROM p; 
 step s1c: COMMIT;
 step s2sel: <... completed>
-sum            
+sum
+---
+ 11
+(1 row)
 
-11             
 step s2sel: SELECT SUM(a) FROM p;
-sum            
+sum
+---
+101
+(1 row)
 
-101            
 
 starting permutation: s1b s1dropc1 s2sel s1c s2sel
 step s1b: BEGIN;
@@ -35,13 +43,17 @@ step s1dropc1: DROP TABLE c1;
 step s2sel: SELECT SUM(a) FROM p; 
 step s1c: COMMIT;
 step s2sel: <... completed>
-sum            
+sum
+---
+  1
+(1 row)
 
-1              
 step s2sel: SELECT SUM(a) FROM p;
-sum            
+sum
+---
+  1
+(1 row)
 
-1              
 
 starting permutation: s1b s1delc1 s1modc1a s2sel s1c s2sel
 step s1b: BEGIN;
@@ -52,6 +64,8 @@ step s1c: COMMIT;
 step s2sel: <... completed>
 ERROR:  attribute "a" of relation "c1" does not match parent's type
 step s2sel: SELECT SUM(a) FROM p;
-sum            
+sum
+---
+  1
+(1 row)
 
-1              
index 79427789b1aeb3af7afef9a4f09e02803c2d8101..556e1805893a423234ec50dc09ac4ab458c6659d 100644 (file)
@@ -8,9 +8,11 @@ step notify2: NOTIFY c2, 'payload';
 notifier: NOTIFY "c2" with payload "payload" from notifier
 step notify3: NOTIFY c3, 'payload3';
 step notifyf: SELECT pg_notify('c2', NULL);
-pg_notify      
+pg_notify
+---------
+         
+(1 row)
 
-               
 notifier: NOTIFY "c2" with payload "" from notifier
 
 starting permutation: listenc notifyd1 notifyd2 notifys1
@@ -51,13 +53,17 @@ step notify1: NOTIFY c1;
 step notify2: NOTIFY c2, 'payload';
 step notify3: NOTIFY c3, 'payload3';
 step notifyf: SELECT pg_notify('c2', NULL);
-pg_notify      
+pg_notify
+---------
+         
+(1 row)
 
-               
 step lcheck: SELECT 1 AS x;
-x              
+x
+-
+1
+(1 row)
 
-1              
 listener: NOTIFY "c1" with payload "" from notifier
 listener: NOTIFY "c2" with payload "payload" from notifier
 listener: NOTIFY "c2" with payload "" from notifier
@@ -71,14 +77,18 @@ step notify2: NOTIFY c2, 'payload';
 notifier: NOTIFY "c2" with payload "payload" from notifier
 step notify3: NOTIFY c3, 'payload3';
 step notifyf: SELECT pg_notify('c2', NULL);
-pg_notify      
+pg_notify
+---------
+         
+(1 row)
 
-               
 notifier: NOTIFY "c2" with payload "" from notifier
 step lcheck: SELECT 1 AS x;
-x              
+x
+-
+1
+(1 row)
 
-1              
 listener: NOTIFY "c1" with payload "" from notifier
 listener: NOTIFY "c2" with payload "payload" from notifier
 listener: NOTIFY "c2" with payload "" from notifier
@@ -98,14 +108,20 @@ starting permutation: llisten lbegin usage bignotify usage
 step llisten: LISTEN c1; LISTEN c2;
 step lbegin: BEGIN;
 step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero;
-nonzero        
+nonzero
+-------
+f      
+(1 row)
 
-f              
 step bignotify: SELECT count(pg_notify('c1', s::text)) FROM generate_series(1, 1000) s;
-count          
+count
+-----
+ 1000
+(1 row)
 
-1000           
 step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero;
-nonzero        
+nonzero
+-------
+t      
+(1 row)
 
-t              
index f02638c0b55c5f7e230af5ea912041a35f24f74c..1d7c885bc060b026a10e4c899166768e55e1e91f 100644 (file)
@@ -2,28 +2,36 @@ Parsed test spec with 2 sessions
 
 starting permutation: rx1 wy1 c1 ry2 wx2 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    1
+(1 row)
 
-1              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
 
 starting permutation: rx1 wy1 ry2 c1 wx2 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step c1: COMMIT;
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -31,14 +39,18 @@ step c2: COMMIT;
 
 starting permutation: rx1 wy1 ry2 wx2 c1 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c1: COMMIT;
 step c2: COMMIT;
@@ -46,14 +58,18 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 wy1 ry2 wx2 c2 c1
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
 step c1: COMMIT;
@@ -61,13 +77,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 ry2 wy1 c1 wx2 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
@@ -76,13 +96,17 @@ step c2: COMMIT;
 
 starting permutation: rx1 ry2 wy1 wx2 c1 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c1: COMMIT;
@@ -91,13 +115,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 ry2 wy1 wx2 c2 c1
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
@@ -106,13 +134,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 ry2 wx2 wy1 c1 c2
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
@@ -121,13 +153,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 ry2 wx2 wy1 c2 c1
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c2: COMMIT;
@@ -136,13 +172,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: rx1 ry2 wx2 c2 wy1 c1
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
@@ -151,13 +191,17 @@ step c1: COMMIT;
 
 starting permutation: ry2 rx1 wy1 c1 wx2 c2
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
@@ -166,13 +210,17 @@ step c2: COMMIT;
 
 starting permutation: ry2 rx1 wy1 wx2 c1 c2
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c1: COMMIT;
@@ -181,13 +229,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 rx1 wy1 wx2 c2 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
@@ -196,13 +248,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 rx1 wx2 wy1 c1 c2
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
@@ -211,13 +267,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 rx1 wx2 wy1 c2 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c2: COMMIT;
@@ -226,13 +286,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 rx1 wx2 c2 wy1 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
@@ -241,14 +305,18 @@ step c1: COMMIT;
 
 starting permutation: ry2 wx2 rx1 wy1 c1 c2
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
 step c2: COMMIT;
@@ -256,14 +324,18 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 wx2 rx1 wy1 c2 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c2: COMMIT;
 step c1: COMMIT;
@@ -271,14 +343,18 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 
 starting permutation: ry2 wx2 rx1 c2 wy1 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step c2: COMMIT;
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -286,14 +362,18 @@ step c1: COMMIT;
 
 starting permutation: ry2 wx2 c2 rx1 wy1 c1
 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30';
-count          
+count
+-----
+    0
+(1 row)
 
-0              
 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00';
 step c2: COMMIT;
 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00';
-count          
+count
+-----
+    1
+(1 row)
 
-1              
 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol');
 step c1: COMMIT;
index 8deb64a8c0c382bf87df3fd29abaa7f2ca69fa16..7f9867804d1a5aacfc0559bdf9aff7d75ba65812 100644 (file)
@@ -6,9 +6,11 @@ step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 
@@ -18,9 +20,11 @@ step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2a: BEGIN;
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 
@@ -29,9 +33,11 @@ step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
@@ -41,9 +47,11 @@ step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
 step s1c: COMMIT;
 step s2c: <... completed>
@@ -55,9 +63,11 @@ step s2a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 
@@ -66,9 +76,11 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
@@ -78,9 +90,11 @@ step s1a: BEGIN;
 step s2a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
 step s1c: COMMIT;
 step s2c: <... completed>
@@ -90,9 +104,11 @@ starting permutation: s1a s2a s2b s1b s1c s2c s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
@@ -102,9 +118,11 @@ starting permutation: s1a s2a s2b s1b s2c s1c s2d
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
 step s1c: COMMIT;
@@ -115,9 +133,11 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); 
 step s2d: COMMIT;
@@ -128,9 +148,11 @@ starting permutation: s1a s2a s2b s2c s2d s1b s1c
 step s1a: BEGIN;
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
@@ -142,9 +164,11 @@ step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 
@@ -153,9 +177,11 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
@@ -165,9 +191,11 @@ step s2a: BEGIN;
 step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
 step s1c: COMMIT;
 step s2c: <... completed>
@@ -177,9 +205,11 @@ starting permutation: s2a s1a s2b s1b s1c s2c s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
@@ -189,9 +219,11 @@ starting permutation: s2a s1a s2b s1b s2c s1c s2d
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
 step s1c: COMMIT;
@@ -202,9 +234,11 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); 
 step s2d: COMMIT;
@@ -215,9 +249,11 @@ starting permutation: s2a s1a s2b s2c s2d s1b s1c
 step s2a: BEGIN;
 step s1a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
@@ -226,9 +262,11 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s1a s1b s1c s2c s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s1c: COMMIT;
@@ -238,9 +276,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s1b s2c s1c s2d
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
 step s2c: UPDATE a SET i = 4 WHERE i = 3; 
@@ -251,9 +291,11 @@ step s2d: COMMIT;
 starting permutation: s2a s2b s1a s2c s1b s2d s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); 
@@ -264,9 +306,11 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s1a s2c s2d s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s1a: BEGIN;
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
@@ -276,9 +320,11 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s1a s1b s2d s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s1a: BEGIN;
 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); 
@@ -289,9 +335,11 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s1a s2d s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s1a: BEGIN;
 step s2d: COMMIT;
@@ -301,9 +349,11 @@ step s1c: COMMIT;
 starting permutation: s2a s2b s2c s2d s1a s1b s1c
 step s2a: BEGIN;
 step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE;
-i              
+i
+-
+1
+(1 row)
 
-1              
 step s2c: UPDATE a SET i = 4 WHERE i = 3;
 step s2d: COMMIT;
 step s1a: BEGIN;
index cf4d07e61567bfafd556e25ad9eefe57b2e08257..6fe5e24a02b0a70a1195f985d5f166ca7e7a3321 100644 (file)
@@ -2,13 +2,17 @@ Parsed test spec with 4 sessions
 
 starting permutation: d1a1 d2a2 e1l e2l d1a2 d2a1 d1c e1c d2c e2c
 step d1a1: SELECT lock_share(1,x), lock_excl(3,x) FROM bigt LIMIT 1;
-lock_share     lock_excl      
+lock_share|lock_excl
+----------+---------
+         1|        1
+(1 row)
 
-1              1              
 step d2a2: select lock_share(2,x) FROM bigt LIMIT 1;
-lock_share     
+lock_share
+----------
+         1
+(1 row)
 
-1              
 step e1l: SELECT lock_excl(1,x) FROM bigt LIMIT 1; 
 step e2l: SELECT lock_excl(2,x) FROM bigt LIMIT 1; 
 step d1a2: SET force_parallel_mode = on;
@@ -30,25 +34,35 @@ step d2a1: SET force_parallel_mode = on;
              RESET parallel_tuple_cost;
              SELECT lock_share(3,x) FROM bigt LIMIT 1; 
 step d1a2: <... completed>
-sum            
+  sum
+-----
+10000
+(1 row)
 
-10000          
 step d1c: COMMIT;
 step e1l: <... completed>
-lock_excl      
+lock_excl
+---------
+        1
+(1 row)
 
-1              
 step d2a1: <... completed>
-sum            
+  sum
+-----
+10000
+(1 row)
 
-10000          
-lock_share     
+lock_share
+----------
+         1
+(1 row)
 
-1              
 step e1c: COMMIT;
 step d2c: COMMIT;
 step e2l: <... completed>
-lock_excl      
+lock_excl
+---------
+        1
+(1 row)
 
-1              
 step e2c: COMMIT;
index f66a90c6f0fbfc55da99d3eca2a09ca24ea7d126..6fc991ae0096e4ff09fc5f98e5e8fa525aadefa2 100644 (file)
@@ -2,75 +2,99 @@ Parsed test spec with 2 sessions
 
 starting permutation: s1l s1svp s1d s1r s2l s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: SELECT * FROM foo FOR NO KEY UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1r: ROLLBACK TO f;
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s1d s2l s1r s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: SELECT * FROM foo FOR NO KEY UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1r: ROLLBACK TO f;
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s1d s1r s2l2 s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: SELECT * FROM foo FOR NO KEY UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1r: ROLLBACK TO f;
 step s2l2: SELECT * FROM foo FOR NO KEY UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s1d s2l2 s1r s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: SELECT * FROM foo FOR NO KEY UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2l2: SELECT * FROM foo FOR NO KEY UPDATE; 
 step s1r: ROLLBACK TO f;
 step s2l2: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1c: COMMIT;
 step s2c: COMMIT;
index 284aa89d3534e1d77c0e4bc6e024acf1b35b6c88..8f70bab45d40ab66f1554fa53aa0334d81a7269f 100644 (file)
@@ -2,94 +2,118 @@ Parsed test spec with 2 sessions
 
 starting permutation: s1l s1svp s1d s1r s1c s2l s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
 step s1c: COMMIT;
 step s2l: SELECT * FROM foo FOR UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s1d s1r s2l s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s1d s2l s1r s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1r: ROLLBACK TO f;
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s1svp s2l s1d s1r s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s1l s2l s1svp s1d s1r s1c s2c
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2l: SELECT * FROM foo FOR UPDATE; 
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
 step s1c: COMMIT;
 step s2l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 
 starting permutation: s2l s1l s2c s1svp s1d s1r s1c
 step s2l: SELECT * FROM foo FOR UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1l: SELECT * FROM foo FOR KEY SHARE; 
 step s2c: COMMIT;
 step s1l: <... completed>
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
@@ -97,14 +121,18 @@ step s1c: COMMIT;
 
 starting permutation: s2l s2c s1l s1svp s1d s1r s1c
 step s2l: SELECT * FROM foo FOR UPDATE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s2c: COMMIT;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value          
+key|value
+---+-----
+  1|    1
+(1 row)
 
-1              1              
 step s1svp: SAVEPOINT f;
 step s1d: DELETE FROM foo;
 step s1r: ROLLBACK TO f;
index 9b4526773efd7446f3586009208cd2b3102fb84a..bae53dd0b227991f273da0feac1425aee338312d 100644 (file)
@@ -3,120 +3,154 @@ Parsed test spec with 3 sessions
 starting permutation: s1b s1s s2detach s1s s1c s1s
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2detach: <... completed>
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 
 starting permutation: s1b s1s s2detach s1s s3s s3i s1c s3i s2drop s1s
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s3s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s3i: SELECT relpartbound IS NULL FROM pg_class where relname = 'd_listp2';
-?column?       
+?column?
+--------
+f       
+(1 row)
 
-f              
 step s1c: COMMIT;
 step s2detach: <... completed>
 step s3i: SELECT relpartbound IS NULL FROM pg_class where relname = 'd_listp2';
-?column?       
+?column?
+--------
+t       
+(1 row)
 
-t              
 step s2drop: DROP TABLE d_listp2;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 
 starting permutation: s1b s1s s2detach s1ins s1s s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1ins: INSERT INTO d_listp VALUES (1);
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+1
+(2 rows)
 
-1              
-1              
 step s1c: COMMIT;
 step s2detach: <... completed>
 
 starting permutation: s1b s1s s1ins2 s2detach s1ins s1s s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1ins2: INSERT INTO d_listp VALUES (2);
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1ins: INSERT INTO d_listp VALUES (1);
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+1
+(2 rows)
 
-1              
-1              
 step s1c: COMMIT;
 step s2detach: <... completed>
 
 starting permutation: s1brr s1s s2detach s1ins s1s s1c
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1ins: INSERT INTO d_listp VALUES (1);
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+1
+2
+(3 rows)
 
-1              
-1              
-2              
 step s1c: COMMIT;
 step s2detach: <... completed>
 
 starting permutation: s1brr s1s s2detach s1s s1c
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1c: COMMIT;
 step s2detach: <... completed>
 
@@ -133,21 +167,27 @@ starting permutation: s1brr s1prep s1s s2detach s1s s1exec1 s3s s1dealloc s1c
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1);
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1exec1: EXECUTE f(1);
 step s3s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s1dealloc: DEALLOCATE f;
 step s1c: COMMIT;
 step s2detach: <... completed>
@@ -158,16 +198,20 @@ step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1);
 step s1exec2: EXECUTE f(2);
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+2
+(3 rows)
 
-1              
-2              
-2              
 step s1exec2: EXECUTE f(2);
 step s3s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s1c: COMMIT;
 step s2detach: <... completed>
 step s1dealloc: DEALLOCATE f;
@@ -176,16 +220,20 @@ starting permutation: s1brr s1prep s1s s2detach s1s s1exec2 s1c s1dealloc
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1);
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1exec2: EXECUTE f(2);
 step s1c: COMMIT;
 step s2detach: <... completed>
@@ -196,10 +244,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1);
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1exec2: EXECUTE f(2);
 step s1c: COMMIT;
 step s2detach: <... completed>
@@ -210,10 +260,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1prep1: PREPARE f(int) AS INSERT INTO d_listp VALUES (1);
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1exec2: EXECUTE f(2);
 step s1c: COMMIT;
 step s2detach: <... completed>
@@ -224,10 +276,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1prep2: PREPARE f(int) AS INSERT INTO d_listp VALUES (2);
 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; 
 step s1s: SELECT * FROM d_listp;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1exec2: EXECUTE f(2);
 step s1c: COMMIT;
 step s2detach: <... completed>
index 85be707b404e713655c54bc84805ad04976adeaa..6f025d81f5e045dc4991314fc4fcca1819c0d563 100644 (file)
@@ -3,10 +3,12 @@ Parsed test spec with 3 sessions
 starting permutation: s1b s1s s2d s3i1 s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_lp_fk;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; 
 step s3i1: INSERT INTO d_lp_fk_r VALUES (1);
 ERROR:  insert or update on table "d_lp_fk_r" violates foreign key constraint "d_lp_fk_r_a_fkey"
@@ -16,10 +18,12 @@ step s2d: <... completed>
 starting permutation: s1b s1s s2d s3i2 s3i2 s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_lp_fk;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; 
 step s3i2: INSERT INTO d_lp_fk_r VALUES (2);
 step s3i2: INSERT INTO d_lp_fk_r VALUES (2);
@@ -29,10 +33,12 @@ step s2d: <... completed>
 starting permutation: s1b s1s s3i1 s2d s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_lp_fk;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s3i1: INSERT INTO d_lp_fk_r VALUES (1);
 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY;
 ERROR:  removing partition "d_lp_fk_1" violates foreign key constraint "d_lp_fk_r_a_fkey1"
@@ -41,10 +47,12 @@ step s1c: COMMIT;
 starting permutation: s1b s1s s3i2 s2d s1c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_lp_fk;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s3i2: INSERT INTO d_lp_fk_r VALUES (2);
 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; 
 step s1c: COMMIT;
@@ -53,10 +61,12 @@ step s2d: <... completed>
 starting permutation: s1b s1s s3b s2d s3i1 s1c s3c
 step s1b: BEGIN;
 step s1s: SELECT * FROM d_lp_fk;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s3b: BEGIN;
 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; 
 step s3i1: INSERT INTO d_lp_fk_r VALUES (1);
index 7ac22a6b15f07848deee01081bf6f7bfd7e83994..e7fb5f8307587eb0db148dc18bba01364c13f031 100644 (file)
@@ -4,24 +4,30 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1describe s1alter
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1describe: SELECT 'd3_listp' AS root, * FROM pg_partition_tree('d3_listp')
                      UNION ALL SELECT 'd3_listp1', * FROM pg_partition_tree('d3_listp1');
-root           relid          parentrelid    isleaf         level          
+root     |relid    |parentrelid|isleaf|level
+---------+---------+-----------+------+-----
+d3_listp |d3_listp |           |f     |    0
+d3_listp |d3_listp2|d3_listp   |t     |    1
+d3_listp1|d3_listp1|           |t     |    0
+(3 rows)
 
-d3_listp       d3_listp                      f              0              
-d3_listp       d3_listp2      d3_listp       t              1              
-d3_listp1      d3_listp1                     t              0              
 step s1alter: ALTER TABLE d3_listp1 ALTER a DROP NOT NULL;
 ERROR:  cannot alter partition "d3_listp1" with an incomplete detach
 
@@ -29,14 +35,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1insert s1c
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1insert: INSERT INTO d3_listp VALUES (1);
@@ -47,36 +57,46 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1insert s1c s1spart
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1insert: INSERT INTO d3_listp VALUES (1);
 step s1c: COMMIT;
 step s1spart: SELECT * FROM d3_listp1;
-a              
+a
+-
+1
+1
+(2 rows)
 
-1              
-1              
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1insertpart
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
@@ -86,24 +106,30 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1insert s1s
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach2: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1insert: INSERT INTO d3_listp VALUES (1);
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+1
+(2 rows)
 
-1              
-1              
 step s1insert: INSERT INTO d3_listp VALUES (1);
 step s1c: COMMIT;
 
@@ -111,84 +137,108 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1s s1insert
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach2: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s1insert: INSERT INTO d3_listp VALUES (1);
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+1
+(2 rows)
 
-1              
-1              
 step s1c: COMMIT;
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1drop s1list
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1drop: DROP TABLE d3_listp;
 step s1list: SELECT relname FROM pg_catalog.pg_class
                      WHERE relname LIKE 'd3_listp%' ORDER BY 1;
-relname        
+relname
+-------
+(0 rows)
 
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1trunc s1spart
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1trunc: TRUNCATE TABLE d3_listp;
 step s1spart: SELECT * FROM d3_listp1;
-a              
+a
+-
+1
+(1 row)
 
-1              
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detach2 s1c
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1noop: 
@@ -200,14 +250,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detachfinal s1
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1noop: 
@@ -220,14 +274,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1droppart s2detach
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
@@ -238,14 +296,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2drop s1s
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
@@ -254,29 +316,37 @@ step s2drop: DROP TABLE d3_listp1;
 step s1s: SELECT * FROM d3_listp; 
 step s2commit: COMMIT;
 step s1s: <... completed>
-a              
+a
+-
+(0 rows)
 
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detachfinal s1c
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1b: BEGIN;
 step s1spart: SELECT * FROM d3_listp1;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; 
 step s1c: COMMIT;
 step s2detachfinal: <... completed>
@@ -285,20 +355,26 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1s s2detachfin
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+(0 rows)
 
 step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE;
 step s1c: COMMIT;
@@ -307,22 +383,28 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detac
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
 step s1b: BEGIN;
 step s1spart: SELECT * FROM d3_listp1;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; 
 step s1c: COMMIT;
 step s2detachfinal: <... completed>
@@ -331,14 +413,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfin
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
@@ -350,14 +436,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfin
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
@@ -366,22 +456,28 @@ step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE;
 step s1spart: SELECT * FROM d3_listp1; 
 step s2commit: COMMIT;
 step s1spart: <... completed>
-a              
+a
+-
+1
+(1 row)
 
-1              
 
 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfinal s1insertpart s2commit
 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid();
 step s1b: BEGIN;
 step s1s: SELECT * FROM d3_listp;
-a              
+a
+-
+1
+(1 row)
 
-1              
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; 
 step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: COMMIT;
index d49736a17d5484d4eddb2505c1ec08370da548bd..d728ecdf4ca8e9afbe73d0f79c8ebad7121d8a5c 100644 (file)
@@ -4,15 +4,19 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1insert s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1insert: insert into d4_fk values (1);
@@ -23,10 +27,12 @@ starting permutation: s2snitch s1b s1s s2detach s1insert s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
@@ -37,15 +43,19 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1insert s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1insert: insert into d4_fk values (1);
@@ -56,10 +66,12 @@ starting permutation: s2snitch s1brr s1s s2detach s1insert s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
@@ -73,15 +85,19 @@ step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1fetchall: fetch all from f;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1c: commit;
@@ -92,10 +108,12 @@ step s1b: begin;
 step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1fetchall: fetch all from f;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s2detach: <... completed>
@@ -108,8 +126,10 @@ step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1svpt: savepoint f;
@@ -117,10 +137,12 @@ step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1rollback: rollback to f;
 step s1fetchall: fetch all from f;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1c: commit;
 
 starting permutation: s2snitch s1b s1declare s2detach s1svpt s1insert s1rollback s1fetchall s1c
@@ -133,10 +155,12 @@ step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1rollback: rollback to f;
 step s1fetchall: fetch all from f;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1c: commit;
 step s2detach: <... completed>
 
@@ -147,12 +171,16 @@ step s2detach: alter table d4_primary detach partition d4_primary1 concurrently;
 step s1declare: declare f cursor for select * from d4_primary;
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s1fetchall: fetch all from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1c: commit;
@@ -163,9 +191,11 @@ step s1b: begin;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently;
 step s1declare: declare f cursor for select * from d4_primary;
 step s1fetchall: fetch all from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1c: commit;
@@ -177,16 +207,20 @@ step s2detach: alter table d4_primary detach partition d4_primary1 concurrently;
 step s1declare: declare f cursor for select * from d4_primary;
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s1svpt: savepoint f;
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1rollback: rollback to f;
 step s1fetchall: fetch all from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1c: commit;
 
 starting permutation: s2snitch s1b s2detach s1declare s1svpt s1insert s1rollback s1fetchall s1c
@@ -199,9 +233,11 @@ step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1rollback: rollback to f;
 step s1fetchall: fetch all from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1c: commit;
 
 starting permutation: s2snitch s1brr s1declare2 s1fetchone s2detach s1cancel s1updcur s1c
@@ -209,14 +245,18 @@ step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1declare2: declare f cursor for select * from d4_fk where a = 2;
 step s1fetchone: fetch 1 from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1updcur: update d4_fk set a = 1 where current of f;
@@ -228,9 +268,11 @@ step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1declare2: declare f cursor for select * from d4_fk where a = 2;
 step s1fetchone: fetch 1 from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1updcur: update d4_fk set a = 1 where current of f;
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
@@ -242,9 +284,11 @@ step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1declare2: declare f cursor for select * from d4_fk where a = 2;
 step s1fetchone: fetch 1 from f;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1updcur: update d4_fk set a = 1 where current of f;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1c: commit;
@@ -255,10 +299,12 @@ starting permutation: s2snitch s1b s1s s2detach s3insert s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s3insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
@@ -269,10 +315,12 @@ starting permutation: s2snitch s1b s1s s2detach s3brr s3insert s3commit s1cancel
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s3brr: begin isolation level repeatable read;
 step s3insert: insert into d4_fk values (1);
@@ -280,8 +328,10 @@ ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk
 step s3commit: commit;
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1c: commit;
@@ -290,10 +340,12 @@ starting permutation: s2snitch s1b s1s s2detach s3brr s3insert s3commit s1c
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s3brr: begin isolation level repeatable read;
 step s3insert: insert into d4_fk values (1);
@@ -306,24 +358,30 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1noop s3vacfreeze s1
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1brr: begin isolation level repeatable read;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1noop: 
 step s3vacfreeze: vacuum freeze pg_catalog.pg_inherits;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1c: commit;
@@ -332,23 +390,29 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s3vacfreeze s1s
 step s2snitch: insert into d4_pid select pg_backend_pid();
 step s1b: begin;
 step s1s: select * from d4_primary;
-a              
+a
+-
+1
+2
+(2 rows)
 
-1              
-2              
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; 
 step s1cancel: select pg_cancel_backend(pid) from d4_pid;
 pg_cancel_backend
+-----------------
+t                
+(1 row)
 
-t              
 step s2detach: <... completed>
 ERROR:  canceling statement due to user request
 step s1noop: 
 step s3vacfreeze: vacuum freeze pg_catalog.pg_inherits;
 step s1s: select * from d4_primary;
-a              
+a
+-
+2
+(1 row)
 
-2              
 step s1insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s1c: commit;
index 8e6adb66bb1479b8d7db2fcf5f70b89acd3af577..97e1a6e77973e45556d68377da0a90521d01e858 100644 (file)
@@ -4,41 +4,53 @@ starting permutation: noseq chkiso prepi preps begin explaini explains select2 d
 step noseq: SET enable_seqscan = false;
 step chkiso: SELECT (setting in ('read committed','read uncommitted')) AS is_read_committed FROM pg_settings WHERE name = 'default_transaction_isolation';
 is_read_committed
+-----------------
+t                
+(1 row)
 
-t              
 step prepi: PREPARE getrow_idx AS SELECT * FROM test_dc WHERE data=34 ORDER BY id,data;
 step preps: PREPARE getrow_seq AS SELECT * FROM test_dc WHERE data::text=34::text ORDER BY id,data;
 step begin: BEGIN;
 step explaini: EXPLAIN (COSTS OFF) EXECUTE getrow_idx;
-QUERY PLAN     
-
-Sort           
-  Sort Key: id 
+QUERY PLAN                                    
+----------------------------------------------
+Sort                                          
+  Sort Key: id                                
   ->  Index Scan using test_dc_data on test_dc
-        Index Cond: (data = 34)
-step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq;
-QUERY PLAN     
+        Index Cond: (data = 34)               
+(4 rows)
 
-Sort           
-  Sort Key: id, data
+step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq;
+QUERY PLAN                                    
+----------------------------------------------
+Sort                                          
+  Sort Key: id, data                          
   ->  Index Scan using test_dc_pkey on test_dc
-        Filter: ((data)::text = '34'::text)
+        Filter: ((data)::text = '34'::text)   
+(4 rows)
+
 step select2: SELECT * FROM test_dc WHERE data=34 ORDER BY id,data;
-id             data           
+id|data
+--+----
+34|  34
+(1 row)
 
-34             34             
 step drop: DROP INDEX CONCURRENTLY test_dc_data; 
 step insert2: INSERT INTO test_dc(data) SELECT * FROM generate_series(1, 100);
 step end2: COMMIT;
 step selecti: EXECUTE getrow_idx;
-id             data           
+ id|data
+---+----
+ 34|  34
+134|  34
+(2 rows)
 
-34             34             
-134            34             
 step selects: EXECUTE getrow_seq;
-id             data           
+ id|data
+---+----
+ 34|  34
+134|  34
+(2 rows)
 
-34             34             
-134            34             
 step end: COMMIT;
 step drop: <... completed>
index 87d07955d041c7536c6f6e71e1da9665eeb975fd..04612d3cacca86ca63218bddb4b6443817eb4626 100644 (file)
@@ -4,39 +4,51 @@ starting permutation: noseq chkiso prepi preps begin explaini explains select2 d
 step noseq: SET enable_seqscan = false;
 step chkiso: SELECT (setting in ('read committed','read uncommitted')) AS is_read_committed FROM pg_settings WHERE name = 'default_transaction_isolation';
 is_read_committed
+-----------------
+f                
+(1 row)
 
-f              
 step prepi: PREPARE getrow_idx AS SELECT * FROM test_dc WHERE data=34 ORDER BY id,data;
 step preps: PREPARE getrow_seq AS SELECT * FROM test_dc WHERE data::text=34::text ORDER BY id,data;
 step begin: BEGIN;
 step explaini: EXPLAIN (COSTS OFF) EXECUTE getrow_idx;
-QUERY PLAN     
-
-Sort           
-  Sort Key: id 
+QUERY PLAN                                    
+----------------------------------------------
+Sort                                          
+  Sort Key: id                                
   ->  Index Scan using test_dc_data on test_dc
-        Index Cond: (data = 34)
-step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq;
-QUERY PLAN     
+        Index Cond: (data = 34)               
+(4 rows)
 
-Sort           
-  Sort Key: id, data
+step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq;
+QUERY PLAN                                    
+----------------------------------------------
+Sort                                          
+  Sort Key: id, data                          
   ->  Index Scan using test_dc_pkey on test_dc
-        Filter: ((data)::text = '34'::text)
+        Filter: ((data)::text = '34'::text)   
+(4 rows)
+
 step select2: SELECT * FROM test_dc WHERE data=34 ORDER BY id,data;
-id             data           
+id|data
+--+----
+34|  34
+(1 row)
 
-34             34             
 step drop: DROP INDEX CONCURRENTLY test_dc_data; 
 step insert2: INSERT INTO test_dc(data) SELECT * FROM generate_series(1, 100);
 step end2: COMMIT;
 step selecti: EXECUTE getrow_idx;
-id             data           
+id|data
+--+----
+34|  34
+(1 row)
 
-34             34             
 step selects: EXECUTE getrow_seq;
-id             data           
+id|data
+--+----
+34|  34
+(1 row)
 
-34             34             
 step end: COMMIT;
 step drop: <... completed>
index 833834afaaf0a27045fb91263bc27f554bbea715..f6714c2e599a1bf7d57847cc70bd7a5f59ffc07f 100644 (file)
@@ -10,21 +10,29 @@ starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -37,9 +45,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  upd: text key-a = text key-a: t
@@ -53,35 +63,47 @@ step s2_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+(1 row)
 
-key-a          val-a-s1-ups1-ups2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+key-b|val-b-s1          
+(2 rows)
 
-key-a          val-a-s1-ups1-ups2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_upd_a_data s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -94,9 +116,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
@@ -110,15 +134,19 @@ step s2_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_c s2_del_a s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -126,21 +154,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -153,9 +189,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  upd: text key-a = text key-a: t
@@ -169,14 +207,18 @@ step s2_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_del_a s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -184,21 +226,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -211,9 +261,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
@@ -227,34 +279,46 @@ step s2_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -267,9 +331,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -286,35 +352,47 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+(1 row)
 
-key-a          val-a-s1-ups1-ups2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+key-b|val-b-s1          
+(2 rows)
 
-key-a          val-a-s1-ups1-ups2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -327,9 +405,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -344,15 +424,19 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -360,21 +444,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -387,9 +479,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -406,15 +500,19 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+(1 row)
 
-key-a          val-a-s1-ups1-ups2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+key-b|val-b-s1          
+(2 rows)
 
-key-a          val-a-s1-ups1-ups2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -422,21 +520,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -449,9 +555,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -466,15 +574,19 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -482,21 +594,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -509,9 +629,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -524,13 +646,17 @@ step s2_upd_a_data:
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 step s2_upd_a_data: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -538,21 +664,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -565,9 +699,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -582,15 +718,19 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -598,19 +738,25 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH
 step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s2)
 step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; 
 step s1_c: COMMIT;
@@ -618,9 +764,11 @@ step s2_ins_a: <... completed>
 ERROR:  duplicate key value violates unique constraint "trigtest_pkey"
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_r s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -628,32 +776,42 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH
 step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s2)
 step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; 
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s2)
 step s2_ins_a: <... completed>
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s2
+(1 row)
 
-key-a          val-a-s2       
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s2
+(1 row)
 
-key-a          val-a-s2       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -665,23 +823,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -694,9 +860,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -713,15 +881,19 @@ s2: NOTICE:  upk: text val-a-s1-ups1 <> text mismatch: t
 s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+(1 row)
 
-key-a          val-a-s1-ups1-upserts2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+key-b|val-b-s1              
+(2 rows)
 
-key-a          val-a-s1-ups1-upserts2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -733,23 +905,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -762,9 +942,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -781,15 +963,19 @@ s2: NOTICE:  upk: text val-a-s1-ups1 <> text mismatch: t
 s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+(1 row)
 
-key-a          val-a-s1-ups1-upserts2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+key-b|val-b-s1              
+(2 rows)
 
-key-a          val-a-s1-ups1-upserts2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -799,19 +985,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -828,14 +1020,18 @@ s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2)
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data             
+-----+-----------------
+key-a|val-a-s1-upserts2
+(1 row)
 
-key-a          val-a-s1-upserts2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data             
+-----+-----------------
+key-a|val-a-s1-upserts2
+(1 row)
 
-key-a          val-a-s1-upserts2
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -845,19 +1041,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -871,14 +1073,18 @@ step s2_upsert_a_data:
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data       
+-----+-----------
+key-a|val-a-upss2
+(1 row)
 
-key-a          val-a-upss2    
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data       
+-----+-----------
+key-a|val-a-upss2
+(1 row)
 
-key-a          val-a-upss2    
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -888,19 +1094,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -912,9 +1124,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -931,14 +1145,18 @@ s2: NOTICE:  upk: text val-a-s1-ups1 <> text mismatch: t
 s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+(1 row)
 
-key-a          val-a-s1-ups1-upserts2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data                  
+-----+----------------------
+key-a|val-a-s1-ups1-upserts2
+(1 row)
 
-key-a          val-a-s1-ups1-upserts2
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -948,19 +1166,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -972,9 +1196,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: 
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -988,33 +1214,45 @@ step s2_upsert_a_data:
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-upss2)
 step s2_upsert_a_data: <... completed>
-key            data           
+key  |data       
+-----+-----------
+key-a|val-a-upss2
+(1 row)
 
-key-a          val-a-upss2    
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data       
+-----+-----------
+key-a|val-a-upss2
+(1 row)
 
-key-a          val-a-upss2    
 
 starting permutation: s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1026,9 +1264,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1044,34 +1284,46 @@ s2: NOTICE:  upk: text val-a-s1-ups1 <> text mismatch: t
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+(1 row)
 
-key-a          val-a-s1-ups1-ups2
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data              
+-----+------------------
+key-a|val-a-s1-ups1-ups2
+key-b|val-b-s1          
+(2 rows)
 
-key-a          val-a-s1-ups1-ups2
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1083,9 +1335,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1099,35 +1353,47 @@ step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_del_a s1_c s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1139,9 +1405,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1157,34 +1425,46 @@ s2: NOTICE:  upk: text val-a-s1-ups1 <> text mismatch: t
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1) new: 
 step s2_del_a: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_del_a s1_r s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1196,9 +1476,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1212,34 +1494,46 @@ step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
 step s2_del_a: <... completed>
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1251,9 +1545,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1266,33 +1562,45 @@ step s2_upd_a_data:
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 step s2_upd_a_data: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1304,9 +1612,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1320,34 +1630,46 @@ step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1359,9 +1681,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1374,32 +1698,44 @@ step s2_del_a:
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 step s2_del_a: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  upd: text key-b = text key-a: f
@@ -1411,9 +1747,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1427,34 +1765,46 @@ step s1_r: ROLLBACK;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
 step s2_del_a: <... completed>
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upk: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1)
@@ -1467,9 +1817,11 @@ step s1_upd_a_tob:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1483,34 +1835,46 @@ step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  upd: text key-c = text key-a: f
 step s2_upd_a_data: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+key-c|val-c-s1      
+(2 rows)
 
-key-b          val-a-s1-tobs1 
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upk: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1)
@@ -1523,9 +1887,11 @@ step s1_upd_a_tob:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1540,35 +1906,47 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-c = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-c|val-c-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_b_data s1_c s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upk: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1)
@@ -1581,9 +1959,11 @@ step s1_upd_a_tob:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 s2: NOTICE:  upd: text key-a = text key-b: f
 s2: NOTICE:  upd: text key-c = text key-b: f
 step s2_upd_b_data: 
@@ -1593,35 +1973,47 @@ step s2_upd_b_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s1_c: COMMIT;
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+key-c|val-c-s1      
+(2 rows)
 
-key-b          val-a-s1-tobs1 
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_all_data s1_c s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upk: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1)
@@ -1634,9 +2026,11 @@ step s1_upd_a_tob:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 s2: NOTICE:  upd: text key-a <> text mismatch: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_all_data: 
@@ -1656,16 +2050,20 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-b,val-a-s1-tobs1) new: (key-b,val-a-s1-tobs1-ups2)
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-c,val-c-s1) new: (key-c,val-c-s1-ups2)
 step s2_upd_all_data: <... completed>
-key            data           
+key  |data               
+-----+-------------------
+key-b|val-a-s1-tobs1-ups2
+key-c|val-c-s1-ups2      
+(2 rows)
 
-key-b          val-a-s1-tobs1-ups2
-key-c          val-c-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data               
+-----+-------------------
+key-b|val-a-s1-tobs1-ups2
+key-c|val-c-s1-ups2      
+(2 rows)
 
-key-b          val-a-s1-tobs1-ups2
-key-c          val-c-s1-ups2  
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -1673,21 +2071,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -1700,9 +2106,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1715,13 +2123,17 @@ step s2_upd_a_data:
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-c = text key-a: f
 step s2_upd_a_data: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -1729,21 +2141,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -1756,9 +2176,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -1773,35 +2195,47 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-c = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-c|val-c-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -1814,9 +2248,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1829,33 +2265,45 @@ step s2_del_a:
 step s1_c: COMMIT;
 s2: NOTICE:  upd: text key-c = text key-a: f
 step s2_del_a: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -1868,9 +2316,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_del_a: 
@@ -1885,14 +2335,18 @@ s2: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (k
 s2: NOTICE:  upd: text key-c = text key-a: f
 s2: NOTICE:  trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
 step s2_del_a: <... completed>
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-c|val-c-s1
+(1 row)
 
-key-c          val-c-s1       
 
 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_b s1_b_rc s2_b_rc s1_ins_a s1_upd_b_data s2_upd_b_data s1_del_b s1_upd_a_tob s1_c s2_c s0_rep
 step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -1904,23 +2358,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-b,val-b-s1)
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old:  new: (key-a,val-a-s1)
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s1: NOTICE:  upd: text key-b = text key-b: t
 s1: NOTICE:  upk: text val-b-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-b,val-b-s1) new: (key-b,val-b-s1-ups1)
@@ -1933,9 +2395,11 @@ step s1_upd_b_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-b|val-b-s1-ups1
+(1 row)
 
-key-b          val-b-s1-ups1  
 s2: NOTICE:  upd: text key-b = text key-b: t
 s2: NOTICE:  upk: text val-b-s1 <> text mismatch: t
 step s2_upd_b_data: 
@@ -1957,9 +2421,11 @@ step s1_del_b:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data         
+-----+-------------
+key-b|val-b-s1-ups1
+(1 row)
 
-key-b          val-b-s1-ups1  
 s1: NOTICE:  upk: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1)
@@ -1971,38 +2437,52 @@ step s1_upd_a_tob:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 step s1_c: COMMIT;
 step s2_upd_b_data: <... completed>
-key            data           
+key|data
+---+----
+(0 rows)
 
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data          
+-----+--------------
+key-b|val-a-s1-tobs1
+(1 row)
 
-key-b          val-a-s1-tobs1 
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -2015,9 +2495,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -2032,30 +2514,40 @@ step s2_upd_a_data: <... completed>
 ERROR:  could not serialize access due to concurrent update
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups1  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1)
@@ -2068,9 +2560,11 @@ step s1_upd_a_data:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *;
 
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups1
+(1 row)
 
-key-a          val-a-s1-ups1  
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -2085,15 +2579,19 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_c s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -2101,21 +2599,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -2128,9 +2634,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -2145,9 +2653,11 @@ step s2_upd_a_data: <... completed>
 ERROR:  could not serialize access due to concurrent delete
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 
 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_r s2_c s0_rep
 step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
@@ -2155,21 +2665,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH
 step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report();
 step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *;
-key            data           
+key  |data    
+-----+--------
+key-b|val-b-s1
+(1 row)
 
-key-b          val-b-s1       
 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 s1: NOTICE:  upd: text key-a = text key-a: t
 s1: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 s1: NOTICE:  trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: 
@@ -2182,9 +2700,11 @@ step s1_del_a:
         noisy_oper('upk', data, '<>', 'mismatch')
     RETURNING *
 
-key            data           
+key  |data    
+-----+--------
+key-a|val-a-s1
+(1 row)
 
-key-a          val-a-s1       
 s2: NOTICE:  upd: text key-a = text key-a: t
 s2: NOTICE:  upk: text val-a-s1 <> text mismatch: t
 step s2_upd_a_data: 
@@ -2199,12 +2719,16 @@ s2: NOTICE:  trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k
 s2: NOTICE:  upd: text key-b = text key-a: f
 s2: NOTICE:  trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2)
 step s2_upd_a_data: <... completed>
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+(1 row)
 
-key-a          val-a-s1-ups2  
 step s2_c: COMMIT;
 step s0_rep: SELECT * FROM trigtest ORDER BY key, data
-key            data           
+key  |data         
+-----+-------------
+key-a|val-a-s1-ups2
+key-b|val-b-s1     
+(2 rows)
 
-key-a          val-a-s1-ups2  
-key-b          val-b-s1       
index df8fa8b0a54b8697354e9de7b2740c41e239cbe1..d9063500d34e8586dda0cec4f0c0bb21400cd903 100644 (file)
@@ -2,261 +2,353 @@ Parsed test spec with 3 sessions
 
 starting permutation: wx1 wx2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step c1: COMMIT;
 step wx2: <... completed>
-balance        
+balance
+-------
+    850
+(1 row)
 
-850            
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    850
+savings  |    600
+(2 rows)
 
-checking       850            
-savings        600            
 
 starting permutation: wy1 wy2 c1 c2 read
 step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1100
+(1 row)
 
-1100           
 step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000  RETURNING balance; 
 step c1: COMMIT;
 step wy2: <... completed>
-balance        
+balance
+-------
+(0 rows)
 
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1100
+savings  |    600
+(2 rows)
 
-checking       1100           
-savings        600            
 
 starting permutation: wx1 wx2 r1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step r1: ROLLBACK;
 step wx2: <... completed>
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1050
+savings  |    600
+(2 rows)
 
-checking       1050           
-savings        600            
 
 starting permutation: wy1 wy2 r1 c2 read
 step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1100
+(1 row)
 
-1100           
 step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000  RETURNING balance; 
 step r1: ROLLBACK;
 step wy2: <... completed>
-balance        
+balance
+-------
+   1600
+(1 row)
 
-1600           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1600
+savings  |    600
+(2 rows)
 
-checking       1600           
-savings        600            
 
 starting permutation: wx1 d1 wx2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step c1: COMMIT;
 step wx2: <... completed>
-balance        
+balance
+-------
+(0 rows)
 
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: wx2 d1 c2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step c2: COMMIT;
 step d1: <... completed>
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: wx2 wx2 d1 c2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1500
+(1 row)
 
-1500           
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step c2: COMMIT;
 step d1: <... completed>
-balance        
+balance
+-------
+(0 rows)
 
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1500
+savings  |    600
+(2 rows)
 
-checking       1500           
-savings        600            
 
 starting permutation: wx2 d2 d1 c2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step d2: DELETE FROM accounts WHERE accountid = 'checking';
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step c2: COMMIT;
 step d1: <... completed>
-balance        
+balance
+-------
+(0 rows)
 
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: wx1 d1 wx2 r1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step r1: ROLLBACK;
 step wx2: <... completed>
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1050
+savings  |    600
+(2 rows)
 
-checking       1050           
-savings        600            
 
 starting permutation: wx2 d1 r2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step r2: ROLLBACK;
 step d1: <... completed>
-balance        
+balance
+-------
+    600
+(1 row)
 
-600            
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: wx2 wx2 d1 r2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1500
+(1 row)
 
-1500           
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step r2: ROLLBACK;
 step d1: <... completed>
-balance        
+balance
+-------
+    600
+(1 row)
 
-600            
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: wx2 d2 d1 r2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step d2: DELETE FROM accounts WHERE accountid = 'checking';
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; 
 step r2: ROLLBACK;
 step d1: <... completed>
-balance        
+balance
+-------
+    600
+(1 row)
 
-600            
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: d1 wx2 c1 c2 read
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
-balance        
+balance
+-------
+    600
+(1 row)
 
-600            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step c1: COMMIT;
 step wx2: <... completed>
-balance        
+balance
+-------
+(0 rows)
 
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+savings  |    600
+(1 row)
 
-savings        600            
 
 starting permutation: d1 wx2 r1 c2 read
 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
-balance        
+balance
+-------
+    600
+(1 row)
 
-600            
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; 
 step r1: ROLLBACK;
 step wx2: <... completed>
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1050
+savings  |    600
+(2 rows)
 
-checking       1050           
-savings        600            
 
 starting permutation: wnested2 c1 c2 read
 s2: NOTICE:  upid: text checking = text checking: t
@@ -279,20 +371,26 @@ step wnested2:
 step c1: COMMIT;
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   -600
+savings  |    600
+(2 rows)
 
-checking       -600           
-savings        600            
 
 starting permutation: wx1 wxext1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
 s2: NOTICE:  lock_id: text checking = text checking: t
@@ -322,24 +420,32 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   -800
+savings  |    600
+(2 rows)
 
-checking       -800           
-savings        600            
 
 starting permutation: wx1 wx1 wxext1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    200
+(1 row)
 
-200            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
 s2: NOTICE:  lock_id: text checking = text checking: t
@@ -365,28 +471,38 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    200
+savings  |    600
+(2 rows)
 
-checking       200            
-savings        600            
 
 starting permutation: wx1 wx1 wxext1 wxext1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    200
+(1 row)
 
-200            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    200
+(1 row)
 
-200            
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
 s2: NOTICE:  lock_id: text checking = text checking: t
@@ -411,24 +527,32 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    200
+savings  |    600
+(2 rows)
 
-checking       200            
-savings        600            
 
 starting permutation: wx1 wxext1 wxext1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    200
+(1 row)
 
-200            
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
 s2: NOTICE:  lock_id: text checking = text checking: t
@@ -453,16 +577,20 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    400
+savings  |    600
+(2 rows)
 
-checking       400            
-savings        600            
 
 starting permutation: wx1 tocds1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step tocds1: UPDATE accounts SET accountid = 'cds' WHERE accountid = 'checking';
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
@@ -486,16 +614,20 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+cds      |    400
+savings  |    600
+(2 rows)
 
-cds            400            
-savings        600            
 
 starting permutation: wx1 tocdsext1 wnested2 c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step tocdsext1: UPDATE accounts_ext SET accountid = 'cds' WHERE accountid = 'checking';
 s2: NOTICE:  upid: text checking = text checking: t
 s2: NOTICE:  up: numeric 600 > numeric 200.0: t
@@ -520,77 +652,99 @@ s2: NOTICE:  upid: text savings = text checking: f
 step wnested2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    400
+savings  |    600
+(2 rows)
 
-checking       400            
-savings        600            
 
 starting permutation: wx1 updwcte c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step updwcte: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *) UPDATE accounts a SET balance = doup.balance + 100 FROM doup RETURNING *; 
 step c1: COMMIT;
 step updwcte: <... completed>
-accountid      balance        accountid      balance        
+accountid|balance|accountid|balance
+---------+-------+---------+-------
+savings  |   1600|checking |   1500
+(1 row)
 
-savings        1600           checking       1500           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1500
+savings  |   1600
+(2 rows)
 
-checking       1500           
-savings        1600           
 
 starting permutation: wx1 updwctefail c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step updwctefail: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *, update_checking(999)) UPDATE accounts a SET balance = doup.balance + 100 FROM doup RETURNING *; 
 step c1: COMMIT;
 step updwctefail: <... completed>
 ERROR:  tuple to be updated was already modified by an operation triggered by the current command
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    400
+savings  |    600
+(2 rows)
 
-checking       400            
-savings        600            
 
 starting permutation: wx1 delwcte c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step delwcte: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *) DELETE FROM accounts a USING doup RETURNING *; 
 step c1: COMMIT;
 step delwcte: <... completed>
-accountid      balance        accountid      balance        
+accountid|balance|accountid|balance
+---------+-------+---------+-------
+savings  |    600|checking |   1500
+(1 row)
 
-savings        600            checking       1500           
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1500
+(1 row)
 
-checking       1500           
 
 starting permutation: wx1 delwctefail c1 c2 read
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+    400
+(1 row)
 
-400            
 step delwctefail: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *, update_checking(999)) DELETE FROM accounts a USING doup RETURNING *; 
 step c1: COMMIT;
 step delwctefail: <... completed>
 ERROR:  tuple to be deleted was already modified by an operation triggered by the current command
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    400
+savings  |    600
+(2 rows)
 
-checking       400            
-savings        600            
 
 starting permutation: upsert1 upsert2 c1 c2 read
 step upsert1: 
@@ -613,32 +767,38 @@ step c1: COMMIT;
 step upsert2: <... completed>
 step c2: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |    600
+savings  |   2334
+(2 rows)
 
-checking       600            
-savings        2334           
 
 starting permutation: readp1 writep1 readp2 c1 c2
 step readp1: SELECT tableoid::regclass, ctid, * FROM p WHERE b IN (0, 1) AND c = 0 FOR UPDATE;
-tableoid       ctid           a              b              c              
-
-c1             (0,1)          0              0              0              
-c1             (0,4)          0              1              0              
-c2             (0,1)          1              0              0              
-c2             (0,4)          1              1              0              
-c3             (0,1)          2              0              0              
-c3             (0,4)          2              1              0              
+tableoid|ctid |a|b|c
+--------+-----+-+-+-
+c1      |(0,1)|0|0|0
+c1      |(0,4)|0|1|0
+c2      |(0,1)|1|0|0
+c2      |(0,4)|1|1|0
+c3      |(0,1)|2|0|0
+c3      |(0,4)|2|1|0
+(6 rows)
+
 step writep1: UPDATE p SET b = -1 WHERE a = 1 AND b = 1 AND c = 0;
 step readp2: SELECT tableoid::regclass, ctid, * FROM p WHERE b IN (0, 1) AND c = 0 FOR UPDATE; 
 step c1: COMMIT;
 step readp2: <... completed>
-tableoid       ctid           a              b              c              
+tableoid|ctid |a|b|c
+--------+-----+-+-+-
+c1      |(0,1)|0|0|0
+c1      |(0,4)|0|1|0
+c2      |(0,1)|1|0|0
+c3      |(0,1)|2|0|0
+c3      |(0,4)|2|1|0
+(5 rows)
 
-c1             (0,1)          0              0              0              
-c1             (0,4)          0              1              0              
-c2             (0,1)          1              0              0              
-c3             (0,1)          2              0              0              
-c3             (0,4)          2              1              0              
 step c2: COMMIT;
 
 starting permutation: writep2 returningp1 c1 c2
@@ -649,28 +809,30 @@ step returningp1:
  
 step c1: COMMIT;
 step returningp1: <... completed>
-a              b              c              
-
-1              0              0              
-1              0              1              
-1              0              2              
-1              -1             0              
-1              1              1              
-1              1              2              
-1              -2             0              
-1              2              1              
-1              2              2              
-1              -3             0              
-2              0              0              
-2              0              1              
-2              0              2              
-2              1              0              
-2              1              1              
-2              1              2              
-2              2              0              
-2              2              1              
-2              2              2              
-2              3              0              
+a| b|c
+-+--+-
+1| 0|0
+1| 0|1
+1| 0|2
+1|-1|0
+1| 1|1
+1| 1|2
+1|-2|0
+1| 2|1
+1| 2|2
+1|-3|0
+2| 0|0
+2| 0|1
+2| 0|2
+2| 1|0
+2| 1|1
+2| 1|2
+2| 2|0
+2| 2|1
+2| 2|2
+2| 3|0
+(20 rows)
+
 step c2: COMMIT;
 
 starting permutation: writep3a writep3b c1 c2
@@ -682,9 +844,11 @@ step c2: COMMIT;
 
 starting permutation: wx2 partiallock c2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step partiallock: 
    SELECT * FROM accounts a1, accounts a2
      WHERE a1.accountid = a2.accountid
@@ -692,22 +856,28 @@ step partiallock:
  
 step c2: COMMIT;
 step partiallock: <... completed>
-accountid      balance        accountid      balance        
+accountid|balance|accountid|balance
+---------+-------+---------+-------
+checking |   1050|checking |    600
+savings  |    600|savings  |    600
+(2 rows)
 
-checking       1050           checking       600            
-savings        600            savings        600            
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1050
+savings  |    600
+(2 rows)
 
-checking       1050           
-savings        600            
 
 starting permutation: wx2 lockwithvalues c2 c1 read
 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
-balance        
+balance
+-------
+   1050
+(1 row)
 
-1050           
 step lockwithvalues: 
    -- Reference rowmark column that differs in type from targetlist at some attno.
    -- See CAHU7rYZo_C4ULsAx_LAj8az9zqgrD8WDd4hTegDTMM1LMqrBsg@mail.gmail.com
@@ -717,16 +887,20 @@ step lockwithvalues:
  
 step c2: COMMIT;
 step lockwithvalues: <... completed>
-accountid      balance        id             
+accountid|balance|id      
+---------+-------+--------
+checking |   1050|checking
+savings  |    600|savings 
+(2 rows)
 
-checking       1050           checking       
-savings        600            savings        
 step c1: COMMIT;
 step read: SELECT * FROM accounts ORDER BY accountid;
-accountid      balance        
+accountid|balance
+---------+-------
+checking |   1050
+savings  |    600
+(2 rows)
 
-checking       1050           
-savings        600            
 
 starting permutation: wx2_ext partiallock_ext c2 c1 read_ext
 step wx2_ext: UPDATE accounts_ext SET balance = balance + 450;
@@ -737,16 +911,20 @@ step partiallock_ext:
  
 step c2: COMMIT;
 step partiallock_ext: <... completed>
-accountid      balance        other          newcol         newcol2        accountid      balance        other          newcol         newcol2        
+accountid|balance|other|newcol|newcol2|accountid|balance|other|newcol|newcol2
+---------+-------+-----+------+-------+---------+-------+-----+------+-------
+checking |   1050|other|    42|       |checking |    600|other|    42|       
+savings  |   1150|     |    42|       |savings  |    700|     |    42|       
+(2 rows)
 
-checking       1050           other          42                            checking       600            other          42                            
-savings        1150                          42                            savings        700                           42                            
 step c1: COMMIT;
 step read_ext: SELECT * FROM accounts_ext ORDER BY accountid;
-accountid      balance        other          newcol         newcol2        
+accountid|balance|other|newcol|newcol2
+---------+-------+-----+------+-------
+checking |   1050|other|    42|       
+savings  |   1150|     |    42|       
+(2 rows)
 
-checking       1050           other          42                            
-savings        1150                          42                            
 
 starting permutation: updateforss readforss c1 c2
 step updateforss: 
@@ -762,9 +940,11 @@ step readforss:
  
 step c1: COMMIT;
 step readforss: <... completed>
-ta_id          ta_value       tb_row         
+ta_id|ta_value      |tb_row         
+-----+--------------+---------------
+    1|newTableAValue|(1,tableBValue)
+(1 row)
 
-1              newTableAValue (1,tableBValue)
 step c2: COMMIT;
 
 starting permutation: updateforcip updateforcip2 c1 c2 read_a
@@ -778,9 +958,11 @@ step c1: COMMIT;
 step updateforcip2: <... completed>
 step c2: COMMIT;
 step read_a: SELECT * FROM table_a ORDER BY id;
-id             value          
+id|value   
+--+--------
+ 1|newValue
+(1 row)
 
-1              newValue       
 
 starting permutation: updateforcip updateforcip3 c1 c2 read_a
 step updateforcip: 
@@ -794,9 +976,11 @@ step c1: COMMIT;
 step updateforcip3: <... completed>
 step c2: COMMIT;
 step read_a: SELECT * FROM table_a ORDER BY id;
-id             value          
+id|value   
+--+--------
+ 1|newValue
+(1 row)
 
-1              newValue       
 
 starting permutation: wrtwcte readwcte c1 c2
 step wrtwcte: UPDATE table_a SET value = 'tableAValue2' WHERE id = 1;
@@ -815,9 +999,11 @@ step readwcte:
 step c1: COMMIT;
 step c2: COMMIT;
 step readwcte: <... completed>
-id             value          
+id|value       
+--+------------
+ 1|tableAValue2
+(1 row)
 
-1              tableAValue2   
 
 starting permutation: wrjt selectjoinforupdate c2 c1
 step wrjt: UPDATE jointest SET data = 42 WHERE id = 7;
@@ -831,25 +1017,29 @@ step selectjoinforupdate:
  
 step c2: COMMIT;
 step selectjoinforupdate: <... completed>
-QUERY PLAN     
-
-LockRows       
-  ->  Merge Join
-        Merge Cond: (a.id = b.id)
+QUERY PLAN                                                
+----------------------------------------------------------
+LockRows                                                  
+  ->  Merge Join                                          
+        Merge Cond: (a.id = b.id)                         
         ->  Index Scan using jointest_id_idx on jointest a
         ->  Index Scan using jointest_id_idx on jointest b
-id             data           id             data           
+(5 rows)
+
+id|data|id|data
+--+----+--+----
+ 1|   0| 1|   0
+ 2|   0| 2|   0
+ 3|   0| 3|   0
+ 4|   0| 4|   0
+ 5|   0| 5|   0
+ 6|   0| 6|   0
+ 7|  42| 7|  42
+ 8|   0| 8|   0
+ 9|   0| 9|   0
+10|   0|10|   0
+(10 rows)
 
-1              0              1              0              
-2              0              2              0              
-3              0              3              0              
-4              0              4              0              
-5              0              5              0              
-6              0              6              0              
-7              42             7              42             
-8              0              8              0              
-9              0              9              0              
-10             0              10             0              
 step c1: COMMIT;
 
 starting permutation: wrjt selectresultforupdate c2 c1
@@ -868,27 +1058,33 @@ step selectresultforupdate:
  
 step c2: COMMIT;
 step selectresultforupdate: <... completed>
-x              y              id             value          id             data           
-
-1              7              1              tableAValue    7              0              
-QUERY PLAN     
-
-LockRows       
-  Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid
-  ->  Nested Loop Left Join
+x|y|id|value      |id|data
+-+-+--+-----------+--+----
+1|7| 1|tableAValue| 7|   0
+(1 row)
+
+QUERY PLAN                                                          
+--------------------------------------------------------------------
+LockRows                                                            
+  Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid      
+  ->  Nested Loop Left Join                                         
         Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid
-        ->  Nested Loop
-              Output: jt.id, jt.data, jt.ctid
-              ->  Seq Scan on public.jointest jt
-                    Output: jt.id, jt.data, jt.ctid
-                    Filter: (jt.id = 7)
-              ->  Result
-        ->  Seq Scan on public.table_a a
-              Output: a.id, a.value, a.ctid
-              Filter: (a.id = 1)
-x              y              id             value          id             data           
+        ->  Nested Loop                                             
+              Output: jt.id, jt.data, jt.ctid                       
+              ->  Seq Scan on public.jointest jt                    
+                    Output: jt.id, jt.data, jt.ctid                 
+                    Filter: (jt.id = 7)                             
+              ->  Result                                            
+        ->  Seq Scan on public.table_a a                            
+              Output: a.id, a.value, a.ctid                         
+              Filter: (a.id = 1)                                    
+(13 rows)
+
+x|y|id|value      |id|data
+-+-+--+-----------+--+----
+1|7| 1|tableAValue| 7|  42
+(1 row)
 
-1              7              1              tableAValue    7              42             
 step c1: COMMIT;
 
 starting permutation: wrtwcte multireadwcte c1 c2
@@ -902,9 +1098,11 @@ step multireadwcte:
 step c1: COMMIT;
 step c2: COMMIT;
 step multireadwcte: <... completed>
-subid          id             
+subid|id
+-----+--
+    1| 1
+(1 row)
 
-1              1              
 
 starting permutation: simplepartupdate complexpartupdate c1 c2
 step simplepartupdate: 
@@ -922,9 +1120,11 @@ starting permutation: simplepartupdate_route1to2 complexpartupdate_route_err1 c1
 step simplepartupdate_route1to2: 
    update parttbl set a = 2 where c = 1 returning *;
 
-a              b              c              
+a|b|c
+-+-+-
+2|1|1
+(1 row)
 
-2              1              1              
 step complexpartupdate_route_err1: 
    with u as (update another_parttbl set a = 1 returning another_parttbl.*)
    update parttbl p set a = u.a from u where p.a = u.a and p.c = 1 returning p.*;
@@ -938,34 +1138,42 @@ starting permutation: simplepartupdate_noroute complexpartupdate_route c1 c2
 step simplepartupdate_noroute: 
    update parttbl set b = 2 where c = 1 returning *;
 
-a              b              c              
+a|b|c
+-+-+-
+1|2|1
+(1 row)
 
-1              2              1              
 step complexpartupdate_route: 
    with u as (update another_parttbl set a = 1 returning another_parttbl.*)
    update parttbl p set a = p.b from u where p.a = u.a and p.c = 1 returning p.*;
  
 step c1: COMMIT;
 step complexpartupdate_route: <... completed>
-a              b              c              
+a|b|c
+-+-+-
+2|2|1
+(1 row)
 
-2              2              1              
 step c2: COMMIT;
 
 starting permutation: simplepartupdate_noroute complexpartupdate_doesnt_route c1 c2
 step simplepartupdate_noroute: 
    update parttbl set b = 2 where c = 1 returning *;
 
-a              b              c              
+a|b|c
+-+-+-
+1|2|1
+(1 row)
 
-1              2              1              
 step complexpartupdate_doesnt_route: 
    with u as (update another_parttbl set a = 1 returning another_parttbl.*)
    update parttbl p set a = 3 - p.b from u where p.a = u.a and p.c = 1 returning p.*;
  
 step c1: COMMIT;
 step complexpartupdate_doesnt_route: <... completed>
-a              b              c              
+a|b|c
+-+-+-
+1|2|1
+(1 row)
 
-1              2              1              
 step c2: COMMIT;
index 278bec4fdfc3b40ae111cc4e6a66378489984ad1..8c6c714d0597f60c190405dfb07a1a4729b5bf0b 100644 (file)
@@ -14,9 +14,11 @@ starting permutation: s1b s1d s2bs s2i s1c s2c
 step s1b: begin;
 step s1d: delete from ppk where a = 1;
 step s2bs: begin isolation level serializable; select 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2i: insert into pfk values (1); 
 step s1c: commit;
 step s2i: <... completed>
@@ -36,9 +38,11 @@ step s2c: commit;
 starting permutation: s1b s2bs s1d s2i s1c s2c
 step s1b: begin;
 step s2bs: begin isolation level serializable; select 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s1d: delete from ppk where a = 1;
 step s2i: insert into pfk values (1); 
 step s1c: commit;
@@ -59,9 +63,11 @@ step s1c: commit;
 starting permutation: s1b s2bs s2i s1d s2c s1c
 step s1b: begin;
 step s2bs: begin isolation level serializable; select 1;
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step s2i: insert into pfk values (1);
 step s1d: delete from ppk where a = 1; 
 step s2c: commit;
index 8e638f132f955fba3813d9956bd59ce211e37fc7..88678bd04539c1b90c67c95e461c3e04f291ab33 100644 (file)
@@ -6,13 +6,17 @@ step s2_begin: BEGIN;
 step s3_begin: BEGIN;
 step s1_update: UPDATE tab_freeze SET x = x + 1 WHERE id = 3;
 step s2_key_share: SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE;
-id             
+id
+--
+ 3
+(1 row)
 
-3              
 step s3_key_share: SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE;
-id             
+id
+--
+ 3
+(1 row)
 
-3              
 step s1_update: UPDATE tab_freeze SET x = x + 1 WHERE id = 3;
 step s1_commit: COMMIT;
 step s2_commit: COMMIT;
@@ -24,13 +28,17 @@ step s1_selectone:
     SELECT * FROM tab_freeze WHERE id = 3;
     COMMIT;
 
-id             name           x              
+id|name|x
+--+----+-
+ 3| 333|2
+(1 row)
 
-3              333            2              
 step s3_commit: COMMIT;
 step s2_vacuum: VACUUM FREEZE tab_freeze;
 step s1_selectall: SELECT * FROM tab_freeze ORDER BY name, id;
-id             name           x              
+id|name|x
+--+----+-
+ 1| 111|0
+ 3| 333|2
+(2 rows)
 
-1              111            0              
-3              333            2              
index 07bbc9832cdff96a2f6392af310b8c511e1bfe8e..4150b2dee643ac7272b2cf4192233972d98099df 100644 (file)
@@ -9,31 +9,39 @@ step ll_start:
     BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
     SELECT 1;
 
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step pruner_query_plan: 
     EXPLAIN (COSTS OFF) SELECT * FROM horizons_tst ORDER BY data;
 
-QUERY PLAN     
-
+QUERY PLAN                                                 
+-----------------------------------------------------------
 Index Only Scan using horizons_tst_data_key on horizons_tst
+(1 row)
+
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_delete: 
     DELETE FROM horizons_tst;
 
@@ -42,17 +50,21 @@ step pruner_query:
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step ll_commit: COMMIT;
 step pruner_drop: 
     DROP TABLE horizons_tst;
@@ -67,31 +79,39 @@ step ll_start:
     BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
     SELECT 1;
 
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step pruner_query_plan: 
     EXPLAIN (COSTS OFF) SELECT * FROM horizons_tst ORDER BY data;
 
-QUERY PLAN     
-
+QUERY PLAN                                                 
+-----------------------------------------------------------
 Index Only Scan using horizons_tst_data_key on horizons_tst
+(1 row)
+
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_delete: 
     DELETE FROM horizons_tst;
 
@@ -100,17 +120,21 @@ step pruner_query:
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       0
+(1 row)
 
-0              
 step ll_commit: COMMIT;
 step pruner_drop: 
     DROP TABLE horizons_tst;
@@ -125,25 +149,31 @@ step ll_start:
     BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
     SELECT 1;
 
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_begin: BEGIN;
 step pruner_delete: 
     DELETE FROM horizons_tst;
@@ -153,17 +183,21 @@ step pruner_query:
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step ll_commit: COMMIT;
 step pruner_commit: COMMIT;
 step pruner_drop: 
@@ -179,25 +213,31 @@ step ll_start:
     BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
     SELECT 1;
 
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_delete: 
     DELETE FROM horizons_tst;
 
@@ -209,17 +249,21 @@ step pruner_query:
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step ll_commit: COMMIT;
 step pruner_drop: 
     DROP TABLE horizons_tst;
@@ -234,25 +278,31 @@ step ll_start:
     BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
     SELECT 1;
 
-?column?       
+?column?
+--------
+       1
+(1 row)
 
-1              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       2
+(1 row)
 
-2              
 step pruner_delete: 
     DELETE FROM horizons_tst;
 
@@ -264,17 +314,21 @@ step pruner_query:
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       0
+(1 row)
 
-0              
 step pruner_query: 
     SELECT explain_json($$
         EXPLAIN (FORMAT json, BUFFERS, ANALYZE)
      SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches';
 
-?column?       
+?column?
+--------
+       0
+(1 row)
 
-0              
 step ll_commit: COMMIT;
 step pruner_drop: 
     DROP TABLE horizons_tst;
index edfc8f906cb22b83171047e8344cd88d8b4b95d9..e6f0f220e8a23dbd05f2ede3680a156d5a44fd4b 100644 (file)
@@ -5,29 +5,37 @@ step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
 step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4);
 step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+2
+3
+4
+(4 rows)
 
-1              
-2              
-3              
-4              
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+3
+4
+(2 rows)
 
-3              
-4              
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+2
+5
+6
+(4 rows)
 
-1              
-2              
-5              
-6              
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_update_p s1_update_c s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -36,29 +44,37 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s1_update_p: UPDATE inh_parent SET a = 11 WHERE a = 1;
 step s1_update_c: UPDATE inh_parent SET a = 13 WHERE a IN (3, 5);
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+ a
+--
+ 2
+11
+ 4
+13
+(4 rows)
 
-2              
-11             
-4              
-13             
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+ a
+--
+ 4
+13
+(2 rows)
 
-4              
-13             
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+ a
+--
+ 2
+11
+ 5
+ 6
+(4 rows)
 
-2              
-11             
-5              
-6              
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_update_c s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -66,29 +82,37 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4);
 step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s2_update_c: UPDATE inh_parent SET a = 15 WHERE a IN (3, 5);
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+2
+3
+4
+(4 rows)
 
-1              
-2              
-3              
-4              
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+3
+4
+(2 rows)
 
-3              
-4              
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+ a
+--
+ 1
+ 2
+ 6
+15
+(4 rows)
 
-1              
-2              
-6              
-15             
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+ a
+--
+ 6
+15
+(2 rows)
 
-6              
-15             
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_delete_p s1_delete_c s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -97,25 +121,33 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s1_delete_p: DELETE FROM inh_parent WHERE a = 2;
 step s1_delete_c: DELETE FROM inh_parent WHERE a IN (4, 6);
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+3
+(2 rows)
 
-1              
-3              
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+3
+(1 row)
 
-3              
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+5
+6
+(3 rows)
 
-1              
-5              
-6              
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_delete_c s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -123,27 +155,35 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4);
 step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s2_delete_c: DELETE FROM inh_parent WHERE a IN (4, 6);
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+2
+3
+4
+(4 rows)
 
-1              
-2              
-3              
-4              
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+3
+4
+(2 rows)
 
-3              
-4              
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+1
+2
+5
+(3 rows)
 
-1              
-2              
-5              
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+(1 row)
 
-5              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_truncate_p s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -151,21 +191,29 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4);
 step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s1_truncate_p: TRUNCATE inh_parent;
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+(0 rows)
 
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+(0 rows)
 
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_truncate_p s1_select_p s1_select_c s2_select_p s2_select_c
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -173,20 +221,28 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4);
 step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s2_truncate_p: TRUNCATE inh_parent;
 step s1_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+3
+4
+(2 rows)
 
-3              
-4              
 step s1_select_c: SELECT a FROM inh_temp_child_s1;
-a              
+a
+-
+3
+4
+(2 rows)
 
-3              
-4              
 step s2_select_p: SELECT a FROM inh_parent;
-a              
+a
+-
+(0 rows)
 
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+(0 rows)
 
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_begin s1_truncate_p s2_select_p s1_commit
@@ -198,10 +254,12 @@ step s1_truncate_p: TRUNCATE inh_parent;
 step s2_select_p: SELECT a FROM inh_parent; 
 step s1_commit: COMMIT;
 step s2_select_p: <... completed>
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 
 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_begin s1_truncate_p s2_select_c s1_commit
 step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2);
@@ -210,8 +268,10 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6);
 step s1_begin: BEGIN;
 step s1_truncate_p: TRUNCATE inh_parent;
 step s2_select_c: SELECT a FROM inh_temp_child_s2;
-a              
+a
+-
+5
+6
+(2 rows)
 
-5              
-6              
 step s1_commit: COMMIT;
index c90002fd021c447f41766fbe8f181c4d3053c3dd..22d41d33ed07a62bfd2486fa28da76c998414518 100644 (file)
@@ -8,9 +8,11 @@ step c1: COMMIT;
 step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
 step c2: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing1
+(1 row)
 
-1              donothing1     
 
 starting permutation: beginrr1 beginrr2 donothing2 c2 donothing1 c1 show
 step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -20,9 +22,11 @@ step c2: COMMIT;
 step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
 step c1: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing2
+(1 row)
 
-1              donothing2     
 
 starting permutation: beginrr1 beginrr2 donothing1 donothing2 c1 c2 show
 step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -34,9 +38,11 @@ step donothing2: <... completed>
 ERROR:  could not serialize access due to concurrent update
 step c2: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing1
+(1 row)
 
-1              donothing1     
 
 starting permutation: beginrr1 beginrr2 donothing2 donothing1 c2 c1 show
 step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -48,9 +54,11 @@ step donothing1: <... completed>
 ERROR:  could not serialize access due to concurrent update
 step c1: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing2
+(1 row)
 
-1              donothing2     
 
 starting permutation: begins1 begins2 donothing1 c1 donothing2 c2 show
 step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -60,9 +68,11 @@ step c1: COMMIT;
 step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
 step c2: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing1
+(1 row)
 
-1              donothing1     
 
 starting permutation: begins1 begins2 donothing2 c2 donothing1 c1 show
 step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -72,9 +82,11 @@ step c2: COMMIT;
 step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
 step c1: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing2
+(1 row)
 
-1              donothing2     
 
 starting permutation: begins1 begins2 donothing1 donothing2 c1 c2 show
 step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -86,9 +98,11 @@ step donothing2: <... completed>
 ERROR:  could not serialize access due to concurrent update
 step c2: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing1
+(1 row)
 
-1              donothing1     
 
 starting permutation: begins1 begins2 donothing2 donothing1 c2 c1 show
 step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -100,6 +114,8 @@ step donothing1: <... completed>
 ERROR:  could not serialize access due to concurrent update
 step c1: COMMIT;
 step show: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing2
+(1 row)
 
-1              donothing2     
index 0a0958f0341812d59e0e18ffd0bdbc52154ac0f4..cadf46d06546a7fe504bab642e19f280d5452e04 100644 (file)
@@ -6,9 +6,11 @@ step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2') ON CONFLICT
 step c1: COMMIT;
 step donothing2: <... completed>
 step select2: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing1
+(1 row)
 
-1              donothing1     
 step c2: COMMIT;
 
 starting permutation: donothing1 donothing2 a1 select2 c2
@@ -17,7 +19,9 @@ step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2') ON CONFLICT
 step a1: ABORT;
 step donothing2: <... completed>
 step select2: SELECT * FROM ints;
-key            val            
+key|val       
+---+----------
+  1|donothing2
+(1 row)
 
-1              donothing2     
 step c2: COMMIT;
index 05fb06f8d8d94ce82d62511fe92b142b8c43982c..7acd1aef16837fbdc293c476d038e6a868d842e8 100644 (file)
@@ -6,9 +6,11 @@ step insert2: INSERT INTO upsert(key, payload) VALUES('FOOFOO', 'insert2') ON CO
 step c1: COMMIT;
 step insert2: <... completed>
 step select2: SELECT * FROM upsert;
-key            payload        
+key   |payload                   
+------+--------------------------
+FOOFOO|insert1 updated by insert2
+(1 row)
 
-FOOFOO         insert1 updated by insert2
 step c2: COMMIT;
 
 starting permutation: insert1 insert2 a1 select2 c2
@@ -17,7 +19,9 @@ step insert2: INSERT INTO upsert(key, payload) VALUES('FOOFOO', 'insert2') ON CO
 step a1: ABORT;
 step insert2: <... completed>
 step select2: SELECT * FROM upsert;
-key            payload        
+key   |payload
+------+-------
+FOOFOO|insert2
+(1 row)
 
-FOOFOO         insert2        
 step c2: COMMIT;
index 660041061833387c83ccf2fb2cf4486461be6573..2d7e0b8f1818ada1d66f8671ed3d4da62d47f097 100644 (file)
@@ -12,15 +12,19 @@ step insert1:
     SELECT * FROM colors ORDER BY key; 
 step c2: COMMIT;
 step insert1: <... completed>
-key            color          is_active      
+key|color|is_active
+---+-----+---------
+  1|Red  |f        
+  2|Green|f        
+  3|Blue |f        
+(3 rows)
 
-1              Red            f              
-2              Green          f              
-3              Blue           f              
 step select1surprise: SELECT * FROM colors ORDER BY key;
-key            color          is_active      
+key|color|is_active
+---+-----+---------
+  1|Brown|t        
+  2|Green|f        
+  3|Blue |f        
+(3 rows)
 
-1              Brown          t              
-2              Green          f              
-3              Blue           f              
 step c1: COMMIT;
index a634918784227e6e6e15906d4e1e855a81694018..16c384c8363d739e4fde887b1de059d856055cd0 100644 (file)
@@ -6,9 +6,11 @@ step insert2: INSERT INTO upsert(key, val) VALUES(1, 'insert2') ON CONFLICT (key
 step c1: COMMIT;
 step insert2: <... completed>
 step select2: SELECT * FROM upsert;
-key            val            
+key|val                       
+---+--------------------------
+  1|insert1 updated by insert2
+(1 row)
 
-1              insert1 updated by insert2
 step c2: COMMIT;
 
 starting permutation: insert1 insert2 a1 select2 c2
@@ -17,7 +19,9 @@ step insert2: INSERT INTO upsert(key, val) VALUES(1, 'insert2') ON CONFLICT (key
 step a1: ABORT;
 step insert2: <... completed>
 step select2: SELECT * FROM upsert;
-key            val            
+key|val    
+---+-------
+  1|insert2
+(1 row)
 
-1              insert2        
 step c2: COMMIT;
index 8d319296ddf7515382070b04434b82af6356fb6e..bb8f950f2cfbb5613619a0050cf232e526b7e0ce 100644 (file)
@@ -2,16 +2,20 @@ Parsed test spec with 3 sessions
 
 starting permutation: controller_locks controller_show s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_2_2 controller_show controller_unlock_1_2 controller_show
 step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock);
-pg_advisory_locksess           lock           
-
-               1              1              
-               1              2              
-               1              3              
-               2              1              
-               2              2              
-               2              3              
+pg_advisory_lock|sess|lock
+----------------+----+----
+                |   1|   1
+                |   1|   2
+                |   1|   3
+                |   2|   1
+                |   2|   2
+                |   2|   3
+(6 rows)
+
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 3
@@ -20,66 +24,90 @@ s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 3
 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; 
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 2
 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step s2_upsert: <... completed>
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data       
+---+-----------
+k1 |inserted s2
+(1 row)
 
-k1             inserted s2    
 step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 2
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 2
 step s1_upsert: <... completed>
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data                               
+---+-----------------------------------
+k1 |inserted s2 with conflict update s1
+(1 row)
 
-k1             inserted s2 with conflict update s1
 
 starting permutation: controller_locks controller_show s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show controller_unlock_2_2 controller_show
 step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock);
-pg_advisory_locksess           lock           
-
-               1              1              
-               1              2              
-               1              3              
-               2              1              
-               2              2              
-               2              3              
+pg_advisory_lock|sess|lock
+----------------+----+----
+                |   1|   1
+                |   1|   2
+                |   1|   3
+                |   2|   1
+                |   2|   2
+                |   2|   3
+(6 rows)
+
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 3
@@ -88,66 +116,90 @@ s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 3
 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; 
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 2
 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data
+---+----
+(0 rows)
 
 step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 step s1_upsert: <... completed>
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data       
+---+-----------
+k1 |inserted s1
+(1 row)
 
-k1             inserted s1    
 step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2);
 pg_advisory_unlock
+------------------
+t                 
+(1 row)
 
-t              
 s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 s2: NOTICE:  blurt_and_lock_123() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 step s2_upsert: <... completed>
 step controller_show: SELECT * FROM upserttest;
-key            data           
+key|data                               
+---+-----------------------------------
+k1 |inserted s1 with conflict update s2
+(1 row)
 
-k1             inserted s1 with conflict update s2
 
 starting permutation: controller_locks controller_show s1_insert_toast s2_insert_toast controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show_count controller_unlock_2_2 controller_show_count
 step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock);
-pg_advisory_locksess           lock           
-
-               1              1              
-               1              2              
-               1              3              
-               2              1              
-               2              2              
-               2              3