Обсуждение: Improving isolationtester's data output

Поиск
Список
Период
Сортировка

Improving isolationtester's data output

От
Tom Lane
Дата:
I've been spending a lot of time looking at isolationtester results
over the past couple of days, and gotten really annoyed at how poorly
it formats query results.  In particular, any column heading or value
that is 15 characters or longer is not separated from the next column,
rendering the output quite confusing.

Attached is a little hack that tries to improve that case while making
minimal changes to the output files otherwise.

There's still a good deal to be desired here: notably, the code still
does nothing to ensure vertical alignment of successive lines when
there are wide headings or values.  But doing anything about that
would involve much-more-invasive changes of the output files.
If we wanted to buy into that, I'd think about discarding this
ad-hoc code altogether in favor of using one of libpq's fe-print.c
routines.  But I'm not really sure that the small legibility gains
that would result are worth massive changes in the output files.

Thoughts?

            regards, tom lane

diff --git a/src/test/isolation/expected/detach-partition-concurrently-3.out
b/src/test/isolation/expected/detach-partition-concurrently-3.out
index 96ee090d53..3f553711b3 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-3.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-3.out
@@ -9,7 +9,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -35,7 +35,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -54,7 +54,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -77,7 +77,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -95,7 +95,7 @@ a
 1
 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach2: <... completed>
@@ -121,7 +121,7 @@ a
 1
 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach2: <... completed>
@@ -150,7 +150,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -172,7 +172,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -194,7 +194,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -213,7 +213,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -233,7 +233,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -252,7 +252,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -276,7 +276,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -301,7 +301,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -324,7 +324,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -349,7 +349,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -369,7 +369,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -394,7 +394,7 @@ a
 1
 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
diff --git a/src/test/isolation/expected/detach-partition-concurrently-4.out
b/src/test/isolation/expected/detach-partition-concurrently-4.out
index e5dc40d076..33ea6eccf6 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-4.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-4.out
@@ -10,7 +10,7 @@ a
 2
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -44,7 +44,7 @@ a
 2
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -74,7 +74,7 @@ step s1b: begin;
 step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -110,7 +110,7 @@ step s1b: begin;
 step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -150,7 +150,7 @@ 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 s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2noop: UNLISTEN noop;
@@ -181,7 +181,7 @@ 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 s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2noop: UNLISTEN noop;
@@ -220,7 +220,7 @@ a
 2
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -286,7 +286,7 @@ step s3insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s3commit: commit;
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -320,7 +320,7 @@ a
 2
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
@@ -346,7 +346,7 @@ a
 2
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend pg_sleep

 t
 step s2detach: <... completed>
diff --git a/src/test/isolation/expected/insert-conflict-specconflict.out
b/src/test/isolation/expected/insert-conflict-specconflict.out
index ae361fbd03..8f2bc9d562 100644
--- a/src/test/isolation/expected/insert-conflict-specconflict.out
+++ b/src/test/isolation/expected/insert-conflict-specconflict.out
@@ -2,7 +2,7 @@ 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_1controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_2_2 controller_show
controller_unlock_1_2controller_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
+pg_advisory_lock sess           lock

                1              1
                1              2
@@ -70,7 +70,7 @@ 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_1controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show
controller_unlock_2_2controller_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
+pg_advisory_lock sess           lock

                1              1
                1              2
@@ -138,7 +138,7 @@ k1             inserted s1 with conflict update s2

 starting permutation: controller_locks controller_show s1_insert_toast s2_insert_toast controller_show
controller_unlock_1_1controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show
controller_unlock_1_2controller_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
+pg_advisory_lock sess           lock

                1              1
                1              2
@@ -206,7 +206,7 @@ count

 starting permutation: controller_locks controller_show s1_begin s2_begin s1_upsert s2_upsert controller_show
controller_unlock_1_1controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show
controller_unlock_1_2controller_show controller_unlock_2_2 controller_show s1_commit controller_show s2_commit
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
+pg_advisory_lock sess           lock

                1              1
                1              2
@@ -291,7 +291,7 @@ step s1_confirm_index_order: SELECT 'upserttest_key_uniq_idx'::regclass::int8 <

 t
 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
+pg_advisory_lock sess           lock

                1              1
                1              2
@@ -367,12 +367,12 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name locktype       mode           granted

-isolation/insert-conflict-specconflict-s1spectoken      ShareLock      f
-isolation/insert-conflict-specconflict-s1transactionid  ExclusiveLock  t
-isolation/insert-conflict-specconflict-s2spectoken      ExclusiveLock  t
-isolation/insert-conflict-specconflict-s2transactionid  ExclusiveLock  t
+isolation/insert-conflict-specconflict-s1 spectoken      ShareLock      f
+isolation/insert-conflict-specconflict-s1 transactionid  ExclusiveLock  t
+isolation/insert-conflict-specconflict-s2 spectoken      ExclusiveLock  t
+isolation/insert-conflict-specconflict-s2 transactionid  ExclusiveLock  t
 step controller_unlock_2_4: SELECT pg_advisory_unlock(2, 4);
 pg_advisory_unlock

@@ -389,11 +389,11 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name locktype       mode           granted

-isolation/insert-conflict-specconflict-s1transactionid  ExclusiveLock  t
-isolation/insert-conflict-specconflict-s1transactionid  ShareLock      f
-isolation/insert-conflict-specconflict-s2transactionid  ExclusiveLock  t
+isolation/insert-conflict-specconflict-s1 transactionid  ExclusiveLock  t
+isolation/insert-conflict-specconflict-s1 transactionid  ShareLock      f
+isolation/insert-conflict-specconflict-s2 transactionid  ExclusiveLock  t
 step s2_commit: COMMIT;
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 2
@@ -411,5 +411,5 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name locktype       mode           granted

diff --git a/src/test/isolation/expected/partition-concurrent-attach.out
b/src/test/isolation/expected/partition-concurrent-attach.out
index 17fac39989..764ce04e03 100644
--- a/src/test/isolation/expected/partition-concurrent-attach.out
+++ b/src/test/isolation/expected/partition-concurrent-attach.out
@@ -44,6 +44,6 @@ step s1c: commit;
 step s2s: select tableoid::regclass, * from tpart;
 tableoid       i              j

-tpart_default_default110            xxx
-tpart_default_default120            yyy
-tpart_default_default150            zzz
+tpart_default_default 110            xxx
+tpart_default_default 120            yyy
+tpart_default_default 150            zzz
diff --git a/src/test/isolation/expected/tuplelock-update.out b/src/test/isolation/expected/tuplelock-update.out
index ea63022e93..e153f7a8d6 100644
--- a/src/test/isolation/expected/tuplelock-update.out
+++ b/src/test/isolation/expected/tuplelock-update.out
@@ -6,7 +6,7 @@ step s1_advlock:
         pg_advisory_lock(285714),
         pg_advisory_lock(571428);

-pg_advisory_lockpg_advisory_lockpg_advisory_lock
+pg_advisory_lock pg_advisory_lock pg_advisory_lock


 step s2_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 0a73d38dae..fe9acb1143 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -920,14 +920,26 @@ printResultSet(PGresult *res)
     /* first, print out the attribute names */
     nFields = PQnfields(res);
     for (i = 0; i < nFields; i++)
-        printf("%-15s", PQfname(res, i));
+    {
+        const char *itm = PQfname(res, i);
+
+        printf("%-15s", itm);
+        if (i < nFields - 1 && strlen(itm) >= 15)
+            printf(" ");
+    }
     printf("\n\n");

     /* next, print out the rows */
     for (i = 0; i < PQntuples(res); i++)
     {
         for (j = 0; j < nFields; j++)
-            printf("%-15s", PQgetvalue(res, i, j));
+        {
+            const char *itm = PQgetvalue(res, i, j);
+
+            printf("%-15s", itm);
+            if (j < nFields - 1 && strlen(itm) >= 15)
+                printf(" ");
+        }
         printf("\n");
     }
 }

Re: Improving isolationtester's data output

От
Alvaro Herrera
Дата:
On 2021-Jun-15, Tom Lane wrote:

> I've been spending a lot of time looking at isolationtester results
> over the past couple of days, and gotten really annoyed at how poorly
> it formats query results.  In particular, any column heading or value
> that is 15 characters or longer is not separated from the next column,
> rendering the output quite confusing.

Yeah, I noticed this too.

> Attached is a little hack that tries to improve that case while making
> minimal changes to the output files otherwise.

Seems pretty reasonable.

> There's still a good deal to be desired here: notably, the code still
> does nothing to ensure vertical alignment of successive lines when
> there are wide headings or values.  But doing anything about that
> would involve much-more-invasive changes of the output files.
> If we wanted to buy into that, I'd think about discarding this
> ad-hoc code altogether in favor of using one of libpq's fe-print.c
> routines.  But I'm not really sure that the small legibility gains
> that would result are worth massive changes in the output files.

Shrug -- it's a one time change.  It wouldn't bother me, for one.

-- 
Álvaro Herrera       Valdivia, Chile
"Hay que recordar que la existencia en el cosmos, y particularmente la
elaboración de civilizaciones dentro de él no son, por desgracia,
nada idílicas" (Ijon Tichy)



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> On 2021-Jun-15, Tom Lane wrote:
>> If we wanted to buy into that, I'd think about discarding this
>> ad-hoc code altogether in favor of using one of libpq's fe-print.c
>> routines.  But I'm not really sure that the small legibility gains
>> that would result are worth massive changes in the output files.

> Shrug -- it's a one time change.  It wouldn't bother me, for one.

Going forward it wouldn't be a problem, but back-patching isolation
test cases might find it annoying.  On the other hand, my nearby
patch to improve isolation test stability is already going to create
issues of that sort.  (Unless, dare I say it, we back-patch that.)

I do find it a bit attractive to create some regression-testing
coverage of fe-print.c.  We are never going to remove that code,
AFAICS, so getting some benefit from it would be nice.

            regards, tom lane



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Andres Freund <andres@anarazel.de> writes:
> On 2021-06-15 19:26:25 -0400, Tom Lane wrote:
>> Going forward it wouldn't be a problem, but back-patching isolation
>> test cases might find it annoying.  On the other hand, my nearby
>> patch to improve isolation test stability is already going to create
>> issues of that sort.  (Unless, dare I say it, we back-patch that.)

> It might be worth to back-patch - aren't there some back branch cases of
> test instability? And perhaps more importantly, I'm sure we'll encounter
> cases of writing new isolation tests in the course of fixing bugs that
> we'd want to backpatch that are hard to make reliable without the new
> features?

Yeah, there absolutely is a case to back-patch things like this.  Whether
it's a strong enough case, I dunno.  I'm probably too close to the patch
to have an unbiased opinion about that.

However, a quick look through the commit history finds several places
where we complained about not being able to back-patch isolation tests to
before 9.6 because we hadn't back-patched that version's isolationtester
improvements.  I found 6b802cfc7, 790026972, c88411995, 8b21b416e without
looking too hard.  So that history certainly suggests that not
back-patching such test infrastructure is the Wrong Thing.

(And yeah, the failures we complained of in the other thread are
certainly there in the back branches.  I think the only reason there
seem to be fewer is that the back branches see fewer test runs.)

            regards, tom lane



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> On 2021-Jun-15, Tom Lane wrote:
>> If we wanted to buy into that, I'd think about discarding this
>> ad-hoc code altogether in favor of using one of libpq's fe-print.c
>> routines.  But I'm not really sure that the small legibility gains
>> that would result are worth massive changes in the output files.

> Shrug -- it's a one time change.  It wouldn't bother me, for one.

Here's a really quick-and-dirty patch to see what that would look
like.  I haven't bothered here to update the expected-files outside
the main src/test/isolation directory, nor to fix the variant files.

            regards, tom lane

diff --git a/src/test/isolation/expected/aborted-keyrevoke.out b/src/test/isolation/expected/aborted-keyrevoke.out
index c93762394f..a03542636f 100644
--- a/src/test/isolation/expected/aborted-keyrevoke.out
+++ b/src/test/isolation/expected/aborted-keyrevoke.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/alter-table-1.out b/src/test/isolation/expected/alter-table-1.out
index dd5d8b11b6..5e88174be4 100644
--- a/src/test/isolation/expected/alter-table-1.out
+++ b/src/test/isolation/expected/alter-table-1.out
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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); <waiting ...>
@@ -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); <waiting ...>
@@ -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); <waiting ...>
@@ -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); <waiting ...>
@@ -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); <waiting ...>
@@ -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); <waiting ...>
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/alter-table-2.out b/src/test/isolation/expected/alter-table-2.out
index 33ea442113..819bc332e5 100644
--- a/src/test/isolation/expected/alter-table-2.out
+++ b/src/test/isolation/expected/alter-table-2.out
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
@@ -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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
@@ -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); <waiting ...>
@@ -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; <waiting ...>
@@ -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; <waiting ...>
@@ -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;
diff --git a/src/test/isolation/expected/alter-table-3.out b/src/test/isolation/expected/alter-table-3.out
index b4f3b5a86d..25d2071be5 100644
--- a/src/test/isolation/expected/alter-table-3.out
+++ b/src/test/isolation/expected/alter-table-3.out
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
@@ -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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
 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); <waiting ...>
@@ -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); <waiting ...>
 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); <waiting ...>
@@ -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;
diff --git a/src/test/isolation/expected/alter-table-4.out b/src/test/isolation/expected/alter-table-4.out
index d2dac0be09..6d70581293 100644
--- a/src/test/isolation/expected/alter-table-4.out
+++ b/src/test/isolation/expected/alter-table-4.out
@@ -6,13 +6,17 @@ step s1delc1: ALTER TABLE c1 NO INHERIT p;
 step s2sel: SELECT SUM(a) FROM p; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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 in steps s1c s2sel: 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
diff --git a/src/test/isolation/expected/async-notify.out b/src/test/isolation/expected/async-notify.out
index 79427789b1..556e180589 100644
--- a/src/test/isolation/expected/async-notify.out
+++ b/src/test/isolation/expected/async-notify.out
@@ -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
diff --git a/src/test/isolation/expected/classroom-scheduling.out
b/src/test/isolation/expected/classroom-scheduling.out
index f02638c0b5..1d7c885bc0 100644
--- a/src/test/isolation/expected/classroom-scheduling.out
+++ b/src/test/isolation/expected/classroom-scheduling.out
@@ -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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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-0114: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
WITHTIME 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-0114: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;
diff --git a/src/test/isolation/expected/create-trigger.out b/src/test/isolation/expected/create-trigger.out
index 8deb64a8c0..7f9867804d 100644
--- a/src/test/isolation/expected/create-trigger.out
+++ b/src/test/isolation/expected/create-trigger.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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(); <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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(); <waiting ...>
 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; <waiting ...>
@@ -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(); <waiting ...>
@@ -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(); <waiting ...>
@@ -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;
diff --git a/src/test/isolation/expected/deadlock-parallel.out b/src/test/isolation/expected/deadlock-parallel.out
index cf4d07e615..6fe5e24a02 100644
--- a/src/test/isolation/expected/deadlock-parallel.out
+++ b/src/test/isolation/expected/deadlock-parallel.out
@@ -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; <waiting ...>
 step e2l: SELECT lock_excl(2,x) FROM bigt LIMIT 1; <waiting ...>
 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; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/delete-abort-savept-2.out
b/src/test/isolation/expected/delete-abort-savept-2.out
index f66a90c6f0..6fc991ae00 100644
--- a/src/test/isolation/expected/delete-abort-savept-2.out
+++ b/src/test/isolation/expected/delete-abort-savept-2.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 step s1r: ROLLBACK TO f;
 step s2l2: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s1c: COMMIT;
 step s2c: COMMIT;
diff --git a/src/test/isolation/expected/delete-abort-savept.out b/src/test/isolation/expected/delete-abort-savept.out
index 284aa89d35..8f70bab45d 100644
--- a/src/test/isolation/expected/delete-abort-savept.out
+++ b/src/test/isolation/expected/delete-abort-savept.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/detach-partition-concurrently-1.out
b/src/test/isolation/expected/detach-partition-concurrently-1.out
index 9b4526773e..bae53dd0b2 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-1.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-1.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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>
diff --git a/src/test/isolation/expected/detach-partition-concurrently-2.out
b/src/test/isolation/expected/detach-partition-concurrently-2.out
index 85be707b40..6f025d81f5 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-2.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-2.out
@@ -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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 step s3i1: INSERT INTO d_lp_fk_r VALUES (1);
diff --git a/src/test/isolation/expected/detach-partition-concurrently-3.out
b/src/test/isolation/expected/detach-partition-concurrently-3.out
index 96ee090d53..fd44223487 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-3.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-3.out
@@ -4,25 +4,31 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s1describe s
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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

@@ -30,14 +36,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -49,37 +59,47 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s2noop s1insert s1c s
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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 s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -90,14 +110,18 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s2noop s1c s1brr s1ins
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach2: <... completed>
 error in steps s1cancel s2detach2: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -105,10 +129,12 @@ 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;

@@ -116,43 +142,55 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s2noop s1c s1brr s1s s
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach2: <... completed>
 error in steps s1cancel s2detach2: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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 s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -160,43 +198,55 @@ 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 s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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 s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -208,14 +258,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -228,14 +282,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s1droppart s
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -247,14 +305,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s2begin s2dr
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -264,30 +326,38 @@ step s2drop: DROP TABLE d3_listp1;
 step s1s: SELECT * FROM d3_listp; <waiting ...>
 step s2commit: COMMIT;
 step s1s: <... completed>
-a
+a
+-
+(0 rows)


 starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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; <waiting ...>
 step s1c: COMMIT;
 step s2detachfinal: <... completed>
@@ -296,21 +366,27 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s1b s1s s2de
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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;
@@ -319,23 +395,29 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s1b 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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; <waiting ...>
 step s1c: COMMIT;
 step s2detachfinal: <... completed>
@@ -344,14 +426,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s2begin s2de
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -364,14 +450,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop s1c s2begin s2de
 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -381,22 +471,28 @@ step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE;
 step s1spart: SELECT * FROM d3_listp1; <waiting ...>
 step s2commit: COMMIT;
 step s1spart: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: SELECT pg_cancel_backend(pid), pg_sleep(0.1) FROM d3_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
diff --git a/src/test/isolation/expected/detach-partition-concurrently-4.out
b/src/test/isolation/expected/detach-partition-concurrently-4.out
index e5dc40d076..91d4ed0aed 100644
--- a/src/test/isolation/expected/detach-partition-concurrently-4.out
+++ b/src/test/isolation/expected/detach-partition-concurrently-4.out
@@ -4,15 +4,19 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -24,10 +28,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; <waiting ...>
 step s1insert: insert into d4_fk values (1);
 step s2detach: <... completed>
@@ -38,15 +44,19 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -58,10 +68,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; <waiting ...>
 step s1insert: insert into d4_fk values (1);
 step s2detach: <... completed>
@@ -74,17 +86,21 @@ step s1b: begin;
 step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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;
@@ -95,10 +111,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; <waiting ...>
 step s1fetchall: fetch all from f;
-a
+a
+-
+1
+2
+(2 rows)

-1
-2
 step s1insert: insert into d4_fk values (1);
 step s2detach: <... completed>
 error in steps s1insert s2detach: ERROR:  insert or update on table "d4_fk" violates foreign key constraint
"d4_fk_a_fkey"
@@ -110,9 +128,11 @@ step s1b: begin;
 step s1declare: declare f cursor for select * from d4_primary;
 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -121,10 +141,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
@@ -137,10 +159,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>

@@ -150,14 +174,18 @@ 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 s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2noop: UNLISTEN noop;
 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;
@@ -168,9 +196,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;
@@ -181,18 +211,22 @@ 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 s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2noop: UNLISTEN noop;
 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
@@ -205,9 +239,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 s2noop s1updcur s1c
@@ -215,14 +251,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; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -235,9 +275,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; <waiting ...>
 step s1updcur: update d4_fk set a = 1 where current of f;
 step s2detach: <... completed>
@@ -249,9 +291,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; <waiting ...>
 step s1c: commit;
@@ -262,10 +306,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; <waiting ...>
 step s3insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
@@ -276,19 +322,23 @@ 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; <waiting ...>
 step s3brr: begin isolation level repeatable read;
 step s3insert: insert into d4_fk values (1);
 ERROR:  insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey"
 step s3commit: commit;
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
@@ -298,10 +348,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; <waiting ...>
 step s3brr: begin isolation level repeatable read;
 step s3insert: insert into d4_fk values (1);
@@ -314,24 +366,30 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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;
@@ -340,23 +398,29 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s2noop 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; <waiting ...>
 step s1cancel: select pg_cancel_backend(pid), pg_sleep(0.1) from d4_pid;
-pg_cancel_backendpg_sleep
+pg_cancel_backend|pg_sleep
+-----------------+--------
+t                |
+(1 row)

-t
 step s2detach: <... completed>
 error in steps s1cancel s2detach: ERROR:  canceling statement due to user request
 step s2noop: UNLISTEN noop;
 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;
diff --git a/src/test/isolation/expected/drop-index-concurrently-1.out
b/src/test/isolation/expected/drop-index-concurrently-1.out
index 8e6adb66bb..97e1a6e779 100644
--- a/src/test/isolation/expected/drop-index-concurrently-1.out
+++ b/src/test/isolation/expected/drop-index-concurrently-1.out
@@ -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; <waiting ...>
 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>
diff --git a/src/test/isolation/expected/eval-plan-qual-trigger.out
b/src/test/isolation/expected/eval-plan-qual-trigger.out
index f0d975ce0c..da36948cf1 100644
--- a/src/test/isolation/expected/eval-plan-qual-trigger.out
+++ b/src/test/isolation/expected/eval-plan-qual-trigger.out
@@ -4,21 +4,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)
@@ -31,9 +39,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
@@ -47,35 +57,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_datas2_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)
@@ -88,9 +110,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
@@ -104,15 +128,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_rcs1_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();
@@ -120,21 +148,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)
@@ -147,9 +183,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
@@ -163,14 +201,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_rcs1_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();
@@ -178,21 +220,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)
@@ -205,9 +255,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
@@ -221,34 +273,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_cs2_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)
@@ -261,9 +325,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:
@@ -280,35 +346,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_rs2_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)
@@ -321,9 +399,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:
@@ -338,15 +418,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_rcs1_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();
@@ -354,21 +438,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)
@@ -381,9 +473,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:
@@ -400,15 +494,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_rcs1_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();
@@ -416,21 +514,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)
@@ -443,9 +549,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:
@@ -460,15 +568,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_rcs1_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();
@@ -476,21 +588,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: <NULL>
@@ -503,9 +623,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:
@@ -518,13 +640,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_rcs1_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();
@@ -532,21 +658,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: <NULL>
@@ -559,9 +693,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:
@@ -576,15 +712,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_as1_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();
@@ -592,19 +732,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-a,val-a-s2)
 step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; <waiting ...>
 step s1_c: COMMIT;
@@ -612,9 +758,11 @@ step s2_ins_a: <... completed>
 error in steps s1_c s2_ins_a: 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_as1_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();
@@ -622,32 +770,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-a,val-a-s2)
 step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; <waiting ...>
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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_as1_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();
@@ -659,23 +817,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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)
@@ -688,9 +854,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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -707,15 +875,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_as1_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();
@@ -727,23 +899,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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)
@@ -756,9 +936,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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -775,15 +957,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_rcs2_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();
@@ -793,19 +979,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -822,14 +1014,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_rcs2_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();
@@ -839,19 +1035,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -865,14 +1067,18 @@ step s2_upsert_a_data:
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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_rcs2_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();
@@ -882,19 +1088,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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)
@@ -906,9 +1118,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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -925,14 +1139,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_rcs2_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();
@@ -942,19 +1160,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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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)
@@ -966,9 +1190,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: <NULL> new: (key-a,val-a-upss2)
 step s2_upsert_a_data:
     INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2')
@@ -982,33 +1208,45 @@ step s2_upsert_a_data:
 step s1_r: ROLLBACK;
 s2: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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
@@ -1020,9 +1258,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:
@@ -1038,34 +1278,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
@@ -1077,9 +1329,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:
@@ -1093,35 +1347,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_cs0_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
@@ -1133,9 +1399,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:
@@ -1151,34 +1419,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: <NULL>
 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_cs0_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
@@ -1190,9 +1470,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:
@@ -1206,34 +1488,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: <NULL>
 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_cs0_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
@@ -1245,9 +1539,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:
@@ -1260,33 +1556,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_cs0_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
@@ -1298,9 +1606,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:
@@ -1314,34 +1624,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
@@ -1353,9 +1675,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:
@@ -1368,32 +1692,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
@@ -1405,9 +1741,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:
@@ -1421,34 +1759,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: <NULL>
 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_cs2_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)
@@ -1461,9 +1811,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:
@@ -1477,34 +1829,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_rs2_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)
@@ -1517,9 +1881,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:
@@ -1534,35 +1900,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_cs2_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)
@@ -1575,9 +1953,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:
@@ -1587,35 +1967,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_cs2_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)
@@ -1628,9 +2020,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:
@@ -1650,16 +2044,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_rcs1_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();
@@ -1667,21 +2065,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: <NULL>
@@ -1694,9 +2100,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:
@@ -1709,13 +2117,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_rcs1_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();
@@ -1723,21 +2135,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: <NULL>
@@ -1750,9 +2170,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:
@@ -1767,35 +2189,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: <NULL>
@@ -1808,9 +2242,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:
@@ -1823,33 +2259,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: <NULL>
@@ -1862,9 +2310,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:
@@ -1879,14 +2329,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: <NULL>
 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_bs1_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();
@@ -1898,23 +2352,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: <NULL> new: (key-b,val-b-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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: <NULL> new: (key-a,val-a-s1)
 s1: NOTICE:  trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> 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)
@@ -1927,9 +2389,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:
@@ -1951,9 +2415,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)
@@ -1965,38 +2431,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_cs2_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)
@@ -2009,9 +2489,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:
@@ -2026,30 +2508,40 @@ step s2_upd_a_data: <... completed>
 error in steps s1_c s2_upd_a_data: 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_rs2_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)
@@ -2062,9 +2554,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:
@@ -2079,15 +2573,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_rrs1_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();
@@ -2095,21 +2593,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: <NULL>
@@ -2122,9 +2628,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:
@@ -2139,9 +2647,11 @@ step s2_upd_a_data: <... completed>
 error in steps s1_c s2_upd_a_data: 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_rrs1_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();
@@ -2149,21 +2659,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: <NULL>
@@ -2176,9 +2694,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:
@@ -2193,15 +2713,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
 unused step name: s2_r
 unused step name: s3_b_rc
 unused step name: s3_c
diff --git a/src/test/isolation/expected/eval-plan-qual.out b/src/test/isolation/expected/eval-plan-qual.out
index 3e55a55c63..77ddc58aa6 100644
--- a/src/test/isolation/expected/eval-plan-qual.out
+++ b/src/test/isolation/expected/eval-plan-qual.out
@@ -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; <waiting ...>
 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;<waiting ...> 
 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; <waiting ...>
 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;<waiting ...> 
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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; <waiting ...>
 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 *)
UPDATEaccounts a SET balance = doup.balance + 100 FROM doup RETURNING *; <waiting ...> 
 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 *; <waiting ...> 
 step c1: COMMIT;
 step updwctefail: <... completed>
 error in steps c1 updwctefail: ERROR:  tuple to be updated was already modified by an operation triggered by the
currentcommand 
 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 *)
DELETEFROM accounts a USING doup RETURNING *; <waiting ...> 
 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 *; <waiting ...> 
 step c1: COMMIT;
 step delwctefail: <... completed>
 error in steps c1 delwctefail: ERROR:  tuple to be deleted was already modified by an operation triggered by the
currentcommand 
 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; <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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:
  <waiting ...>
 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.*;
  <waiting ...>
 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.*;
  <waiting ...>
 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;
diff --git a/src/test/isolation/expected/fk-partitioned-2.out b/src/test/isolation/expected/fk-partitioned-2.out
index 722b615c6e..99072a3f5e 100644
--- a/src/test/isolation/expected/fk-partitioned-2.out
+++ b/src/test/isolation/expected/fk-partitioned-2.out
@@ -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); <waiting ...>
 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); <waiting ...>
 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; <waiting ...>
 step s2c: commit;
diff --git a/src/test/isolation/expected/freeze-the-dead.out b/src/test/isolation/expected/freeze-the-dead.out
index 8e638f132f..88678bd045 100644
--- a/src/test/isolation/expected/freeze-the-dead.out
+++ b/src/test/isolation/expected/freeze-the-dead.out
@@ -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
diff --git a/src/test/isolation/expected/horizons.out b/src/test/isolation/expected/horizons.out
index 07bbc9832c..4150b2dee6 100644
--- a/src/test/isolation/expected/horizons.out
+++ b/src/test/isolation/expected/horizons.out
@@ -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;
diff --git a/src/test/isolation/expected/inherit-temp.out b/src/test/isolation/expected/inherit-temp.out
index edfc8f906c..e6f0f220e8 100644
--- a/src/test/isolation/expected/inherit-temp.out
+++ b/src/test/isolation/expected/inherit-temp.out
@@ -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; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/insert-conflict-do-nothing-2.out
b/src/test/isolation/expected/insert-conflict-do-nothing-2.out
index 2332f96978..7d73c1b1d8 100644
--- a/src/test/isolation/expected/insert-conflict-do-nothing-2.out
+++ b/src/test/isolation/expected/insert-conflict-do-nothing-2.out
@@ -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 in steps c1 donothing2: 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 in steps c2 donothing1: 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 in steps c1 donothing2: 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 in steps c2 donothing1: 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
diff --git a/src/test/isolation/expected/insert-conflict-do-nothing.out
b/src/test/isolation/expected/insert-conflict-do-nothing.out
index 0a0958f034..cadf46d065 100644
--- a/src/test/isolation/expected/insert-conflict-do-nothing.out
+++ b/src/test/isolation/expected/insert-conflict-do-nothing.out
@@ -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;
diff --git a/src/test/isolation/expected/insert-conflict-do-update-2.out
b/src/test/isolation/expected/insert-conflict-do-update-2.out
index 05fb06f8d8..7acd1aef16 100644
--- a/src/test/isolation/expected/insert-conflict-do-update-2.out
+++ b/src/test/isolation/expected/insert-conflict-do-update-2.out
@@ -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;
diff --git a/src/test/isolation/expected/insert-conflict-do-update-3.out
b/src/test/isolation/expected/insert-conflict-do-update-3.out
index 6600410618..2d7e0b8f18 100644
--- a/src/test/isolation/expected/insert-conflict-do-update-3.out
+++ b/src/test/isolation/expected/insert-conflict-do-update-3.out
@@ -12,15 +12,19 @@ step insert1:
     SELECT * FROM colors ORDER BY key; <waiting ...>
 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;
diff --git a/src/test/isolation/expected/insert-conflict-do-update.out
b/src/test/isolation/expected/insert-conflict-do-update.out
index a634918784..16c384c836 100644
--- a/src/test/isolation/expected/insert-conflict-do-update.out
+++ b/src/test/isolation/expected/insert-conflict-do-update.out
@@ -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;
diff --git a/src/test/isolation/expected/insert-conflict-specconflict.out
b/src/test/isolation/expected/insert-conflict-specconflict.out
index ae361fbd03..2efa98e69b 100644
--- a/src/test/isolation/expected/insert-conflict-specconflict.out
+++ b/src/test/isolation/expected/insert-conflict-specconflict.out
@@ -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_1controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_2_2 controller_show
controller_unlock_1_2controller_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
UPDATESET data = upserttest.data || ' with conflict update s2'; <waiting ...> 
 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_1controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show
controller_unlock_2_2controller_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
UPDATESET data = upserttest.data || ' with conflict update s2'; <waiting ...> 
 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_1controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show
controller_unlock_1_2controller_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
+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 k2 in session 1
 s1: NOTICE:  acquiring advisory lock on 3
@@ -156,66 +208,90 @@ s2: NOTICE:  blurt_and_lock_123() called for k2 in session 2
 s2: NOTICE:  acquiring advisory lock on 3
 step s2_insert_toast: INSERT INTO upserttest VALUES('k2', ctoast_large_val()) ON CONFLICT DO NOTHING; <waiting ...>
 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 k2 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 k2 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_insert_toast: <... completed>
 step controller_show_count: SELECT COUNT(*) FROM upserttest;
-count
+count
+-----
+    1
+(1 row)

-1
 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 k2 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 s2: NOTICE:  blurt_and_lock_123() called for k2 in session 2
 s2: NOTICE:  acquiring advisory lock on 2
 step s2_insert_toast: <... completed>
 step controller_show_count: SELECT COUNT(*) FROM upserttest;
-count
+count
+-----
+    1
+(1 row)

-1

 starting permutation: controller_locks controller_show s1_begin s2_begin s1_upsert s2_upsert controller_show
controller_unlock_1_1controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show
controller_unlock_1_2controller_show controller_unlock_2_2 controller_show s1_commit controller_show s2_commit
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)

 step s1_begin: BEGIN;
 step s2_begin: BEGIN;
@@ -226,81 +302,111 @@ 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
UPDATESET data = upserttest.data || ' with conflict update s2'; <waiting ...> 
 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
+---+----
+(0 rows)

 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 controller_show: SELECT * FROM upserttest;
-key            data
+key|data
+---+----
+(0 rows)

 step s1_commit: COMMIT;
 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
+(1 row)

-k1             inserted s1
 step s2_commit: COMMIT;
 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: s1_create_non_unique_index s1_confirm_index_order controller_locks controller_show s2_begin
s1_upserts2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3
controller_unlock_2_3controller_show controller_lock_2_4 controller_unlock_2_2 controller_show controller_unlock_1_2
controller_print_speculative_lockscontroller_unlock_2_4 controller_print_speculative_locks s2_commit controller_show
controller_print_speculative_locks
 step s1_create_non_unique_index: CREATE INDEX upserttest_key_idx ON upserttest((blurt_and_lock_4(key)));
 step s1_confirm_index_order: SELECT 'upserttest_key_uniq_idx'::regclass::int8 < 'upserttest_key_idx'::regclass::int8;
-?column?
+?column?
+--------
+t
+(1 row)

-t
 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)

 step s2_begin: BEGIN;
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
@@ -310,48 +416,68 @@ 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
UPDATESET data = upserttest.data || ' with conflict update s2'; <waiting ...> 
 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_lock_2_4: SELECT pg_advisory_lock(2, 4);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s2: NOTICE:  blurt_and_lock_4() called for k1 in session 2
 s2: NOTICE:  acquiring advisory lock on 4
 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
 s1: NOTICE:  blurt_and_lock_4() called for k1 in session 1
 s1: NOTICE:  acquiring advisory lock on 4
 s1: NOTICE:  blurt_and_lock_123() called for k1 in session 1
@@ -367,16 +493,20 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name                         |locktype     |mode         |granted
+-----------------------------------------+-------------+-------------+-------
+isolation/insert-conflict-specconflict-s1|spectoken    |ShareLock    |f
+isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t
+isolation/insert-conflict-specconflict-s2|spectoken    |ExclusiveLock|t
+isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t
+(4 rows)

-isolation/insert-conflict-specconflict-s1spectoken      ShareLock      f
-isolation/insert-conflict-specconflict-s1transactionid  ExclusiveLock  t
-isolation/insert-conflict-specconflict-s2spectoken      ExclusiveLock  t
-isolation/insert-conflict-specconflict-s2transactionid  ExclusiveLock  t
 step controller_unlock_2_4: SELECT pg_advisory_unlock(2, 4);
 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 s2_upsert: <... completed>
@@ -389,19 +519,23 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name                         |locktype     |mode         |granted
+-----------------------------------------+-------------+-------------+-------
+isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t
+isolation/insert-conflict-specconflict-s1|transactionid|ShareLock    |f
+isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t
+(3 rows)

-isolation/insert-conflict-specconflict-s1transactionid  ExclusiveLock  t
-isolation/insert-conflict-specconflict-s1transactionid  ShareLock      f
-isolation/insert-conflict-specconflict-s2transactionid  ExclusiveLock  t
 step s2_commit: COMMIT;
 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
 step controller_print_speculative_locks:
     SELECT pa.application_name, locktype, mode, granted
     FROM pg_locks pl JOIN pg_stat_activity pa USING (pid)
@@ -411,5 +545,7 @@ step controller_print_speculative_locks:
         AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%'
     ORDER BY 1, 2, 3, 4;

-application_namelocktype       mode           granted
+application_name|locktype|mode|granted
+----------------+--------+----+-------
+(0 rows)

diff --git a/src/test/isolation/expected/lock-committed-keyupdate.out
b/src/test/isolation/expected/lock-committed-keyupdate.out
index 69cdbfba0a..6374e933b0 100644
--- a/src/test/isolation/expected/lock-committed-keyupdate.out
+++ b/src/test/isolation/expected/lock-committed-keyupdate.out
@@ -5,492 +5,666 @@ step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1u s1c s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
 error in steps s1c s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
 error in steps s1c s2l: ERROR:  could not serialize access due to concurrent update
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1u s1c s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
 error in steps s1c s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
 error in steps s1ul s2l: ERROR:  could not serialize access due to concurrent update
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(578902068);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3;
 step s1ul: SELECT pg_advisory_unlock(578902068);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2l: <... completed>
 error in steps s1c s2l: ERROR:  could not serialize access due to concurrent update
 step s1hint: SELECT * FROM lcku_table;
-id             value
+id|value
+--+-----
+ 1|one
+ 2|two
+(2 rows)

-1              one
-2              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
diff --git a/src/test/isolation/expected/lock-committed-update.out
b/src/test/isolation/expected/lock-committed-update.out
index 88a6f23eab..84b9ce7509 100644
--- a/src/test/isolation/expected/lock-committed-update.out
+++ b/src/test/isolation/expected/lock-committed-update.out
@@ -5,663 +5,927 @@ step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s2l s1ul s1u s1c s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s2l s1ul s1u s1c s1hint s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1u s1c s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1ul s1u s1c s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s2l s1ul s1u s1c s1hint s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1u s1c s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s2l s1c s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1ul s1u s1c s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1u s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s2l s1c s1hint s1ul s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s2l s1ul s1u s1c s1hint s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...>
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: <... completed>
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-

 starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s1hint s2c
 step s1b: BEGIN;
 step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step s1l: SELECT pg_advisory_lock(380170116);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1;
 step s1ul: SELECT pg_advisory_unlock(380170116);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE;
-id             value
+id|value
+--+-----
+ 1|one
+(1 row)

-1              one
 step s1c: COMMIT;
 step s1hint: SELECT * FROM lcu_table;
-id             value
+id|value
+--+-----
+ 1|two
+(1 row)

-1              two
 step s2c: COMMIT;
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
diff --git a/src/test/isolation/expected/lock-update-delete.out b/src/test/isolation/expected/lock-update-delete.out
index 3aa12539e2..f75e25f74b 100644
--- a/src/test/isolation/expected/lock-update-delete.out
+++ b/src/test/isolation/expected/lock-update-delete.out
@@ -2,114 +2,152 @@ Parsed test spec with 2 sessions

 starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2c
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker1: DELETE FROM foo;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2c: COMMIT;
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+(0 rows)


 starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2c
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2c: COMMIT;
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+(0 rows)


 starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2c
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2c: COMMIT;

 starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2r
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker1: DELETE FROM foo;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2r: ROLLBACK;
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1

 starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2r
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2r: ROLLBACK;
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1

 starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2r
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2r: ROLLBACK;

 starting permutation: s2b s1l s2u s2_blocker1 s2c s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -117,16 +155,22 @@ step s2_blocker1: DELETE FROM foo;
 step s2c: COMMIT;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+(0 rows)


 starting permutation: s2b s1l s2u s2_blocker2 s2c s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -134,16 +178,22 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1;
 step s2c: COMMIT;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+(0 rows)


 starting permutation: s2b s1l s2u s2_blocker3 s2c s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -151,17 +201,23 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1;
 step s2c: COMMIT;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1

 starting permutation: s2b s1l s2u s2_blocker1 s2r s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -169,17 +225,23 @@ step s2_blocker1: DELETE FROM foo;
 step s2r: ROLLBACK;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1

 starting permutation: s2b s1l s2u s2_blocker2 s2r s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -187,17 +249,23 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1;
 step s2r: ROLLBACK;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1

 starting permutation: s2b s1l s2u s2_blocker3 s2r s2_unlock
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s2b: BEGIN;
 step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...>
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
@@ -205,9 +273,13 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1;
 step s2r: ROLLBACK;
 step s2_unlock: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1l: <... completed>
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
diff --git a/src/test/isolation/expected/lock-update-traversal.out
b/src/test/isolation/expected/lock-update-traversal.out
index e4e6405757..6d6a97d46e 100644
--- a/src/test/isolation/expected/lock-update-traversal.out
+++ b/src/test/isolation/expected/lock-update-traversal.out
@@ -4,14 +4,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d1 s1c
 step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s2b: BEGIN;
 step s1s: SELECT * FROM foo;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2c: COMMIT;
 step s2d1: DELETE FROM foo WHERE key = 1; <waiting ...>
 step s1c: COMMIT;
@@ -21,14 +25,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d2 s1c
 step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s2b: BEGIN;
 step s1s: SELECT * FROM foo;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2c: COMMIT;
 step s2d2: UPDATE foo SET key = 3 WHERE key = 1; <waiting ...>
 step s1c: COMMIT;
@@ -38,14 +46,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d3 s1c
 step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ;
 step s2b: BEGIN;
 step s1s: SELECT * FROM foo;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2u: UPDATE foo SET value = 2 WHERE key = 1;
 step s1l: SELECT * FROM foo FOR KEY SHARE;
-key            value
+key|value
+---+-----
+  1|    1
+(1 row)

-1              1
 step s2c: COMMIT;
 step s2d3: UPDATE foo SET value = 3 WHERE key = 1;
 step s1c: COMMIT;
diff --git a/src/test/isolation/expected/multiple-cic.out b/src/test/isolation/expected/multiple-cic.out
index 2bf8fe365e..17ad0f4978 100644
--- a/src/test/isolation/expected/multiple-cic.out
+++ b/src/test/isolation/expected/multiple-cic.out
@@ -3,8 +3,10 @@ Parsed test spec with 2 sessions
 starting permutation: s2l s1i s2i
 step s2l: SELECT pg_advisory_lock(281457);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1i:
         CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id)
         WHERE lck_shr(281457);
@@ -14,6 +16,8 @@ step s2i:
         WHERE unlck();

 step s1i: <... completed>
-unlck
+unlck
+-----
+t
+(1 row)

-t
diff --git a/src/test/isolation/expected/multiple-row-versions.out
b/src/test/isolation/expected/multiple-row-versions.out
index d6a0c427fc..79f492ea42 100644
--- a/src/test/isolation/expected/multiple-row-versions.out
+++ b/src/test/isolation/expected/multiple-row-versions.out
@@ -2,21 +2,27 @@ Parsed test spec with 4 sessions

 starting permutation: rx1 wx2 c2 wx3 ry3 wy4 rz4 c4 c3 wz1 c1
 step rx1: SELECT * FROM t WHERE id = 1000000;
-id             txt
+     id|txt
+-------+---
+1000000|
+(1 row)

-1000000
 step wx2: UPDATE t SET txt = 'b' WHERE id = 1000000;
 step c2: COMMIT;
 step wx3: UPDATE t SET txt = 'c' WHERE id = 1000000;
 step ry3: SELECT * FROM t WHERE id = 500000;
-id             txt
+    id|txt
+------+---
+500000|
+(1 row)

-500000
 step wy4: UPDATE t SET txt = 'd' WHERE id = 500000;
 step rz4: SELECT * FROM t WHERE id = 1;
-id             txt
+id|txt
+--+---
+ 1|
+(1 row)

-1
 step c4: COMMIT;
 step c3: COMMIT;
 step wz1: UPDATE t SET txt = 'a' WHERE id = 1;
diff --git a/src/test/isolation/expected/multixact-no-deadlock.out
b/src/test/isolation/expected/multixact-no-deadlock.out
index 5ba2e7818e..4b9ce7bfc3 100644
--- a/src/test/isolation/expected/multixact-no-deadlock.out
+++ b/src/test/isolation/expected/multixact-no-deadlock.out
@@ -2,23 +2,31 @@ Parsed test spec with 3 sessions

 starting permutation: s1lock s2lock s1svpt s3lock s1lock2 s2c s1c s3c
 step s1lock: SELECT * FROM justthis FOR SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2lock: SELECT * FROM justthis FOR SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s1svpt: SAVEPOINT foo;
 step s3lock: SELECT * FROM justthis FOR UPDATE; <waiting ...>
 step s1lock2: SELECT * FROM justthis FOR SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2c: COMMIT;
 step s1c: COMMIT;
 step s3lock: <... completed>
-value
+value
+-----
+    1
+(1 row)

-1
 step s3c: COMMIT;
diff --git a/src/test/isolation/expected/multixact-no-forget.out b/src/test/isolation/expected/multixact-no-forget.out
index 38466bf837..ce06b38407 100644
--- a/src/test/isolation/expected/multixact-no-forget.out
+++ b/src/test/isolation/expected/multixact-no-forget.out
@@ -2,129 +2,167 @@ Parsed test spec with 3 sessions

 starting permutation: s1_show s1_commit s2_commit
 step s1_show: SELECT current_setting('default_transaction_isolation') <> 'read committed';
-?column?
+?column?
+--------
+f
+(1 row)

-f
 step s1_commit: COMMIT;
 step s2_commit: COMMIT;

 starting permutation: s1_lock s2_update s2_abort s3_forkeyshr s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_abort: ROLLBACK;
 step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_lock s2_update s2_commit s3_forkeyshr s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_commit: COMMIT;
 step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    2
+(1 row)

-2
 step s1_commit: COMMIT;

 starting permutation: s1_lock s2_update s1_commit s3_forkeyshr s2_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s1_commit: COMMIT;
 step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_commit: COMMIT;

 starting permutation: s1_lock s2_update s2_abort s3_fornokeyupd s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_abort: ROLLBACK;
 step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_lock s2_update s2_commit s3_fornokeyupd s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_commit: COMMIT;
 step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE;
-value
+value
+-----
+    2
+(1 row)

-2
 step s1_commit: COMMIT;

 starting permutation: s1_lock s2_update s1_commit s3_fornokeyupd s2_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s1_commit: COMMIT;
 step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; <waiting ...>
 step s2_commit: COMMIT;
 step s3_fornokeyupd: <... completed>
-value
+value
+-----
+    2
+(1 row)

-2

 starting permutation: s1_lock s2_update s2_abort s3_forupd s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_abort: ROLLBACK;
 step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s3_forupd: <... completed>
-value
+value
+-----
+    1
+(1 row)

-1

 starting permutation: s1_lock s2_update s2_commit s3_forupd s1_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s2_commit: COMMIT;
 step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s3_forupd: <... completed>
-value
+value
+-----
+    2
+(1 row)

-2

 starting permutation: s1_lock s2_update s1_commit s3_forupd s2_commit
 step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE;
-value
+value
+-----
+    1
+(1 row)

-1
 step s2_update: UPDATE dont_forget SET value = 2;
 step s1_commit: COMMIT;
 step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...>
 step s2_commit: COMMIT;
 step s3_forupd: <... completed>
-value
+value
+-----
+    2
+(1 row)

-2
diff --git a/src/test/isolation/expected/nowait-2.out b/src/test/isolation/expected/nowait-2.out
index 6e24bbbf26..ba18fa77d4 100644
--- a/src/test/isolation/expected/nowait-2.out
+++ b/src/test/isolation/expected/nowait-2.out
@@ -2,13 +2,17 @@ Parsed test spec with 2 sessions

 starting permutation: s1a s2a s2b s1b s2c
 step s1a: SELECT * FROM foo FOR SHARE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2a: SELECT * FROM foo FOR SHARE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
@@ -16,13 +20,17 @@ step s2c: COMMIT;

 starting permutation: s2a s1a s2b s1b s2c
 step s2a: SELECT * FROM foo FOR SHARE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1a: SELECT * FROM foo FOR SHARE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
@@ -30,13 +38,17 @@ step s2c: COMMIT;

 starting permutation: s2a s2b s1a s1b s2c
 step s2a: SELECT * FROM foo FOR SHARE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1a: SELECT * FROM foo FOR SHARE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
diff --git a/src/test/isolation/expected/nowait-3.out b/src/test/isolation/expected/nowait-3.out
index 844464654a..19a5b680bc 100644
--- a/src/test/isolation/expected/nowait-3.out
+++ b/src/test/isolation/expected/nowait-3.out
@@ -2,16 +2,20 @@ Parsed test spec with 3 sessions

 starting permutation: s1a s2a s3a s1b s2b s3b
 step s1a: SELECT * FROM foo FOR UPDATE;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2a: SELECT * FROM foo FOR UPDATE; <waiting ...>
 step s3a: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
 step s2a: <... completed>
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: COMMIT;
 step s3b: COMMIT;
diff --git a/src/test/isolation/expected/nowait-4.out b/src/test/isolation/expected/nowait-4.out
index 26f59bef94..87558ad613 100644
--- a/src/test/isolation/expected/nowait-4.out
+++ b/src/test/isolation/expected/nowait-4.out
@@ -3,16 +3,20 @@ Parsed test spec with 2 sessions
 starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f
 step s2a: SELECT pg_advisory_lock(0);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1a: SELECT * FROM foo WHERE pg_advisory_lock(0) IS NOT NULL FOR UPDATE NOWAIT; <waiting ...>
 step s2b: UPDATE foo SET data = data;
 step s2c: BEGIN;
 step s2d: UPDATE foo SET data = data;
 step s2e: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1a: <... completed>
 error in steps s2e s1a: ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
diff --git a/src/test/isolation/expected/nowait-5.out b/src/test/isolation/expected/nowait-5.out
index c88aae5ef6..3849d7a8d2 100644
--- a/src/test/isolation/expected/nowait-5.out
+++ b/src/test/isolation/expected/nowait-5.out
@@ -8,8 +8,10 @@ step upd_getlock:
     SELECT pg_advisory_lock(0);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step sl1_exec:
     BEGIN ISOLATION LEVEL READ COMMITTED;
     EXECUTE sl1_run;
@@ -24,14 +26,18 @@ step lk1_doforshare:
     BEGIN ISOLATION LEVEL READ COMMITTED;
     SELECT id FROM test_nowait WHERE id % 2 = 0 FOR SHARE;

-id
+id
+--
+ 2
+(1 row)

-2
 step upd_releaselock:
     SELECT pg_advisory_unlock(0);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step sl1_exec: <... completed>
 error in steps upd_releaselock sl1_exec: ERROR:  could not obtain lock on row in relation "test_nowait"
diff --git a/src/test/isolation/expected/nowait.out b/src/test/isolation/expected/nowait.out
index a6343b4afa..ea1cdf012a 100644
--- a/src/test/isolation/expected/nowait.out
+++ b/src/test/isolation/expected/nowait.out
@@ -2,21 +2,27 @@ Parsed test spec with 2 sessions

 starting permutation: s1a s1b s2a s2b
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1b: COMMIT;
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: COMMIT;

 starting permutation: s1a s2a s1b s2b
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
@@ -24,9 +30,11 @@ step s2b: COMMIT;

 starting permutation: s1a s2a s2b s1b
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s2b: COMMIT;
@@ -34,9 +42,11 @@ step s1b: COMMIT;

 starting permutation: s2a s1a s1b s2b
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s1b: COMMIT;
@@ -44,9 +54,11 @@ step s2b: COMMIT;

 starting permutation: s2a s1a s2b s1b
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
 ERROR:  could not obtain lock on row in relation "foo"
 step s2b: COMMIT;
@@ -54,12 +66,16 @@ step s1b: COMMIT;

 starting permutation: s2a s2b s1a s1b
 step s2a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s2b: COMMIT;
 step s1a: SELECT * FROM foo FOR UPDATE NOWAIT;
-id             data
+id|data
+--+----
+ 1|x
+(1 row)

-1              x
 step s1b: COMMIT;
diff --git a/src/test/isolation/expected/partial-index.out b/src/test/isolation/expected/partial-index.out
index d1f00c9b3c..d6cae902a9 100644
--- a/src/test/isolation/expected/partial-index.out
+++ b/src/test/isolation/expected/partial-index.out
@@ -2,51 +2,57 @@ Parsed test spec with 2 sessions

 starting permutation: rxy1 wx1 c1 wy2 rxy2 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+(9 rows)
+
 step c2: COMMIT;

 starting permutation: rxy1 wx1 wy2 c1 rxy2 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step c1: COMMIT;
@@ -56,87 +62,97 @@ step c2: COMMIT;

 starting permutation: rxy1 wx1 wy2 rxy2 c1 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions

 starting permutation: rxy1 wx1 wy2 rxy2 c2 c1
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions

 starting permutation: rxy1 wy2 wx1 c1 rxy2 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
@@ -146,101 +162,113 @@ step c2: COMMIT;

 starting permutation: rxy1 wy2 wx1 rxy2 c1 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions

 starting permutation: rxy1 wy2 wx1 rxy2 c2 c1
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions

 starting permutation: rxy1 wy2 rxy2 wx1 c1 c2
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -248,33 +276,37 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 wy2 rxy2 wx1 c2 c1
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -282,33 +314,37 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 wy2 rxy2 c2 wx1 c1
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -317,19 +353,21 @@ step c1: COMMIT;
 starting permutation: wy2 rxy1 wx1 c1 rxy2 c2
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
 step rxy2: select * from test_t where val2 = 1;
@@ -339,33 +377,37 @@ step c2: COMMIT;
 starting permutation: wy2 rxy1 wx1 rxy2 c1 c2
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -373,33 +415,37 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy1 wx1 rxy2 c2 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -407,32 +453,36 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy1 rxy2 wx1 c1 c2
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -441,32 +491,36 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy1 rxy2 wx1 c2 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -475,32 +529,36 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy1 rxy2 c2 wx1 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -509,32 +567,36 @@ step c1: COMMIT;
 starting permutation: wy2 rxy2 rxy1 wx1 c1 c2
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -543,32 +605,36 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy2 rxy1 wx1 c2 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -577,32 +643,36 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy2 rxy1 c2 wx1 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-9              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+ 9|a   |   1
+10|a   |   1
+(11 rows)
+
 step c2: COMMIT;
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -611,31 +681,35 @@ step c1: COMMIT;
 starting permutation: wy2 rxy2 c2 rxy1 wx1 c1
 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
 step rxy2: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step c2: COMMIT;
 step rxy1: select * from test_t where val2 = 1;
-id             val1           val2
-
-0              a              1
-1              a              1
-2              a              1
-3              a              1
-4              a              1
-5              a              1
-6              a              1
-7              a              1
-8              a              1
-10             a              1
+id|val1|val2
+--+----+----
+ 0|a   |   1
+ 1|a   |   1
+ 2|a   |   1
+ 3|a   |   1
+ 4|a   |   1
+ 5|a   |   1
+ 6|a   |   1
+ 7|a   |   1
+ 8|a   |   1
+10|a   |   1
+(10 rows)
+
 step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/partition-concurrent-attach.out
b/src/test/isolation/expected/partition-concurrent-attach.out
index 17fac39989..55830bd873 100644
--- a/src/test/isolation/expected/partition-concurrent-attach.out
+++ b/src/test/isolation/expected/partition-concurrent-attach.out
@@ -10,11 +10,13 @@ step s2i: <... completed>
 error in steps s1c s2i: ERROR:  new row for relation "tpart_default" violates partition constraint
 step s2c: commit;
 step s2s: select tableoid::regclass, * from tpart;
-tableoid       i              j
+tableoid|  i|j
+--------+---+---
+tpart_2 |110|xxx
+tpart_2 |120|yyy
+tpart_2 |150|zzz
+(3 rows)

-tpart_2        110            xxx
-tpart_2        120            yyy
-tpart_2        150            zzz

 starting permutation: s1b s1a s2b s2i2 s1c s2c s2s
 step s1b: begin;
@@ -26,11 +28,13 @@ step s2i2: <... completed>
 error in steps s1c s2i2: ERROR:  new row for relation "tpart_default" violates partition constraint
 step s2c: commit;
 step s2s: select tableoid::regclass, * from tpart;
-tableoid       i              j
+tableoid|  i|j
+--------+---+---
+tpart_2 |110|xxx
+tpart_2 |120|yyy
+tpart_2 |150|zzz
+(3 rows)

-tpart_2        110            xxx
-tpart_2        120            yyy
-tpart_2        150            zzz

 starting permutation: s1b s2b s2i s1a s2c s1c s2s
 step s1b: begin;
@@ -42,8 +46,10 @@ step s1a: <... completed>
 error in steps s2c s1a: ERROR:  updated partition constraint for default partition "tpart_default_default" would be
violatedby some row 
 step s1c: commit;
 step s2s: select tableoid::regclass, * from tpart;
-tableoid       i              j
+tableoid             |  i|j
+---------------------+---+---
+tpart_default_default|110|xxx
+tpart_default_default|120|yyy
+tpart_default_default|150|zzz
+(3 rows)

-tpart_default_default110            xxx
-tpart_default_default120            yyy
-tpart_default_default150            zzz
diff --git a/src/test/isolation/expected/partition-key-update-2.out
b/src/test/isolation/expected/partition-key-update-2.out
index 363de0d69c..f054de5ed9 100644
--- a/src/test/isolation/expected/partition-key-update-2.out
+++ b/src/test/isolation/expected/partition-key-update-2.out
@@ -9,10 +9,12 @@ step s2donothing: <... completed>
 step s3donothing: <... completed>
 step s2c: COMMIT;
 step s3select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1
 step s3c: COMMIT;

 starting permutation: s2donothing s1u s3donothing s1c s2c s3select s3c
@@ -23,7 +25,9 @@ step s1c: COMMIT;
 step s3donothing: <... completed>
 step s2c: COMMIT;
 step s3select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+2|initial tuple -> moved by session-1
+(1 row)

-2              initial tuple -> moved by session-1
 step s3c: COMMIT;
diff --git a/src/test/isolation/expected/partition-key-update-3.out
b/src/test/isolation/expected/partition-key-update-3.out
index 42dfe64ad3..ef696e52cb 100644
--- a/src/test/isolation/expected/partition-key-update-3.out
+++ b/src/test/isolation/expected/partition-key-update-3.out
@@ -11,10 +11,12 @@ step s2c: COMMIT;
 step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO
NOTHING;
 step s3c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2beginrr s3beginrr s1u s3donothing s1c s3c s2donothing s2c s2select
 step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -28,10 +30,12 @@ step s3c: COMMIT;
 step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING;
 step s2c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2beginrr s3beginrr s1u s2donothing s3donothing s1c s2c s3c s2select
 step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -46,10 +50,12 @@ error in steps s1c s2donothing s3donothing: ERROR:  could not serialize access d
 step s2c: COMMIT;
 step s3c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2beginrr s3beginrr s1u s3donothing s2donothing s1c s3c s2c s2select
 step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
@@ -64,10 +70,12 @@ error in steps s1c s3donothing s2donothing: ERROR:  could not serialize access d
 step s3c: COMMIT;
 step s2c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2begins s3begins s1u s2donothing s1c s2c s3donothing s3c s2select
 step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -80,10 +88,12 @@ step s2c: COMMIT;
 step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO
NOTHING;
 step s3c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2begins s3begins s1u s3donothing s1c s3c s2donothing s2c s2select
 step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -97,10 +107,12 @@ step s3c: COMMIT;
 step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING;
 step s2c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2begins s3begins s1u s2donothing s3donothing s1c s2c s3c s2select
 step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -115,10 +127,12 @@ error in steps s1c s2donothing s3donothing: ERROR:  could not serialize access d
 step s2c: COMMIT;
 step s3c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1

 starting permutation: s2begins s3begins s1u s3donothing s2donothing s1c s3c s2c s2select
 step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
@@ -133,7 +147,9 @@ error in steps s1c s3donothing s2donothing: ERROR:  could not serialize access d
 step s3c: COMMIT;
 step s2c: COMMIT;
 step s2select: SELECT * FROM foo ORDER BY a;
-a              b
+a|b
+-+-----------------------------------
+1|session-2 donothing
+2|initial tuple -> moved by session-1
+(2 rows)

-1              session-2 donothing
-2              initial tuple -> moved by session-1
diff --git a/src/test/isolation/expected/partition-key-update-4.out
b/src/test/isolation/expected/partition-key-update-4.out
index 774a7faf6c..91fa0417fd 100644
--- a/src/test/isolation/expected/partition-key-update-4.out
+++ b/src/test/isolation/expected/partition-key-update-4.out
@@ -9,9 +9,11 @@ step s2c: COMMIT;
 step s1u: <... completed>
 step s1c: COMMIT;
 step s1s: SELECT tableoid::regclass, * FROM foo ORDER BY a;
-tableoid       a              b
+tableoid|a|b
+--------+-+-------------------
+foo2    |2|ABC update2 update1
+(1 row)

-foo2           2              ABC update2 update1

 starting permutation: s1b s2b s2ut1 s1ut s2c s1c s1st s1stl
 step s1b: BEGIN ISOLATION LEVEL READ COMMITTED;
@@ -22,13 +24,17 @@ step s2c: COMMIT;
 step s1ut: <... completed>
 step s1c: COMMIT;
 step s1st: SELECT tableoid::regclass, * FROM footrg ORDER BY a;
-tableoid       a              b
+tableoid|a|b
+--------+-+-------------------
+footrg2 |2|ABC update2 update1
+(1 row)

-footrg2        2              ABC update2 update1
 step s1stl: SELECT * FROM triglog ORDER BY a;
-a              b
+a|b
+-+-------------------
+1|ABC update2 trigger
+(1 row)

-1              ABC update2 trigger

 starting permutation: s1b s2b s2u2 s1u s2c s1c s1s
 step s1b: BEGIN ISOLATION LEVEL READ COMMITTED;
@@ -39,9 +45,11 @@ step s2c: COMMIT;
 step s1u: <... completed>
 step s1c: COMMIT;
 step s1s: SELECT tableoid::regclass, * FROM foo ORDER BY a;
-tableoid       a              b
+tableoid|a|b
+--------+-+---
+foo1    |1|EFG
+(1 row)

-foo1           1              EFG

 starting permutation: s1b s2b s2ut2 s1ut s2c s1c s1st s1stl
 step s1b: BEGIN ISOLATION LEVEL READ COMMITTED;
@@ -52,9 +60,13 @@ step s2c: COMMIT;
 step s1ut: <... completed>
 step s1c: COMMIT;
 step s1st: SELECT tableoid::regclass, * FROM footrg ORDER BY a;
-tableoid       a              b
+tableoid|a|b
+--------+-+---
+footrg1 |1|EFG
+(1 row)

-footrg1        1              EFG
 step s1stl: SELECT * FROM triglog ORDER BY a;
-a              b
+a|b
+-+-
+(0 rows)

diff --git a/src/test/isolation/expected/plpgsql-toast.out b/src/test/isolation/expected/plpgsql-toast.out
index 213bddad4f..0fee7953ac 100644
--- a/src/test/isolation/expected/plpgsql-toast.out
+++ b/src/test/isolation/expected/plpgsql-toast.out
@@ -2,17 +2,23 @@ Parsed test spec with 2 sessions

 starting permutation: lock assign1 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign1:
 do $$
   declare
@@ -33,24 +39,32 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(x) = 6000
 step assign1: <... completed>

 starting permutation: lock assign2 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign2:
 do $$
   declare
@@ -71,24 +85,32 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(x) = 6000
 step assign2: <... completed>

 starting permutation: lock assign3 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign3:
 do $$
   declare
@@ -110,24 +132,32 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(r) = 6004
 step assign3: <... completed>

 starting permutation: lock assign4 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign4:
 do $$
   declare
@@ -148,24 +178,32 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(r) = 6004
 step assign4: <... completed>

 starting permutation: lock assign5 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign5:
 do $$
   declare
@@ -188,24 +226,32 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(r) = 6002
 step assign5: <... completed>

 starting permutation: lock assign6 vacuum unlock
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 step lock:
     SELECT pg_advisory_lock(1);

 pg_advisory_lock
+----------------
+
+(1 row)

-
 step assign6:
 do $$
   declare
@@ -229,8 +275,10 @@ step unlock:
     SELECT pg_advisory_unlock(1);

 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 s1: NOTICE:  length(r) = 6002
 s1: NOTICE:  length(r) = 9002
 s1: NOTICE:  length(r) = 12002
@@ -238,11 +286,15 @@ step assign6: <... completed>

 starting permutation: fetch-after-commit
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 pg_advisory_unlock_all
+----------------------
+
+(1 row)

-
 s1: NOTICE:  length(t) = 6000
 s1: NOTICE:  length(t) = 9000
 s1: NOTICE:  length(t) = 12000
diff --git a/src/test/isolation/expected/predicate-gin.out b/src/test/isolation/expected/predicate-gin.out
index 77eb5aaff7..c032804804 100644
--- a/src/test/isolation/expected/predicate-gin.out
+++ b/src/test/isolation/expected/predicate-gin.out
@@ -2,13 +2,17 @@ Parsed test spec with 3 sessions

 starting permutation: ra1 ro2 wo1 c1 wa2 c2
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wa2: insert into gin_tbl values (array[1]);
@@ -17,13 +21,17 @@ step c2: commit;

 starting permutation: ro2 ra1 wo1 c1 wa2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wa2: insert into gin_tbl values (array[1]);
@@ -32,13 +40,17 @@ step c2: commit;

 starting permutation: ro2 ra1 wo1 wa2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step wo1: insert into other_tbl values (1);
 step wa2: insert into gin_tbl values (array[1]);
 step c1: commit;
@@ -47,13 +59,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: ra1 ro2 wa2 wo1 c1 c2
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wa2: insert into gin_tbl values (array[1]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -62,13 +78,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rb1 ro2 wo1 c1 wb2 c2
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wb2: insert into gin_tbl values (array[2]);
@@ -77,13 +97,17 @@ step c2: commit;

 starting permutation: ro2 rb1 wo1 c1 wb2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wb2: insert into gin_tbl values (array[2]);
@@ -92,13 +116,17 @@ step c2: commit;

 starting permutation: ro2 rb1 wo1 wb2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step wb2: insert into gin_tbl values (array[2]);
 step c1: commit;
@@ -107,13 +135,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rb1 ro2 wb2 wo1 c1 c2
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wb2: insert into gin_tbl values (array[2]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -122,13 +154,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rc1 ro2 wo1 c1 wc2 c2
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wc2: insert into gin_tbl values (array[800]);
@@ -137,13 +173,17 @@ step c2: commit;

 starting permutation: ro2 rc1 wo1 c1 wc2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wc2: insert into gin_tbl values (array[800]);
@@ -152,13 +192,17 @@ step c2: commit;

 starting permutation: ro2 rc1 wo1 wc2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step wc2: insert into gin_tbl values (array[800]);
 step c1: commit;
@@ -167,13 +211,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rc1 ro2 wc2 wo1 c1 c2
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wc2: insert into gin_tbl values (array[800]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -182,13 +230,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: ra1 ro2 wo1 c1 wb2 c2
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wb2: insert into gin_tbl values (array[2]);
@@ -196,13 +248,17 @@ step c2: commit;

 starting permutation: ro2 ra1 wo1 c1 wc2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wc2: insert into gin_tbl values (array[800]);
@@ -210,13 +266,17 @@ step c2: commit;

 starting permutation: ro2 rb1 wo1 wa2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step wa2: insert into gin_tbl values (array[1]);
 step c1: commit;
@@ -224,13 +284,17 @@ step c2: commit;

 starting permutation: rc1 ro2 wa2 wo1 c1 c2
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wa2: insert into gin_tbl values (array[1]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -238,13 +302,17 @@ step c2: commit;

 starting permutation: rb1 ro2 wo1 c1 wa2 c2
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wa2: insert into gin_tbl values (array[1]);
@@ -252,13 +320,17 @@ step c2: commit;

 starting permutation: ro2 rb1 wo1 c1 wc2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wc2: insert into gin_tbl values (array[800]);
@@ -266,13 +338,17 @@ step c2: commit;

 starting permutation: ro2 ra1 wo1 wb2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step wo1: insert into other_tbl values (1);
 step wb2: insert into gin_tbl values (array[2]);
 step c1: commit;
@@ -280,13 +356,17 @@ step c2: commit;

 starting permutation: rc1 ro2 wb2 wo1 c1 c2
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wb2: insert into gin_tbl values (array[2]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -294,13 +374,17 @@ step c2: commit;

 starting permutation: rc1 ro2 wo1 c1 wa2 c2
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wa2: insert into gin_tbl values (array[1]);
@@ -308,13 +392,17 @@ step c2: commit;

 starting permutation: ro2 rc1 wo1 c1 wb2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rc1: select count(*) from gin_tbl where p @> array[800];
-count
+count
+-----
+    1
+(1 row)

-1
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wb2: insert into gin_tbl values (array[2]);
@@ -322,13 +410,17 @@ step c2: commit;

 starting permutation: ro2 ra1 wo1 wc2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step wo1: insert into other_tbl values (1);
 step wc2: insert into gin_tbl values (array[800]);
 step c1: commit;
@@ -336,13 +428,17 @@ step c2: commit;

 starting permutation: rb1 ro2 wc2 wo1 c1 c2
 step rb1: select count(*) from gin_tbl where p @> array[2];
-count
+count
+-----
+    1
+(1 row)

-1
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wc2: insert into gin_tbl values (array[800]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
@@ -351,13 +447,17 @@ step c2: commit;
 starting permutation: fu ra1 ro2 wo1 c1 wa2 c2
 step fu: alter index ginidx set (fastupdate = on);
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wa2: insert into gin_tbl values (array[1]);
@@ -367,13 +467,17 @@ step c2: commit;
 starting permutation: fu ra1 ro2 wo1 c1 wb2 c2
 step fu: alter index ginidx set (fastupdate = on);
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wb2: insert into gin_tbl values (array[2]);
@@ -382,13 +486,17 @@ step c2: commit;

 starting permutation: ra1 ro2 wo1 c1 fu wa2 c2
 step ra1: select * from gin_tbl where p @> array[1] limit 1;
-p
+p
+---
+{1}
+(1 row)

-{1}
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step fu: alter index ginidx set (fastupdate = on);
@@ -398,13 +506,17 @@ step c2: commit;

 starting permutation: rd1 ro2 wo1 c1 wd2 c2
 step rd1: select count(*) from gin_tbl where p @> array[2000];
-count
+count
+-----
+    0
+(1 row)

-0
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wd2: insert into gin_tbl values (array[2000]);
@@ -413,13 +525,17 @@ step c2: commit;

 starting permutation: ro2 rd1 wo1 c1 wd2 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rd1: select count(*) from gin_tbl where p @> array[2000];
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step c1: commit;
 step wd2: insert into gin_tbl values (array[2000]);
@@ -428,13 +544,17 @@ step c2: commit;

 starting permutation: ro2 rd1 wo1 wd2 c1 c2
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step rd1: select count(*) from gin_tbl where p @> array[2000];
-count
+count
+-----
+    0
+(1 row)

-0
 step wo1: insert into other_tbl values (1);
 step wd2: insert into gin_tbl values (array[2000]);
 step c1: commit;
@@ -443,13 +563,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rd1 ro2 wd2 wo1 c1 c2
 step rd1: select count(*) from gin_tbl where p @> array[2000];
-count
+count
+-----
+    0
+(1 row)

-0
 step ro2: select count(*) from other_tbl;
-count
+count
+-----
+    0
+(1 row)

-0
 step wd2: insert into gin_tbl values (array[2000]);
 step wo1: insert into other_tbl values (1);
 step c1: commit;
diff --git a/src/test/isolation/expected/predicate-gist.out b/src/test/isolation/expected/predicate-gist.out
index 77a27958af..ef5d38630d 100644
--- a/src/test/isolation/expected/predicate-gist.out
+++ b/src/test/isolation/expected/predicate-gist.out
@@ -2,79 +2,99 @@ Parsed test spec with 2 sessions

 starting permutation: rxy1 wx1 c1 rxy2 wy2 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c1: commit;
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2233750
+(1 row)

-2233750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c2: commit;

 starting permutation: rxy2 wy2 c2 rxy1 wx1 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c2: commit;
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+316250
+(1 row)

-316250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c1: commit;

 starting permutation: rxy3 wx3 c1 rxy4 wy4 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c1: commit;
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c2: commit;

 starting permutation: rxy4 wy4 c2 rxy3 wx3 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c2: commit;
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c1: commit;

 starting permutation: rxy1 wx1 rxy2 c1 wy2 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step c1: commit;
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
@@ -83,15 +103,19 @@ step c2: commit;

 starting permutation: rxy1 wx1 rxy2 wy2 c1 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c1: commit;
@@ -100,15 +124,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 wx1 rxy2 wy2 c2 c1
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c2: commit;
@@ -117,13 +145,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wx1 c1 wy2 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c1: commit;
@@ -134,13 +166,17 @@ step c2: commit;

 starting permutation: rxy1 rxy2 wx1 wy2 c1 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step wy2: insert into gist_point_tbl (id, p)
@@ -151,13 +187,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wx1 wy2 c2 c1
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step wy2: insert into gist_point_tbl (id, p)
@@ -168,13 +208,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 wx1 c1 c2
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step wx1: insert into gist_point_tbl (id, p)
@@ -185,13 +229,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 wx1 c2 c1
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step wx1: insert into gist_point_tbl (id, p)
@@ -202,13 +250,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 c2 wx1 c1
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c2: commit;
@@ -219,13 +271,17 @@ step c1: commit;

 starting permutation: rxy2 rxy1 wx1 c1 wy2 c2
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c1: commit;
@@ -236,13 +292,17 @@ step c2: commit;

 starting permutation: rxy2 rxy1 wx1 wy2 c1 c2
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step wy2: insert into gist_point_tbl (id, p)
@@ -253,13 +313,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wx1 wy2 c2 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step wy2: insert into gist_point_tbl (id, p)
@@ -270,13 +334,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 wx1 c1 c2
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step wx1: insert into gist_point_tbl (id, p)
@@ -287,13 +355,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 wx1 c2 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step wx1: insert into gist_point_tbl (id, p)
@@ -304,13 +376,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 c2 wx1 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step c2: commit;
@@ -321,15 +397,19 @@ step c1: commit;

 starting permutation: rxy2 wy2 rxy1 wx1 c1 c2
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c1: commit;
@@ -338,15 +418,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 wy2 rxy1 wx1 c2 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
 step c2: commit;
@@ -355,15 +439,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 wy2 rxy1 c2 wx1 c1
 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500);
-sum
+    sum
+-------
+2188750
+(1 row)

-2188750
 step wy2: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(1, 5) g;
 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500);
-sum
+   sum
+------
+311250
+(1 row)

-311250
 step c2: commit;
 step wx1: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(15, 20) g;
@@ -372,15 +460,19 @@ step c1: commit;

 starting permutation: rxy3 wx3 rxy4 c1 wy4 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step c1: commit;
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
@@ -388,15 +480,19 @@ step c2: commit;

 starting permutation: rxy3 wx3 rxy4 wy4 c1 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c1: commit;
@@ -404,15 +500,19 @@ step c2: commit;

 starting permutation: rxy3 wx3 rxy4 wy4 c2 c1
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c2: commit;
@@ -420,13 +520,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wx3 c1 wy4 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c1: commit;
@@ -436,13 +540,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wx3 wy4 c1 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step wy4: insert into gist_point_tbl (id, p)
@@ -452,13 +560,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wx3 wy4 c2 c1
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step wy4: insert into gist_point_tbl (id, p)
@@ -468,13 +580,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wy4 wx3 c1 c2
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step wx3: insert into gist_point_tbl (id, p)
@@ -484,13 +600,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wy4 wx3 c2 c1
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step wx3: insert into gist_point_tbl (id, p)
@@ -500,13 +620,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wy4 c2 wx3 c1
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c2: commit;
@@ -516,13 +640,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wx3 c1 wy4 c2
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c1: commit;
@@ -532,13 +660,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wx3 wy4 c1 c2
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step wy4: insert into gist_point_tbl (id, p)
@@ -548,13 +680,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wx3 wy4 c2 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step wy4: insert into gist_point_tbl (id, p)
@@ -564,13 +700,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wy4 wx3 c1 c2
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step wx3: insert into gist_point_tbl (id, p)
@@ -580,13 +720,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wy4 wx3 c2 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step wx3: insert into gist_point_tbl (id, p)
@@ -596,13 +740,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wy4 c2 wx3 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step c2: commit;
@@ -612,15 +760,19 @@ step c1: commit;

 starting permutation: rxy4 wy4 rxy3 wx3 c1 c2
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c1: commit;
@@ -628,15 +780,19 @@ step c2: commit;

 starting permutation: rxy4 wy4 rxy3 wx3 c2 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
 step c2: commit;
@@ -644,15 +800,19 @@ step c1: commit;

 starting permutation: rxy4 wy4 rxy3 c2 wx3 c1
 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000);
-sum
+  sum
+-----
+49500
+(1 row)

-49500
 step wy4: insert into gist_point_tbl (id, p)
               select g, point(g*50, g*50) from generate_series(1, 20) g;
 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000);
-sum
+    sum
+-------
+3202000
+(1 row)

-3202000
 step c2: commit;
 step wx3: insert into gist_point_tbl (id, p)
               select g, point(g*500, g*500) from generate_series(12, 18) g;
diff --git a/src/test/isolation/expected/predicate-hash.out b/src/test/isolation/expected/predicate-hash.out
index 53e500fd26..2009252dca 100644
--- a/src/test/isolation/expected/predicate-hash.out
+++ b/src/test/isolation/expected/predicate-hash.out
@@ -2,79 +2,99 @@ Parsed test spec with 2 sessions

 starting permutation: rxy1 wx1 c1 rxy2 wy2 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c1: commit;
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+600
+(1 row)

-600
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c2: commit;

 starting permutation: rxy2 wy2 c2 rxy1 wx1 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c2: commit;
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+400
+(1 row)

-400
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c1: commit;

 starting permutation: rxy3 wx3 c1 rxy4 wy4 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c1: commit;
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c2: commit;

 starting permutation: rxy4 wy4 c2 rxy3 wx3 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c2: commit;
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c1: commit;

 starting permutation: rxy1 wx1 rxy2 c1 wy2 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step c1: commit;
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
@@ -83,15 +103,19 @@ step c2: commit;

 starting permutation: rxy1 wx1 rxy2 wy2 c1 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c1: commit;
@@ -100,15 +124,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 wx1 rxy2 wy2 c2 c1
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c2: commit;
@@ -117,13 +145,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wx1 c1 wy2 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c1: commit;
@@ -134,13 +166,17 @@ step c2: commit;

 starting permutation: rxy1 rxy2 wx1 wy2 c1 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step wy2: insert into hash_tbl (id, p)
@@ -151,13 +187,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wx1 wy2 c2 c1
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step wy2: insert into hash_tbl (id, p)
@@ -168,13 +208,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 wx1 c1 c2
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step wx1: insert into hash_tbl (id, p)
@@ -185,13 +229,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 wx1 c2 c1
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step wx1: insert into hash_tbl (id, p)
@@ -202,13 +250,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy1 rxy2 wy2 c2 wx1 c1
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c2: commit;
@@ -219,13 +271,17 @@ step c1: commit;

 starting permutation: rxy2 rxy1 wx1 c1 wy2 c2
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c1: commit;
@@ -236,13 +292,17 @@ step c2: commit;

 starting permutation: rxy2 rxy1 wx1 wy2 c1 c2
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step wy2: insert into hash_tbl (id, p)
@@ -253,13 +313,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wx1 wy2 c2 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step wy2: insert into hash_tbl (id, p)
@@ -270,13 +334,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 wx1 c1 c2
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step wx1: insert into hash_tbl (id, p)
@@ -287,13 +355,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 wx1 c2 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step wx1: insert into hash_tbl (id, p)
@@ -304,13 +376,17 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 rxy1 wy2 c2 wx1 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step c2: commit;
@@ -321,15 +397,19 @@ step c1: commit;

 starting permutation: rxy2 wy2 rxy1 wx1 c1 c2
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c1: commit;
@@ -338,15 +418,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 wy2 rxy1 wx1 c2 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
 step c2: commit;
@@ -355,15 +439,19 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rxy2 wy2 rxy1 c2 wx1 c1
 step rxy2: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy2: insert into hash_tbl (id, p)
               select g, 20 from generate_series(51, 60) g;
 step rxy1: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step c2: commit;
 step wx1: insert into hash_tbl (id, p)
               select g, 30 from generate_series(41, 50) g;
@@ -372,15 +460,19 @@ step c1: commit;

 starting permutation: rxy3 wx3 rxy4 c1 wy4 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step c1: commit;
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
@@ -388,15 +480,19 @@ step c2: commit;

 starting permutation: rxy3 wx3 rxy4 wy4 c1 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c1: commit;
@@ -404,15 +500,19 @@ step c2: commit;

 starting permutation: rxy3 wx3 rxy4 wy4 c2 c1
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c2: commit;
@@ -420,13 +520,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wx3 c1 wy4 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c1: commit;
@@ -436,13 +540,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wx3 wy4 c1 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step wy4: insert into hash_tbl (id, p)
@@ -452,13 +560,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wx3 wy4 c2 c1
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step wy4: insert into hash_tbl (id, p)
@@ -468,13 +580,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wy4 wx3 c1 c2
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step wx3: insert into hash_tbl (id, p)
@@ -484,13 +600,17 @@ step c2: commit;

 starting permutation: rxy3 rxy4 wy4 wx3 c2 c1
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step wx3: insert into hash_tbl (id, p)
@@ -500,13 +620,17 @@ step c1: commit;

 starting permutation: rxy3 rxy4 wy4 c2 wx3 c1
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c2: commit;
@@ -516,13 +640,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wx3 c1 wy4 c2
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c1: commit;
@@ -532,13 +660,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wx3 wy4 c1 c2
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step wy4: insert into hash_tbl (id, p)
@@ -548,13 +680,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wx3 wy4 c2 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step wy4: insert into hash_tbl (id, p)
@@ -564,13 +700,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wy4 wx3 c1 c2
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step wx3: insert into hash_tbl (id, p)
@@ -580,13 +720,17 @@ step c2: commit;

 starting permutation: rxy4 rxy3 wy4 wx3 c2 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step wx3: insert into hash_tbl (id, p)
@@ -596,13 +740,17 @@ step c1: commit;

 starting permutation: rxy4 rxy3 wy4 c2 wx3 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step c2: commit;
@@ -612,15 +760,19 @@ step c1: commit;

 starting permutation: rxy4 wy4 rxy3 wx3 c1 c2
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c1: commit;
@@ -628,15 +780,19 @@ step c2: commit;

 starting permutation: rxy4 wy4 rxy3 wx3 c2 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
 step c2: commit;
@@ -644,15 +800,19 @@ step c1: commit;

 starting permutation: rxy4 wy4 rxy3 c2 wx3 c1
 step rxy4: select sum(p) from hash_tbl where p=30;
-sum
+sum
+---
+300
+(1 row)

-300
 step wy4: insert into hash_tbl (id, p)
               select g, 60 from generate_series(51, 60) g;
 step rxy3: select sum(p) from hash_tbl where p=20;
-sum
+sum
+---
+200
+(1 row)

-200
 step c2: commit;
 step wx3: insert into hash_tbl (id, p)
               select g, 50 from generate_series(41, 50) g;
diff --git a/src/test/isolation/expected/predicate-lock-hot-tuple.out
b/src/test/isolation/expected/predicate-lock-hot-tuple.out
index d1c69bbbd0..d316edbdaa 100644
--- a/src/test/isolation/expected/predicate-lock-hot-tuple.out
+++ b/src/test/isolation/expected/predicate-lock-hot-tuple.out
@@ -4,15 +4,19 @@ starting permutation: b1 b2 r1 r2 w1 w2 c1 c2
 step b1: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step b2: BEGIN ISOLATION LEVEL SERIALIZABLE;
 step r1: SELECT * FROM test WHERE i IN (5, 7)
-i              t
+i|t
+-+----------------
+5|apple
+7|pear_hot_updated
+(2 rows)

-5              apple
-7              pear_hot_updated
 step r2: SELECT * FROM test WHERE i IN (5, 7)
-i              t
+i|t
+-+----------------
+5|apple
+7|pear_hot_updated
+(2 rows)

-5              apple
-7              pear_hot_updated
 step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
 step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/project-manager.out b/src/test/isolation/expected/project-manager.out
index f85f5136ec..902d188b70 100644
--- a/src/test/isolation/expected/project-manager.out
+++ b/src/test/isolation/expected/project-manager.out
@@ -2,28 +2,36 @@ Parsed test spec with 2 sessions

 starting permutation: rx1 wy1 c1 ry2 wx2 c2
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step c1: COMMIT;
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step c2: COMMIT;

 starting permutation: rx1 wy1 ry2 c1 wx2 c2
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step c1: COMMIT;
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step c1: COMMIT;
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
@@ -76,13 +96,17 @@ step c2: COMMIT;

 starting permutation: rx1 ry2 wy1 wx2 c1 c2
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step c2: COMMIT;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
@@ -151,13 +191,17 @@ step c1: COMMIT;

 starting permutation: ry2 rx1 wy1 c1 wx2 c2
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step c1: COMMIT;
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
@@ -166,13 +210,17 @@ step c2: COMMIT;

 starting permutation: ry2 rx1 wy1 wx2 c1 c2
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step c2: COMMIT;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
@@ -241,14 +305,18 @@ step c1: COMMIT;

 starting permutation: ry2 wx2 rx1 wy1 c1 c2
 step ry2: SELECT count(*) FROM project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    1
+(1 row)

-1
 step c2: COMMIT;
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 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 project WHERE project_manager = 1;
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: UPDATE person SET is_project_manager = false WHERE person_id = 1;
 step c2: COMMIT;
 step rx1: SELECT count(*) FROM person WHERE person_id = 1 AND is_project_manager;
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO project VALUES (101, 'Build Great Wall', 1);
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/read-only-anomaly-2.out b/src/test/isolation/expected/read-only-anomaly-2.out
index f43aa6a299..543ae89747 100644
--- a/src/test/isolation/expected/read-only-anomaly-2.out
+++ b/src/test/isolation/expected/read-only-anomaly-2.out
@@ -2,17 +2,23 @@ Parsed test spec with 3 sessions

 starting permutation: s2rx s2ry s1ry s1wy s1c s2wx s2c s3c
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
@@ -21,24 +27,32 @@ step s3c: COMMIT;

 starting permutation: s2rx s2ry s1ry s1wy s1c s3r s3c s2wx
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s3r: SELECT id, balance FROM bank_account WHERE id IN ('X', 'Y') ORDER BY id;
-id             balance
+id|balance
+--+-------
+X |      0
+Y |     20
+(2 rows)

-X              0
-Y              20
 step s3c: COMMIT;
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
 ERROR:  could not serialize access due to read/write dependencies among transactions
diff --git a/src/test/isolation/expected/read-only-anomaly-3.out b/src/test/isolation/expected/read-only-anomaly-3.out
index 1c10ad7ebf..4f7d3f863d 100644
--- a/src/test/isolation/expected/read-only-anomaly-3.out
+++ b/src/test/isolation/expected/read-only-anomaly-3.out
@@ -2,25 +2,33 @@ Parsed test spec with 3 sessions

 starting permutation: s2rx s2ry s1ry s1wy s1c s3r s2wx s2c s3c
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s3r: SELECT id, balance FROM bank_account WHERE id IN ('X', 'Y') ORDER BY id; <waiting ...>
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
 step s2c: COMMIT;
 step s3r: <... completed>
-id             balance
+id|balance
+--+-------
+X |    -11
+Y |     20
+(2 rows)

-X              -11
-Y              20
 step s3c: COMMIT;
diff --git a/src/test/isolation/expected/read-only-anomaly.out b/src/test/isolation/expected/read-only-anomaly.out
index d40425df28..96df5e2db5 100644
--- a/src/test/isolation/expected/read-only-anomaly.out
+++ b/src/test/isolation/expected/read-only-anomaly.out
@@ -2,24 +2,32 @@ Parsed test spec with 3 sessions

 starting permutation: s2rx s2ry s1ry s1wy s1c s3r s2wx s2c s3c
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s3r: SELECT id, balance FROM bank_account WHERE id IN ('X', 'Y') ORDER BY id;
-id             balance
+id|balance
+--+-------
+X |      0
+Y |     20
+(2 rows)

-X              0
-Y              20
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
 step s2c: COMMIT;
 step s3c: COMMIT;
diff --git a/src/test/isolation/expected/read-write-unique-2.out b/src/test/isolation/expected/read-write-unique-2.out
index 5e27f0adfd..664e6e803b 100644
--- a/src/test/isolation/expected/read-write-unique-2.out
+++ b/src/test/isolation/expected/read-write-unique-2.out
@@ -2,10 +2,14 @@ Parsed test spec with 2 sessions

 starting permutation: r1 r2 w1 w2 c1 c2
 step r1: SELECT * FROM test WHERE i = 42;
-i
+i
+-
+(0 rows)

 step r2: SELECT * FROM test WHERE i = 42;
-i
+i
+-
+(0 rows)

 step w1: INSERT INTO test VALUES (42);
 step w2: INSERT INTO test VALUES (42); <waiting ...>
@@ -16,14 +20,18 @@ step c2: COMMIT;

 starting permutation: r1 w1 c1 r2 w2 c2
 step r1: SELECT * FROM test WHERE i = 42;
-i
+i
+-
+(0 rows)

 step w1: INSERT INTO test VALUES (42);
 step c1: COMMIT;
 step r2: SELECT * FROM test WHERE i = 42;
-i
+ i
+--
+42
+(1 row)

-42
 step w2: INSERT INTO test VALUES (42);
 ERROR:  duplicate key value violates unique constraint "test_pkey"
 step c2: COMMIT;
diff --git a/src/test/isolation/expected/read-write-unique-3.out b/src/test/isolation/expected/read-write-unique-3.out
index edd3558930..ec47fa13fe 100644
--- a/src/test/isolation/expected/read-write-unique-3.out
+++ b/src/test/isolation/expected/read-write-unique-3.out
@@ -2,9 +2,11 @@ Parsed test spec with 2 sessions

 starting permutation: rw1 rw2 c1 c2
 step rw1: SELECT insert_unique(1, '1');
-insert_unique
+insert_unique
+-------------
+
+(1 row)

-
 step rw2: SELECT insert_unique(1, '2'); <waiting ...>
 step c1: COMMIT;
 step rw2: <... completed>
diff --git a/src/test/isolation/expected/read-write-unique-4.out b/src/test/isolation/expected/read-write-unique-4.out
index 64ff157513..4c37c3d4d9 100644
--- a/src/test/isolation/expected/read-write-unique-4.out
+++ b/src/test/isolation/expected/read-write-unique-4.out
@@ -2,13 +2,17 @@ Parsed test spec with 2 sessions

 starting permutation: r1 r2 w1 w2 c1 c2
 step r1: SELECT COALESCE(MAX(invoice_number) + 1, 1) FROM invoice WHERE year = 2016;
-coalesce
+coalesce
+--------
+       3
+(1 row)

-3
 step r2: SELECT COALESCE(MAX(invoice_number) + 1, 1) FROM invoice WHERE year = 2016;
-coalesce
+coalesce
+--------
+       3
+(1 row)

-3
 step w1: INSERT INTO invoice VALUES (2016, 3);
 step w2: INSERT INTO invoice VALUES (2016, 3); <waiting ...>
 step c1: COMMIT;
@@ -18,9 +22,11 @@ step c2: COMMIT;

 starting permutation: r1 w1 w2 c1 c2
 step r1: SELECT COALESCE(MAX(invoice_number) + 1, 1) FROM invoice WHERE year = 2016;
-coalesce
+coalesce
+--------
+       3
+(1 row)

-3
 step w1: INSERT INTO invoice VALUES (2016, 3);
 step w2: INSERT INTO invoice VALUES (2016, 3); <waiting ...>
 step c1: COMMIT;
@@ -30,9 +36,11 @@ step c2: COMMIT;

 starting permutation: r2 w1 w2 c1 c2
 step r2: SELECT COALESCE(MAX(invoice_number) + 1, 1) FROM invoice WHERE year = 2016;
-coalesce
+coalesce
+--------
+       3
+(1 row)

-3
 step w1: INSERT INTO invoice VALUES (2016, 3);
 step w2: INSERT INTO invoice VALUES (2016, 3); <waiting ...>
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/read-write-unique.out b/src/test/isolation/expected/read-write-unique.out
index fb32ec3261..e77fb9e2cf 100644
--- a/src/test/isolation/expected/read-write-unique.out
+++ b/src/test/isolation/expected/read-write-unique.out
@@ -2,10 +2,14 @@ Parsed test spec with 2 sessions

 starting permutation: r1 r2 w1 w2 c1 c2
 step r1: SELECT * FROM test;
-i
+i
+-
+(0 rows)

 step r2: SELECT * FROM test;
-i
+i
+-
+(0 rows)

 step w1: INSERT INTO test VALUES (42);
 step w2: INSERT INTO test VALUES (42); <waiting ...>
@@ -16,14 +20,18 @@ step c2: COMMIT;

 starting permutation: r1 w1 c1 r2 w2 c2
 step r1: SELECT * FROM test;
-i
+i
+-
+(0 rows)

 step w1: INSERT INTO test VALUES (42);
 step c1: COMMIT;
 step r2: SELECT * FROM test;
-i
+ i
+--
+42
+(1 row)

-42
 step w2: INSERT INTO test VALUES (42);
 ERROR:  duplicate key value violates unique constraint "test_pkey"
 step c2: COMMIT;
diff --git a/src/test/isolation/expected/receipt-report.out b/src/test/isolation/expected/receipt-report.out
index bc68d676a0..1f2501815f 100644
--- a/src/test/isolation/expected/receipt-report.out
+++ b/src/test/isolation/expected/receipt-report.out
@@ -6,15 +6,19 @@ step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 c1 wx2 rx3 c2 ry3 c3
@@ -22,16 +26,20 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 c1 wx2 rx3 ry3 c2 c3
@@ -39,15 +47,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -56,15 +68,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -72,33 +88,41 @@ starting permutation: rxwy1 c1 rx3 wx2 c2 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 c1 rx3 wx2 ry3 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -106,16 +130,20 @@ starting permutation: rxwy1 c1 rx3 wx2 ry3 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -123,15 +151,19 @@ starting permutation: rxwy1 c1 rx3 ry3 wx2 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;
@@ -140,15 +172,19 @@ starting permutation: rxwy1 c1 rx3 ry3 wx2 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;
@@ -157,15 +193,19 @@ starting permutation: rxwy1 c1 rx3 ry3 c3 wx2 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -176,15 +216,19 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 wx2 c1 rx3 c2 ry3 c3
@@ -192,16 +236,20 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 wx2 c1 rx3 ry3 c2 c3
@@ -209,15 +257,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -226,15 +278,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -244,15 +300,19 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: rxwy1 wx2 c2 rx3 c1 ry3 c3
@@ -260,9 +320,11 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -273,14 +335,18 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
 step c3: COMMIT;
@@ -290,14 +356,18 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -306,31 +376,39 @@ starting permutation: rxwy1 wx2 rx3 c1 c2 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rxwy1 wx2 rx3 c1 ry3 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -338,15 +416,19 @@ starting permutation: rxwy1 wx2 rx3 c1 ry3 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -354,31 +436,39 @@ starting permutation: rxwy1 wx2 rx3 c2 c1 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rxwy1 wx2 rx3 c2 ry3 c1 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

@@ -386,15 +476,19 @@ starting permutation: rxwy1 wx2 rx3 c2 ry3 c3 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

@@ -402,14 +496,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c1 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;
@@ -418,14 +516,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c1 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -434,14 +536,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c2 c1 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -450,14 +556,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c2 c3 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -466,14 +576,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c3 c1 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -482,14 +596,18 @@ starting permutation: rxwy1 wx2 rx3 ry3 c3 c2 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -497,63 +615,79 @@ step c1: COMMIT;
 starting permutation: rxwy1 rx3 c1 wx2 c2 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 c1 wx2 ry3 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 c1 wx2 ry3 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rxwy1 rx3 c1 ry3 wx2 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;
@@ -561,15 +695,19 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 c1 ry3 wx2 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;
@@ -577,15 +715,19 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 c1 ry3 c3 wx2 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -593,111 +735,139 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 wx2 c1 c2 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 wx2 c1 ry3 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 wx2 c1 ry3 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rxwy1 rx3 wx2 c2 c1 ry3 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 wx2 c2 ry3 c1 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rxwy1 rx3 wx2 c2 ry3 c3 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rxwy1 rx3 wx2 ry3 c1 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;
@@ -705,15 +875,19 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 wx2 ry3 c1 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -721,15 +895,19 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 wx2 ry3 c2 c1 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -737,15 +915,19 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 wx2 ry3 c2 c3 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -753,15 +935,19 @@ step c1: COMMIT;
 starting permutation: rxwy1 rx3 wx2 ry3 c3 c1 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -769,15 +955,19 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 wx2 ry3 c3 c2 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -785,14 +975,18 @@ step c1: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c1 wx2 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -801,14 +995,18 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c1 wx2 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
@@ -817,14 +1015,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c1 c3 wx2 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -833,14 +1035,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c1 c2 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c2: COMMIT;
@@ -849,14 +1055,18 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c1 c3 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c3: COMMIT;
@@ -865,14 +1075,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c2 c1 c3
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c1: COMMIT;
@@ -881,14 +1095,18 @@ step c3: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c2 c3 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;
@@ -897,14 +1115,18 @@ step c1: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c3 c1 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c1: COMMIT;
@@ -913,14 +1135,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 wx2 c3 c2 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;
@@ -929,14 +1155,18 @@ step c1: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c3 c1 wx2 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -945,14 +1175,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c3 wx2 c1 c2
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
@@ -961,14 +1195,18 @@ step c2: COMMIT;
 starting permutation: rxwy1 rx3 ry3 c3 wx2 c2 c1
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -980,15 +1218,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step c1: COMMIT;
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: wx2 rxwy1 c1 rx3 c2 ry3 c3
@@ -996,16 +1238,20 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: wx2 rxwy1 c1 rx3 ry3 c2 c3
@@ -1013,15 +1259,19 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -1030,15 +1280,19 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -1048,15 +1302,19 @@ step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k
 step c2: COMMIT;
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+         3|  12-22-2008|  4.00
+(3 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
-3              12-22-2008     4.00
 step c3: COMMIT;

 starting permutation: wx2 rxwy1 c2 rx3 c1 ry3 c3
@@ -1064,9 +1322,11 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -1077,14 +1337,18 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
 step c3: COMMIT;
@@ -1094,14 +1358,18 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -1110,31 +1378,39 @@ starting permutation: wx2 rxwy1 rx3 c1 c2 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 rxwy1 rx3 c1 ry3 c2 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

@@ -1142,15 +1418,19 @@ starting permutation: wx2 rxwy1 rx3 c1 ry3 c3 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

@@ -1158,31 +1438,39 @@ starting permutation: wx2 rxwy1 rx3 c2 c1 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 rxwy1 rx3 c2 ry3 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

@@ -1190,15 +1478,19 @@ starting permutation: wx2 rxwy1 rx3 c2 ry3 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

@@ -1206,14 +1498,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c1 c2 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;
@@ -1222,14 +1518,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c1 c3 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -1238,14 +1538,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c2 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -1254,14 +1558,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c2 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -1270,14 +1578,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c3 c1 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -1286,14 +1598,18 @@ starting permutation: wx2 rxwy1 rx3 ry3 c3 c2 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -1304,14 +1620,18 @@ step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 c2 rxwy1 rx3 c1 ry3 c3
@@ -1319,15 +1639,19 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 c2 rxwy1 rx3 ry3 c1 c3
@@ -1335,14 +1659,18 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

@@ -1351,14 +1679,18 @@ step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

@@ -1366,31 +1698,39 @@ starting permutation: wx2 c2 rx3 rxwy1 c1 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 c2 rx3 rxwy1 ry3 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

@@ -1398,15 +1738,19 @@ starting permutation: wx2 c2 rx3 rxwy1 ry3 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

@@ -1414,14 +1758,18 @@ starting permutation: wx2 c2 rx3 ry3 rxwy1 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -1430,14 +1778,18 @@ starting permutation: wx2 c2 rx3 ry3 rxwy1 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -1446,14 +1798,18 @@ starting permutation: wx2 c2 rx3 ry3 c3 rxwy1 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-23-2008
+(1 row)

-receipt        12-23-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -1461,111 +1817,139 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 rxwy1 c1 c2 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 rx3 rxwy1 c1 ry3 c2 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: wx2 rx3 rxwy1 c1 ry3 c3 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: wx2 rx3 rxwy1 c2 c1 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 rx3 rxwy1 c2 ry3 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: wx2 rx3 rxwy1 c2 ry3 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: wx2 rx3 rxwy1 ry3 c1 c2 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;
@@ -1573,15 +1957,19 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 rxwy1 ry3 c1 c3 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -1589,15 +1977,19 @@ step c2: COMMIT;
 starting permutation: wx2 rx3 rxwy1 ry3 c2 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -1605,15 +1997,19 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 rxwy1 ry3 c2 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -1621,15 +2017,19 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 rxwy1 ry3 c3 c1 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -1637,15 +2037,19 @@ step c2: COMMIT;
 starting permutation: wx2 rx3 rxwy1 ry3 c3 c2 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -1653,63 +2057,79 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 c2 rxwy1 c1 ry3 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: wx2 rx3 c2 rxwy1 ry3 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: wx2 rx3 c2 rxwy1 ry3 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: wx2 rx3 c2 ry3 rxwy1 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -1717,15 +2137,19 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 c2 ry3 rxwy1 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -1733,15 +2157,19 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 c2 ry3 c3 rxwy1 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -1749,14 +2177,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c1 c2 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c2: COMMIT;
@@ -1765,14 +2197,18 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c1 c3 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -1781,14 +2217,18 @@ step c2: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c2 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c1: COMMIT;
@@ -1797,14 +2237,18 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c2 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c3: COMMIT;
@@ -1813,14 +2257,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c3 c1 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -1829,14 +2277,18 @@ step c2: COMMIT;
 starting permutation: wx2 rx3 ry3 rxwy1 c3 c2 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c2: COMMIT;
@@ -1845,14 +2297,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 c2 rxwy1 c1 c3
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -1861,14 +2317,18 @@ step c3: COMMIT;
 starting permutation: wx2 rx3 ry3 c2 rxwy1 c3 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
@@ -1877,14 +2337,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 c2 c3 rxwy1 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -1893,14 +2357,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 c3 rxwy1 c1 c2
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -1909,14 +2377,18 @@ step c2: COMMIT;
 starting permutation: wx2 rx3 ry3 c3 rxwy1 c2 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
@@ -1925,14 +2397,18 @@ step c1: COMMIT;
 starting permutation: wx2 rx3 ry3 c3 c2 rxwy1 c1
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -1940,303 +2416,379 @@ step c1: COMMIT;

 starting permutation: rx3 rxwy1 c1 wx2 c2 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 c1 wx2 ry3 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 c1 wx2 ry3 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 c1 ry3 wx2 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 c1 ry3 wx2 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 c1 ry3 c3 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c1 c2 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c1 ry3 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c1 ry3 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c2 c1 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c2 ry3 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 c2 ry3 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 rxwy1 wx2 ry3 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c1 wx2 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -2244,15 +2796,19 @@ step c3: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c1 wx2 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
@@ -2260,15 +2816,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c1 c3 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -2276,15 +2836,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c2: COMMIT;
@@ -2292,15 +2856,19 @@ step c3: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
 step c3: COMMIT;
@@ -2308,15 +2876,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c1: COMMIT;
@@ -2324,15 +2896,19 @@ step c3: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;
@@ -2340,15 +2916,19 @@ step c1: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c1: COMMIT;
@@ -2356,15 +2936,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 wx2 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;
@@ -2372,15 +2956,19 @@ step c1: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c3 c1 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -2388,15 +2976,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c3 wx2 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
@@ -2404,15 +2996,19 @@ step c2: COMMIT;

 starting permutation: rx3 rxwy1 ry3 c3 wx2 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -2420,303 +3016,379 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c1 c2 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c1 ry3 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c1 ry3 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c2 c1 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c2 ry3 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 c2 ry3 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c2: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;

 starting permutation: rx3 wx2 rxwy1 ry3 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 wx2 c2 rxwy1 c1 ry3 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;

 starting permutation: rx3 wx2 c2 rxwy1 ry3 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 c2 rxwy1 ry3 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 wx2 c2 ry3 rxwy1 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;

 starting permutation: rx3 wx2 c2 ry3 rxwy1 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;

 starting permutation: rx3 wx2 c2 ry3 c3 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c2: COMMIT;
@@ -2724,15 +3396,19 @@ step c3: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -2740,15 +3416,19 @@ step c2: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c1: COMMIT;
@@ -2756,15 +3436,19 @@ step c3: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
 step c3: COMMIT;
@@ -2772,15 +3456,19 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -2788,15 +3476,19 @@ step c2: COMMIT;

 starting permutation: rx3 wx2 ry3 rxwy1 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c2: COMMIT;
@@ -2804,15 +3496,19 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 c2 rxwy1 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -2820,15 +3516,19 @@ step c3: COMMIT;

 starting permutation: rx3 wx2 ry3 c2 rxwy1 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
@@ -2836,15 +3536,19 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 c2 c3 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c2: COMMIT;
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -2852,15 +3556,19 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 c3 rxwy1 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -2868,15 +3576,19 @@ step c2: COMMIT;

 starting permutation: rx3 wx2 ry3 c3 rxwy1 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
@@ -2884,15 +3596,19 @@ step c1: COMMIT;

 starting permutation: rx3 wx2 ry3 c3 c2 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -2900,14 +3616,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c1 wx2 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -2916,14 +3636,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c1 wx2 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -2932,14 +3656,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c1 c3 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -2948,14 +3676,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
@@ -2964,14 +3696,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c1: COMMIT;
@@ -2980,14 +3716,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -2996,14 +3736,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
@@ -3012,14 +3756,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
@@ -3028,14 +3776,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 wx2 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
@@ -3044,14 +3796,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c3 c1 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -3060,14 +3816,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c3 wx2 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -3076,14 +3836,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 rxwy1 c3 wx2 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -3092,14 +3856,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c1 c2 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -3108,14 +3876,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c1 c3 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -3124,14 +3896,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c2 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
@@ -3140,14 +3916,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c2 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c2: COMMIT;
@@ -3156,14 +3936,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c3 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
@@ -3172,14 +3956,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 wx2 rxwy1 c3 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c3: COMMIT;
@@ -3188,14 +3976,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 c2 rxwy1 c1 c3
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3204,14 +3996,18 @@ step c3: COMMIT;

 starting permutation: rx3 ry3 wx2 c2 rxwy1 c3 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3220,14 +4016,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 c2 c3 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
 step c3: COMMIT;
@@ -3236,14 +4036,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 c3 rxwy1 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3252,14 +4056,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 wx2 c3 rxwy1 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3268,14 +4076,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 wx2 c3 c2 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c3: COMMIT;
 step c2: COMMIT;
@@ -3284,14 +4096,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 c3 rxwy1 c1 wx2 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step c1: COMMIT;
@@ -3300,14 +4116,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 c3 rxwy1 wx2 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -3316,14 +4136,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 c3 rxwy1 wx2 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
@@ -3332,14 +4156,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 c3 wx2 rxwy1 c1 c2
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3348,14 +4176,18 @@ step c2: COMMIT;

 starting permutation: rx3 ry3 c3 wx2 rxwy1 c2 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step rxwy1: INSERT INTO receipt VALUES (3, (SELECT deposit_date FROM ctl WHERE k = 'receipt'), 4.00);
@@ -3364,14 +4196,18 @@ step c1: COMMIT;

 starting permutation: rx3 ry3 c3 wx2 c2 rxwy1 c1
 step rx3: SELECT * FROM ctl WHERE k = 'receipt';
-k              deposit_date
+k      |deposit_date
+-------+------------
+receipt|  12-22-2008
+(1 row)

-receipt        12-22-2008
 step ry3: SELECT * FROM receipt WHERE deposit_date = DATE '2008-12-22';
-receipt_no     deposit_date   amount
+receipt_no|deposit_date|amount
+----------+------------+------
+         1|  12-22-2008|  1.00
+         2|  12-22-2008|  2.00
+(2 rows)

-1              12-22-2008     1.00
-2              12-22-2008     2.00
 step c3: COMMIT;
 step wx2: UPDATE ctl SET deposit_date = DATE '2008-12-23' WHERE k = 'receipt';
 step c2: COMMIT;
diff --git a/src/test/isolation/expected/referential-integrity.out
b/src/test/isolation/expected/referential-integrity.out
index ba42efa39b..7679397eb2 100644
--- a/src/test/isolation/expected/referential-integrity.out
+++ b/src/test/isolation/expected/referential-integrity.out
@@ -2,35 +2,47 @@ Parsed test spec with 2 sessions

 starting permutation: rx1 wy1 c1 rx2 ry2 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+   1
+(1 row)

-1
 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;

 starting permutation: rx1 wy1 rx2 c1 ry2 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step c1: COMMIT;
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -38,16 +50,22 @@ step c2: COMMIT;

 starting permutation: rx1 wy1 rx2 ry2 c1 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step c1: COMMIT;
 step wx2: DELETE FROM a WHERE i = 1;
@@ -56,16 +74,22 @@ step c2: COMMIT;

 starting permutation: rx1 wy1 rx2 ry2 wx2 c1 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c1: COMMIT;
@@ -74,16 +98,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 wy1 rx2 ry2 wx2 c2 c1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -92,17 +122,23 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 wy1 c1 ry2 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -110,16 +146,22 @@ step c2: COMMIT;

 starting permutation: rx1 rx2 wy1 ry2 c1 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step c1: COMMIT;
 step wx2: DELETE FROM a WHERE i = 1;
@@ -128,16 +170,22 @@ step c2: COMMIT;

 starting permutation: rx1 rx2 wy1 ry2 wx2 c1 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c1: COMMIT;
@@ -146,16 +194,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 wy1 ry2 wx2 c2 c1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -164,15 +218,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 ry2 wy1 c1 wx2 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
@@ -182,15 +242,21 @@ step c2: COMMIT;

 starting permutation: rx1 rx2 ry2 wy1 wx2 c1 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
@@ -200,15 +266,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 ry2 wy1 wx2 c2 c1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
@@ -218,15 +290,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 ry2 wx2 wy1 c1 c2
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
@@ -236,15 +314,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 ry2 wx2 wy1 c2 c1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
@@ -254,15 +338,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx1 rx2 ry2 wx2 c2 wy1 c1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -272,17 +362,23 @@ step c1: COMMIT;

 starting permutation: rx2 rx1 wy1 c1 ry2 wx2 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -290,16 +386,22 @@ step c2: COMMIT;

 starting permutation: rx2 rx1 wy1 ry2 c1 wx2 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step c1: COMMIT;
 step wx2: DELETE FROM a WHERE i = 1;
@@ -308,16 +410,22 @@ step c2: COMMIT;

 starting permutation: rx2 rx1 wy1 ry2 wx2 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c1: COMMIT;
@@ -326,16 +434,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 wy1 ry2 wx2 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -344,15 +458,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 ry2 wy1 c1 wx2 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
@@ -362,15 +482,21 @@ step c2: COMMIT;

 starting permutation: rx2 rx1 ry2 wy1 wx2 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
@@ -380,15 +506,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 ry2 wy1 wx2 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
@@ -398,15 +530,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 ry2 wx2 wy1 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
@@ -416,15 +554,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 ry2 wx2 wy1 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
@@ -434,15 +578,21 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 rx1 ry2 wx2 c2 wy1 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -452,16 +602,22 @@ step c1: COMMIT;

 starting permutation: rx2 ry2 rx1 wy1 c1 wx2 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
 step wx2: DELETE FROM a WHERE i = 1;
@@ -470,16 +626,22 @@ step c2: COMMIT;

 starting permutation: rx2 ry2 rx1 wy1 wx2 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
 step c1: COMMIT;
@@ -488,16 +650,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 rx1 wy1 wx2 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
@@ -506,16 +674,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 rx1 wx2 wy1 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
@@ -524,16 +698,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 rx1 wx2 wy1 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wx2: DELETE FROM a WHERE i = 1;
 step wy1: INSERT INTO b VALUES (1);
 step c2: COMMIT;
@@ -542,16 +722,22 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 rx1 wx2 c2 wy1 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
 step wy1: INSERT INTO b VALUES (1);
@@ -560,17 +746,23 @@ step c1: COMMIT;

 starting permutation: rx2 ry2 wx2 rx1 wy1 c1 c2
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
 step c2: COMMIT;
@@ -578,17 +770,23 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 wx2 rx1 wy1 c2 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step wy1: INSERT INTO b VALUES (1);
 step c2: COMMIT;
 step c1: COMMIT;
@@ -596,17 +794,23 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: rx2 ry2 wx2 rx1 c2 wy1 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step c2: COMMIT;
 step wy1: INSERT INTO b VALUES (1);
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -614,16 +818,22 @@ step c1: COMMIT;

 starting permutation: rx2 ry2 wx2 c2 rx1 wy1 c1
 step rx2: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+1
+(1 row)

-1
 step ry2: SELECT a_id FROM b WHERE a_id = 1;
-a_id
+a_id
+----
+(0 rows)

 step wx2: DELETE FROM a WHERE i = 1;
 step c2: COMMIT;
 step rx1: SELECT i FROM a WHERE i = 1;
-i
+i
+-
+(0 rows)

 step wy1: INSERT INTO b VALUES (1);
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/reindex-concurrently.out
b/src/test/isolation/expected/reindex-concurrently.out
index 9e04169b2f..eea5b2b93c 100644
--- a/src/test/isolation/expected/reindex-concurrently.out
+++ b/src/test/isolation/expected/reindex-concurrently.out
@@ -3,9 +3,11 @@ Parsed test spec with 3 sessions
 starting permutation: reindex sel1 upd2 ins2 del2 end1 end2
 step reindex: REINDEX TABLE CONCURRENTLY reind_con_tab;
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
 step del2: DELETE FROM reind_con_tab WHERE data = 'cccc';
@@ -14,9 +16,11 @@ step end2: COMMIT;

 starting permutation: sel1 reindex upd2 ins2 del2 end1 end2
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step reindex: REINDEX TABLE CONCURRENTLY reind_con_tab; <waiting ...>
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
@@ -27,9 +31,11 @@ step reindex: <... completed>

 starting permutation: sel1 upd2 reindex ins2 del2 end1 end2
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step reindex: REINDEX TABLE CONCURRENTLY reind_con_tab; <waiting ...>
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
@@ -40,9 +46,11 @@ step reindex: <... completed>

 starting permutation: sel1 upd2 ins2 reindex del2 end1 end2
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
 step reindex: REINDEX TABLE CONCURRENTLY reind_con_tab; <waiting ...>
@@ -53,9 +61,11 @@ step reindex: <... completed>

 starting permutation: sel1 upd2 ins2 del2 reindex end1 end2
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
 step del2: DELETE FROM reind_con_tab WHERE data = 'cccc';
@@ -66,9 +76,11 @@ step reindex: <... completed>

 starting permutation: sel1 upd2 ins2 del2 end1 reindex end2
 step sel1: SELECT data FROM reind_con_tab WHERE id = 3;
-data
+data
+----
+aaaa
+(1 row)

-aaaa
 step upd2: UPDATE reind_con_tab SET data = 'bbbb' WHERE id = 3;
 step ins2: INSERT INTO reind_con_tab(data) VALUES ('cccc');
 step del2: DELETE FROM reind_con_tab WHERE data = 'cccc';
diff --git a/src/test/isolation/expected/ri-trigger.out b/src/test/isolation/expected/ri-trigger.out
index 88943287aa..842df80a90 100644
--- a/src/test/isolation/expected/ri-trigger.out
+++ b/src/test/isolation/expected/ri-trigger.out
@@ -4,9 +4,11 @@ starting permutation: wxry1 c1 r2 wyrx2 c2
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step c1: COMMIT;
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 ERROR:  child row exists
 step c2: COMMIT;
@@ -14,9 +16,11 @@ step c2: COMMIT;
 starting permutation: wxry1 r2 c1 wyrx2 c2
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step c1: COMMIT;
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -25,9 +29,11 @@ step c2: COMMIT;
 starting permutation: wxry1 r2 wyrx2 c1 c2
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -36,9 +42,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wxry1 r2 wyrx2 c2 c1
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -46,9 +54,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: r2 wxry1 c1 wyrx2 c2
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step c1: COMMIT;
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
@@ -57,9 +67,11 @@ step c2: COMMIT;

 starting permutation: r2 wxry1 wyrx2 c1 c2
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step c1: COMMIT;
@@ -68,9 +80,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: r2 wxry1 wyrx2 c2 c1
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step c2: COMMIT;
@@ -79,9 +93,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: r2 wyrx2 wxry1 c1 c2
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step c1: COMMIT;
@@ -90,9 +106,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: r2 wyrx2 wxry1 c2 c1
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
 step c2: COMMIT;
@@ -101,9 +119,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: r2 wyrx2 c2 wxry1 c1
 step r2: SELECT TRUE;
-bool
+bool
+----
+t
+(1 row)

-t
 step wyrx2: DELETE FROM parent WHERE parent_id = 0;
 step c2: COMMIT;
 step wxry1: INSERT INTO child (parent_id) VALUES (0);
diff --git a/src/test/isolation/expected/sequence-ddl.out b/src/test/isolation/expected/sequence-ddl.out
index 6766c0aff6..274b70fb65 100644
--- a/src/test/isolation/expected/sequence-ddl.out
+++ b/src/test/isolation/expected/sequence-ddl.out
@@ -18,67 +18,73 @@ step s1restart: ALTER SEQUENCE seq1 RESTART WITH 5;
 step s2nv: SELECT nextval('seq1') FROM generate_series(1, 15); <waiting ...>
 step s1commit: COMMIT;
 step s2nv: <... completed>
-nextval
+nextval
+-------
+      5
+      6
+      7
+      8
+      9
+     10
+     11
+     12
+     13
+     14
+     15
+     16
+     17
+     18
+     19
+(15 rows)

-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19

 starting permutation: s1restart s2nv s1commit
 step s1restart: ALTER SEQUENCE seq1 RESTART WITH 5;
 step s2nv: SELECT nextval('seq1') FROM generate_series(1, 15); <waiting ...>
 step s1commit: COMMIT;
 step s2nv: <... completed>
-nextval
+nextval
+-------
+      5
+      6
+      7
+      8
+      9
+     10
+     11
+     12
+     13
+     14
+     15
+     16
+     17
+     18
+     19
+(15 rows)

-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19

 starting permutation: s2begin s2nv s1alter2 s2commit s1commit
 step s2begin: BEGIN;
 step s2nv: SELECT nextval('seq1') FROM generate_series(1, 15);
-nextval
+nextval
+-------
+      1
+      2
+      3
+      4
+      5
+      6
+      7
+      8
+      9
+     10
+     11
+     12
+     13
+     14
+     15
+(15 rows)

-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
 step s1alter2: ALTER SEQUENCE seq1 MAXVALUE 20; <waiting ...>
 step s2commit: COMMIT;
 step s1alter2: <... completed>
diff --git a/src/test/isolation/expected/serializable-parallel-2.out
b/src/test/isolation/expected/serializable-parallel-2.out
index 9a693c4dc6..92753ccf39 100644
--- a/src/test/isolation/expected/serializable-parallel-2.out
+++ b/src/test/isolation/expected/serializable-parallel-2.out
@@ -2,43 +2,49 @@ Parsed test spec with 2 sessions

 starting permutation: s1r s2r1 s1c s2r2 s2c
 step s1r: SELECT * FROM foo;
-a
+ a
+--
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+(10 rows)

-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
 step s2r1: SELECT * FROM foo;
-a
+ a
+--
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+(10 rows)

-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
 step s1c: COMMIT;
 step s2r2: SELECT * FROM foo;
-a
+ a
+--
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+(10 rows)

-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
 step s2c: COMMIT;
diff --git a/src/test/isolation/expected/serializable-parallel.out
b/src/test/isolation/expected/serializable-parallel.out
index f43aa6a299..543ae89747 100644
--- a/src/test/isolation/expected/serializable-parallel.out
+++ b/src/test/isolation/expected/serializable-parallel.out
@@ -2,17 +2,23 @@ Parsed test spec with 3 sessions

 starting permutation: s2rx s2ry s1ry s1wy s1c s2wx s2c s3c
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
@@ -21,24 +27,32 @@ step s3c: COMMIT;

 starting permutation: s2rx s2ry s1ry s1wy s1c s3r s3c s2wx
 step s2rx: SELECT balance FROM bank_account WHERE id = 'X';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s2ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1ry: SELECT balance FROM bank_account WHERE id = 'Y';
-balance
+balance
+-------
+      0
+(1 row)

-0
 step s1wy: UPDATE bank_account SET balance = 20 WHERE id = 'Y';
 step s1c: COMMIT;
 step s3r: SELECT id, balance FROM bank_account WHERE id IN ('X', 'Y') ORDER BY id;
-id             balance
+id|balance
+--+-------
+X |      0
+Y |     20
+(2 rows)

-X              0
-Y              20
 step s3c: COMMIT;
 step s2wx: UPDATE bank_account SET balance = -11 WHERE id = 'X';
 ERROR:  could not serialize access due to read/write dependencies among transactions
diff --git a/src/test/isolation/expected/skip-locked-2.out b/src/test/isolation/expected/skip-locked-2.out
index 9240543f3f..3302d2e987 100644
--- a/src/test/isolation/expected/skip-locked-2.out
+++ b/src/test/isolation/expected/skip-locked-2.out
@@ -2,48 +2,66 @@ Parsed test spec with 2 sessions

 starting permutation: s1a s2a s2b s1b s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: COMMIT;
 step s2c: COMMIT;

 starting permutation: s2a s1a s2b s1b s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: COMMIT;
 step s2c: COMMIT;

 starting permutation: s2a s2b s1a s1b s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR SHARE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: COMMIT;
 step s2c: COMMIT;
diff --git a/src/test/isolation/expected/skip-locked-3.out b/src/test/isolation/expected/skip-locked-3.out
index fa8fe87d8a..be1f84d51c 100644
--- a/src/test/isolation/expected/skip-locked-3.out
+++ b/src/test/isolation/expected/skip-locked-3.out
@@ -2,18 +2,24 @@ Parsed test spec with 3 sessions

 starting permutation: s1a s2a s3a s1b s2b s3b
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE LIMIT 1; <waiting ...>
 step s3a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: COMMIT;
 step s2a: <... completed>
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: COMMIT;
 step s3b: COMMIT;
diff --git a/src/test/isolation/expected/skip-locked-4.out b/src/test/isolation/expected/skip-locked-4.out
index 2c9cfe895e..cfa9ae1e1e 100644
--- a/src/test/isolation/expected/skip-locked-4.out
+++ b/src/test/isolation/expected/skip-locked-4.out
@@ -3,19 +3,25 @@ Parsed test spec with 2 sessions
 starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f
 step s2a: SELECT pg_advisory_lock(0);
 pg_advisory_lock
+----------------
+
+(1 row)

-
 step s1a: SELECT * FROM foo WHERE pg_advisory_lock(0) IS NOT NULL ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED; <waiting
...>
 step s2b: UPDATE foo SET data = data WHERE id = 1;
 step s2c: BEGIN;
 step s2d: UPDATE foo SET data = data WHERE id = 1;
 step s2e: SELECT pg_advisory_unlock(0);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s1a: <... completed>
-id             data
+id|data
+--+----
+ 2|x
+(1 row)

-2              x
 step s1b: COMMIT;
 step s2f: COMMIT;
diff --git a/src/test/isolation/expected/skip-locked.out b/src/test/isolation/expected/skip-locked.out
index f9b9cf28be..3dc5768384 100644
--- a/src/test/isolation/expected/skip-locked.out
+++ b/src/test/isolation/expected/skip-locked.out
@@ -2,400 +2,560 @@ Parsed test spec with 2 sessions

 starting permutation: s1a s1b s1c s2a s2b s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;

 starting permutation: s1a s1b s2a s1c s2b s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;

 starting permutation: s1a s1b s2a s2b s1c s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s1a s1b s2a s2b s2c s1c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s1a s2a s1b s1c s2b s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;

 starting permutation: s1a s2a s1b s2b s1c s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s1a s2a s1b s2b s2c s1c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s1a s2a s2b s1b s1c s2c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s1a s2a s2b s1b s2c s1c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s1a s2a s2b s2c s1b s1c
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;

 starting permutation: s2a s1a s1b s1c s2b s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;

 starting permutation: s2a s1a s1b s2b s1c s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s2a s1a s1b s2b s2c s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s2a s1a s2b s1b s1c s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s2a s1a s2b s1b s2c s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s2a s1a s2b s2c s1b s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;

 starting permutation: s2a s2b s1a s1b s1c s2c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1c: COMMIT;
 step s2c: COMMIT;

 starting permutation: s2a s2b s1a s1b s2c s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1c: COMMIT;

 starting permutation: s2a s2b s1a s2c s1b s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 2|bar |NEW
+(1 row)

-2              bar            NEW
 step s2c: COMMIT;
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;

 starting permutation: s2a s2b s2c s1a s1b s1c
 step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s2c: COMMIT;
 step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1;
-id             data           status
+id|data|status
+--+----+------
+ 1|foo |NEW
+(1 row)

-1              foo            NEW
 step s1c: COMMIT;
diff --git a/src/test/isolation/expected/temporal-range-integrity.out
b/src/test/isolation/expected/temporal-range-integrity.out
index f1b24023a2..039193e4d2 100644
--- a/src/test/isolation/expected/temporal-range-integrity.out
+++ b/src/test/isolation/expected/temporal-range-integrity.out
@@ -2,28 +2,36 @@ Parsed test spec with 2 sessions

 starting permutation: rx1 wy1 c1 ry2 wx2 c2
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step c1: COMMIT;
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step c2: COMMIT;

 starting permutation: rx1 wy1 ry2 c1 wx2 c2
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step c1: COMMIT;
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step c1: COMMIT;
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
@@ -76,13 +96,17 @@ step c2: COMMIT;

 starting permutation: rx1 ry2 wy1 wx2 c1 c2
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step c2: COMMIT;
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
@@ -151,13 +191,17 @@ step c1: COMMIT;

 starting permutation: ry2 rx1 wy1 c1 wx2 c2
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step c1: COMMIT;
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
@@ -166,13 +210,17 @@ step c2: COMMIT;

 starting permutation: ry2 rx1 wy1 wx2 c1 c2
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step c2: COMMIT;
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
@@ -241,14 +305,18 @@ step c1: COMMIT;

 starting permutation: ry2 wx2 rx1 wy1 c1 c2
 step ry2: SELECT count(*) FROM offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    1
+(1 row)

-1
 step c2: COMMIT;
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 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 offense WHERE statute_cite = '123.45(1)a' AND offense_date >= DATE '2008-01-01';
-count
+count
+-----
+    0
+(1 row)

-0
 step wx2: DELETE FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date = DATE '2008-01-01';
 step c2: COMMIT;
 step rx1: SELECT count(*) FROM statute WHERE statute_cite = '123.45(1)a' AND eff_date <= DATE '2009-05-15' AND
(exp_dateIS NULL OR exp_date > DATE '2009-05-15'); 
-count
+count
+-----
+    0
+(1 row)

-0
 step wy1: INSERT INTO offense VALUES (1, '123.45(1)a', DATE '2009-05-15');
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/timeouts.out b/src/test/isolation/expected/timeouts.out
index ff646279ec..899fd429c1 100644
--- a/src/test/isolation/expected/timeouts.out
+++ b/src/test/isolation/expected/timeouts.out
@@ -2,10 +2,12 @@ Parsed test spec with 2 sessions

 starting permutation: rdtbl sto locktbl
 step rdtbl: SELECT * FROM accounts;
-accountid      balance
+accountid|balance
+---------+-------
+checking |    600
+savings  |    600
+(2 rows)

-checking       600
-savings        600
 step sto: SET statement_timeout = 5000;
 step locktbl: LOCK TABLE accounts; <waiting ...>
 step locktbl: <... completed>
@@ -13,10 +15,12 @@ ERROR:  canceling statement due to statement timeout

 starting permutation: rdtbl lto locktbl
 step rdtbl: SELECT * FROM accounts;
-accountid      balance
+accountid|balance
+---------+-------
+checking |    600
+savings  |    600
+(2 rows)

-checking       600
-savings        600
 step lto: SET lock_timeout = 5000;
 step locktbl: LOCK TABLE accounts; <waiting ...>
 step locktbl: <... completed>
@@ -24,10 +28,12 @@ ERROR:  canceling statement due to lock timeout

 starting permutation: rdtbl lsto locktbl
 step rdtbl: SELECT * FROM accounts;
-accountid      balance
+accountid|balance
+---------+-------
+checking |    600
+savings  |    600
+(2 rows)

-checking       600
-savings        600
 step lsto: SET lock_timeout = 5000; SET statement_timeout = 6000;
 step locktbl: LOCK TABLE accounts; <waiting ...>
 step locktbl: <... completed>
@@ -35,10 +41,12 @@ ERROR:  canceling statement due to lock timeout

 starting permutation: rdtbl slto locktbl
 step rdtbl: SELECT * FROM accounts;
-accountid      balance
+accountid|balance
+---------+-------
+checking |    600
+savings  |    600
+(2 rows)

-checking       600
-savings        600
 step slto: SET lock_timeout = 6000; SET statement_timeout = 5000;
 step locktbl: LOCK TABLE accounts; <waiting ...>
 step locktbl: <... completed>
diff --git a/src/test/isolation/expected/total-cash.out b/src/test/isolation/expected/total-cash.out
index 5121edc710..7b00e0d169 100644
--- a/src/test/isolation/expected/total-cash.out
+++ b/src/test/isolation/expected/total-cash.out
@@ -3,23 +3,29 @@ Parsed test spec with 2 sessions
 starting permutation: wx1 rxy1 c1 wy2 rxy2 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+sum
+---
+800
+(1 row)

-800
 step c2: COMMIT;

 starting permutation: wx1 rxy1 wy2 c1 rxy2 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step c1: COMMIT;
 step rxy2: SELECT SUM(balance) FROM accounts;
@@ -29,14 +35,18 @@ step c2: COMMIT;
 starting permutation: wx1 rxy1 wy2 rxy2 c1 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -44,14 +54,18 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wx1 rxy1 wy2 rxy2 c2 c1
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -60,9 +74,11 @@ starting permutation: wx1 wy2 rxy1 c1 rxy2 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step rxy2: SELECT SUM(balance) FROM accounts;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -72,13 +88,17 @@ starting permutation: wx1 wy2 rxy1 rxy2 c1 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -87,13 +107,17 @@ starting permutation: wx1 wy2 rxy1 rxy2 c2 c1
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -102,13 +126,17 @@ starting permutation: wx1 wy2 rxy2 rxy1 c1 c2
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -117,13 +145,17 @@ starting permutation: wx1 wy2 rxy2 rxy1 c2 c1
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -132,9 +164,11 @@ starting permutation: wx1 wy2 rxy2 c2 rxy1 c1
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step rxy1: SELECT SUM(balance) FROM accounts;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -144,9 +178,11 @@ starting permutation: wy2 wx1 rxy1 c1 rxy2 c2
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step rxy2: SELECT SUM(balance) FROM accounts;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -156,13 +192,17 @@ starting permutation: wy2 wx1 rxy1 rxy2 c1 c2
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -171,13 +211,17 @@ starting permutation: wy2 wx1 rxy1 rxy2 c2 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -186,13 +230,17 @@ starting permutation: wy2 wx1 rxy2 rxy1 c1 c2
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -201,13 +249,17 @@ starting permutation: wy2 wx1 rxy2 rxy1 c2 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -216,9 +268,11 @@ starting permutation: wy2 wx1 rxy2 c2 rxy1 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step rxy1: SELECT SUM(balance) FROM accounts;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -227,14 +281,18 @@ step c1: COMMIT;
 starting permutation: wy2 rxy2 wx1 rxy1 c1 c2
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -242,14 +300,18 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy2 wx1 rxy1 c2 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step c1: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -257,9 +319,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wy2 rxy2 wx1 c2 rxy1 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step c2: COMMIT;
 step rxy1: SELECT SUM(balance) FROM accounts;
@@ -269,13 +333,17 @@ step c1: COMMIT;
 starting permutation: wy2 rxy2 c2 wx1 rxy1 c1
 step wy2: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'savings';
 step rxy2: SELECT SUM(balance) FROM accounts;
-sum
+ sum
+----
+1000
+(1 row)

-1000
 step c2: COMMIT;
 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
 step rxy1: SELECT SUM(balance) FROM accounts;
-sum
+sum
+---
+800
+(1 row)

-800
 step c1: COMMIT;
diff --git a/src/test/isolation/expected/truncate-conflict.out b/src/test/isolation/expected/truncate-conflict.out
index 2c10f8d40d..0eede3f3ba 100644
--- a/src/test/isolation/expected/truncate-conflict.out
+++ b/src/test/isolation/expected/truncate-conflict.out
@@ -1,99 +1,4 @@
 Parsed test spec with 2 sessions

 starting permutation: s1_begin s1_tab_lookup s2_auth s2_truncate s1_commit s2_reset
-step s1_begin: BEGIN;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab;
-ERROR:  permission denied for table truncate_tab
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
-
-starting permutation: s1_begin s2_auth s2_truncate s1_tab_lookup s1_commit s2_reset
-step s1_begin: BEGIN;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab;
-ERROR:  permission denied for table truncate_tab
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
-
-starting permutation: s1_begin s2_auth s1_tab_lookup s2_truncate s1_commit s2_reset
-step s1_begin: BEGIN;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s2_truncate: TRUNCATE truncate_tab;
-ERROR:  permission denied for table truncate_tab
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
-
-starting permutation: s2_auth s2_truncate s1_begin s1_tab_lookup s1_commit s2_reset
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab;
-ERROR:  permission denied for table truncate_tab
-step s1_begin: BEGIN;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
-
-starting permutation: s1_begin s1_tab_lookup s2_grant s2_auth s2_truncate s1_commit s2_reset
-step s1_begin: BEGIN;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s2_grant: GRANT TRUNCATE ON truncate_tab TO regress_truncate_conflict;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab; <waiting ...>
-step s1_commit: COMMIT;
-step s2_truncate: <... completed>
-step s2_reset: RESET ROLE;
-
-starting permutation: s1_begin s2_grant s2_auth s2_truncate s1_tab_lookup s1_commit s2_reset
-step s1_begin: BEGIN;
-step s2_grant: GRANT TRUNCATE ON truncate_tab TO regress_truncate_conflict;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
-
-starting permutation: s1_begin s2_grant s2_auth s1_tab_lookup s2_truncate s1_commit s2_reset
-step s1_begin: BEGIN;
-step s2_grant: GRANT TRUNCATE ON truncate_tab TO regress_truncate_conflict;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s2_truncate: TRUNCATE truncate_tab; <waiting ...>
-step s1_commit: COMMIT;
-step s2_truncate: <... completed>
-step s2_reset: RESET ROLE;
-
-starting permutation: s2_grant s2_auth s2_truncate s1_begin s1_tab_lookup s1_commit s2_reset
-step s2_grant: GRANT TRUNCATE ON truncate_tab TO regress_truncate_conflict;
-step s2_auth: SET ROLE regress_truncate_conflict;
-step s2_truncate: TRUNCATE truncate_tab;
-step s1_begin: BEGIN;
-step s1_tab_lookup: SELECT count(*) >= 0 FROM truncate_tab;
-?column?
-
-t
-step s1_commit: COMMIT;
-step s2_reset: RESET ROLE;
+setup failed: ERROR:  role "regress_truncate_conflict" already exists
diff --git a/src/test/isolation/expected/tuplelock-conflict.out b/src/test/isolation/expected/tuplelock-conflict.out
index 1f5c142aee..d629314cc8 100644
--- a/src/test/isolation/expected/tuplelock-conflict.out
+++ b/src/test/isolation/expected/tuplelock-conflict.out
@@ -3,467 +3,627 @@ Parsed test spec with 2 sessions
 starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock2: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock1: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock2: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo;
-a
+a
+-
+1
+(1 row)

-1
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock1 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock1 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock1 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock1 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock2 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock2 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock2 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock2 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock3 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
-a
+a
+-
+1
+(1 row)

-1
 step s1_commit: COMMIT;

 starting permutation: s1_begin s1_tuplock3 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock2: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock3 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock3 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock4 s2_tuplock1 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock1: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock4 s2_tuplock2 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock2: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock4 s2_tuplock3 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock3: <... completed>
-a
+a
+-
+1
+(1 row)

-1

 starting permutation: s1_begin s1_tuplock4 s2_tuplock4 s1_commit
 step s1_begin: BEGIN;
 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
-a
+a
+-
+1
+(1 row)

-1
 step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; <waiting ...>
 step s1_commit: COMMIT;
 step s2_tuplock4: <... completed>
-a
+a
+-
+1
+(1 row)

-1
diff --git a/src/test/isolation/expected/tuplelock-partition.out b/src/test/isolation/expected/tuplelock-partition.out
index dd6d37c577..369ddf9c4e 100644
--- a/src/test/isolation/expected/tuplelock-partition.out
+++ b/src/test/isolation/expected/tuplelock-partition.out
@@ -4,9 +4,11 @@ starting permutation: s1b s1update_nokey s2locktuple s1c
 step s1b: BEGIN;
 step s1update_nokey: INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET col1 =
'x',col2 = 'y'; 
 step s2locktuple: SELECT * FROM parttab FOR KEY SHARE;
-col1           key            col2
+col1|key|col2
+----+---+----
+a   |  1|b
+(1 row)

-a              1              b
 step s1c: COMMIT;

 starting permutation: s1b s1update_key s2locktuple s1c
@@ -15,6 +17,8 @@ step s1update_key: INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON
 step s2locktuple: SELECT * FROM parttab FOR KEY SHARE; <waiting ...>
 step s1c: COMMIT;
 step s2locktuple: <... completed>
-col1           key            col2
+col1|key|col2
+----+---+----
+a   |  1|b
+(1 row)

-a              1              b
diff --git a/src/test/isolation/expected/tuplelock-update.out b/src/test/isolation/expected/tuplelock-update.out
index ea63022e93..0ee35a72a4 100644
--- a/src/test/isolation/expected/tuplelock-update.out
+++ b/src/test/isolation/expected/tuplelock-update.out
@@ -6,31 +6,41 @@ step s1_advlock:
         pg_advisory_lock(285714),
         pg_advisory_lock(571428);

-pg_advisory_lockpg_advisory_lockpg_advisory_lock
+pg_advisory_lock|pg_advisory_lock|pg_advisory_lock
+----------------+----------------+----------------
+                |                |
+(1 row)

-
 step s2_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
 step s3_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(285714) IS NOT NULL; <waiting ...>
 step s4_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(571428) IS NOT NULL; <waiting ...>
 step s1_chain: UPDATE pktab SET data = DEFAULT;
 step s1_begin: BEGIN;
 step s1_grablock: SELECT * FROM pktab FOR KEY SHARE;
-id             data
+id|data
+--+----
+ 1|   2
+(1 row)

-1              2
 step s1_advunlock1: SELECT pg_advisory_unlock(142857);
 pg_advisory_unlock
+------------------
+t
+(1 row)

-t
 step s2_update: <... completed>
 step s1_advunlock2: SELECT pg_sleep(5), pg_advisory_unlock(285714);
-pg_sleep       pg_advisory_unlock
+pg_sleep|pg_advisory_unlock
+--------+------------------
+        |t
+(1 row)

-               t
 step s3_update: <... completed>
 step s1_advunlock3: SELECT pg_sleep(5), pg_advisory_unlock(571428);
-pg_sleep       pg_advisory_unlock
+pg_sleep|pg_advisory_unlock
+--------+------------------
+        |t
+(1 row)

-               t
 step s4_update: <... completed>
 step s1_commit: COMMIT;
diff --git a/src/test/isolation/expected/tuplelock-upgrade-no-deadlock.out
b/src/test/isolation/expected/tuplelock-upgrade-no-deadlock.out
index 8e04a54394..2159092e96 100644
--- a/src/test/isolation/expected/tuplelock-upgrade-no-deadlock.out
+++ b/src/test/isolation/expected/tuplelock-upgrade-no-deadlock.out
@@ -2,132 +2,172 @@ Parsed test spec with 4 sessions

 starting permutation: s1_share s2_for_update s3_share s3_for_update s1_rollback s3_rollback s2_rollback
 step s1_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s1_rollback: rollback;
 step s3_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_rollback: rollback;
 step s2_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_rollback: rollback;

 starting permutation: s1_keyshare s2_for_update s3_keyshare s1_update s3_update s1_rollback s3_rollback s2_rollback
 step s1_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_update: update tlu_job set name = 'b' where id = 1;
 step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
 step s1_rollback: rollback;
 step s3_update: <... completed>
 step s3_rollback: rollback;
 step s2_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_rollback: rollback;

 starting permutation: s1_keyshare s2_for_update s3_keyshare s1_update s3_update s1_commit s3_rollback s2_rollback
 step s1_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_update: update tlu_job set name = 'b' where id = 1;
 step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
 step s1_commit: commit;
 step s3_update: <... completed>
 step s3_rollback: rollback;
 step s2_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_rollback: rollback;

 starting permutation: s1_keyshare s2_for_update s3_keyshare s3_delete s1_rollback s3_rollback s2_rollback
 step s1_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_delete: delete from tlu_job where id = 1; <waiting ...>
 step s1_rollback: rollback;
 step s3_delete: <... completed>
 step s3_rollback: rollback;
 step s2_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_rollback: rollback;

 starting permutation: s1_keyshare s2_for_update s3_keyshare s3_delete s1_rollback s3_commit s2_rollback
 step s1_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_delete: delete from tlu_job where id = 1; <waiting ...>
 step s1_rollback: rollback;
 step s3_delete: <... completed>
 step s3_commit: commit;
 step s2_for_update: <... completed>
-id
+id
+--
+(0 rows)

 step s2_rollback: rollback;

 starting permutation: s1_share s2_for_update s3_for_update s1_rollback s2_rollback s3_rollback
 step s1_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s1_rollback: rollback;
 step s2_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_rollback: rollback;
 step s3_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_rollback: rollback;

 starting permutation: s1_share s2_update s3_update s1_rollback s2_rollback s3_rollback
 step s1_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_update: update tlu_job set name = 'b' where id = 1; <waiting ...>
 step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
 step s1_rollback: rollback;
@@ -138,9 +178,11 @@ step s3_rollback: rollback;

 starting permutation: s1_share s2_delete s3_delete s1_rollback s2_rollback s3_rollback
 step s1_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_delete: delete from tlu_job where id = 1; <waiting ...>
 step s3_delete: delete from tlu_job where id = 1; <waiting ...>
 step s1_rollback: rollback;
@@ -151,45 +193,61 @@ step s3_rollback: rollback;

 starting permutation: s1_keyshare s3_for_update s2_for_keyshare s1_savept_e s1_share s1_savept_f s1_fornokeyupd
s2_fornokeyupds0_begin s0_keyshare s1_rollback_f s0_keyshare s1_rollback_e s1_rollback s2_rollback s0_rollback
s3_rollback
 step s1_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
 step s2_for_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_savept_e: savepoint s1_e;
 step s1_share: select id from tlu_job where id = 1 for share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_savept_f: savepoint s1_f;
 step s1_fornokeyupd: select id from tlu_job where id = 1 for no key update;
-id
+id
+--
+ 1
+(1 row)

-1
 step s2_fornokeyupd: select id from tlu_job where id = 1 for no key update; <waiting ...>
 step s0_begin: begin;
 step s0_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_rollback_f: rollback to s1_f;
 step s0_keyshare: select id from tlu_job where id = 1 for key share;
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_rollback_e: rollback to s1_e;
 step s2_fornokeyupd: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s1_rollback: rollback;
 step s2_rollback: rollback;
 step s0_rollback: rollback;
 step s3_for_update: <... completed>
-id
+id
+--
+ 1
+(1 row)

-1
 step s3_rollback: rollback;
diff --git a/src/test/isolation/expected/two-ids.out b/src/test/isolation/expected/two-ids.out
index 2fbba1e219..2ebd73feda 100644
--- a/src/test/isolation/expected/two-ids.out
+++ b/src/test/isolation/expected/two-ids.out
@@ -6,9 +6,11 @@ step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 3
+(1 row)

-3
 step c3: COMMIT;

 starting permutation: wx1 c1 rxwy2 ry3 c2 c3
@@ -16,9 +18,11 @@ step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c3: COMMIT;

@@ -27,9 +31,11 @@ step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;

@@ -37,9 +43,11 @@ starting permutation: wx1 c1 ry3 rxwy2 c2 c3
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step c3: COMMIT;
@@ -48,9 +56,11 @@ starting permutation: wx1 c1 ry3 rxwy2 c3 c2
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step c2: COMMIT;
@@ -59,9 +69,11 @@ starting permutation: wx1 c1 ry3 c3 rxwy2 c2
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
@@ -72,9 +84,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;

 starting permutation: wx1 rxwy2 c1 ry3 c2 c3
@@ -82,9 +96,11 @@ step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
 step c3: COMMIT;
@@ -94,9 +110,11 @@ step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -107,9 +125,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;

 starting permutation: wx1 rxwy2 c2 ry3 c1 c3
@@ -117,9 +137,11 @@ step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c1: COMMIT;
 step c3: COMMIT;

@@ -128,9 +150,11 @@ step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;
 step c1: COMMIT;

@@ -138,9 +162,11 @@ starting permutation: wx1 rxwy2 ry3 c1 c2 c3
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -150,9 +176,11 @@ starting permutation: wx1 rxwy2 ry3 c1 c3 c2
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -162,9 +190,11 @@ starting permutation: wx1 rxwy2 ry3 c2 c1 c3
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -173,9 +203,11 @@ starting permutation: wx1 rxwy2 ry3 c2 c3 c1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -184,9 +216,11 @@ starting permutation: wx1 rxwy2 ry3 c3 c1 c2
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -195,9 +229,11 @@ starting permutation: wx1 rxwy2 ry3 c3 c2 c1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -205,9 +241,11 @@ step c1: COMMIT;
 starting permutation: wx1 ry3 c1 rxwy2 c2 c3
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
@@ -216,9 +254,11 @@ step c3: COMMIT;
 starting permutation: wx1 ry3 c1 rxwy2 c3 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
@@ -227,9 +267,11 @@ step c2: COMMIT;
 starting permutation: wx1 ry3 c1 c3 rxwy2 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -238,9 +280,11 @@ step c2: COMMIT;
 starting permutation: wx1 ry3 rxwy2 c1 c2 c3
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
 step c2: COMMIT;
@@ -250,9 +294,11 @@ step c3: COMMIT;
 starting permutation: wx1 ry3 rxwy2 c1 c3 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
 step c3: COMMIT;
@@ -262,9 +308,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: wx1 ry3 rxwy2 c2 c1 c3
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step c1: COMMIT;
@@ -273,9 +321,11 @@ step c3: COMMIT;
 starting permutation: wx1 ry3 rxwy2 c2 c3 c1
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step c3: COMMIT;
@@ -284,9 +334,11 @@ step c1: COMMIT;
 starting permutation: wx1 ry3 rxwy2 c3 c1 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step c1: COMMIT;
@@ -295,9 +347,11 @@ step c2: COMMIT;
 starting permutation: wx1 ry3 rxwy2 c3 c2 c1
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step c2: COMMIT;
@@ -306,9 +360,11 @@ step c1: COMMIT;
 starting permutation: wx1 ry3 c3 c1 rxwy2 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -317,9 +373,11 @@ step c2: COMMIT;
 starting permutation: wx1 ry3 c3 rxwy2 c1 c2
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
@@ -328,9 +386,11 @@ step c2: COMMIT;
 starting permutation: wx1 ry3 c3 rxwy2 c2 c1
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
@@ -342,9 +402,11 @@ step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;

 starting permutation: rxwy2 wx1 c1 ry3 c2 c3
@@ -352,9 +414,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
 step c3: COMMIT;
@@ -364,9 +428,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -377,9 +443,11 @@ step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;

 starting permutation: rxwy2 wx1 c2 ry3 c1 c3
@@ -387,9 +455,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c1: COMMIT;
 step c3: COMMIT;

@@ -398,9 +468,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;
 step c1: COMMIT;

@@ -408,9 +480,11 @@ starting permutation: rxwy2 wx1 ry3 c1 c2 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step c2: COMMIT;
 ERROR:  could not serialize access due to read/write dependencies among transactions
@@ -420,9 +494,11 @@ starting permutation: rxwy2 wx1 ry3 c1 c3 c2
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c1: COMMIT;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -432,9 +508,11 @@ starting permutation: rxwy2 wx1 ry3 c2 c1 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -443,9 +521,11 @@ starting permutation: rxwy2 wx1 ry3 c2 c3 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -454,9 +534,11 @@ starting permutation: rxwy2 wx1 ry3 c3 c1 c2
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -465,9 +547,11 @@ starting permutation: rxwy2 wx1 ry3 c3 c2 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -478,9 +562,11 @@ step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;

 starting permutation: rxwy2 c2 wx1 ry3 c1 c3
@@ -488,9 +574,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c1: COMMIT;
 step c3: COMMIT;

@@ -499,9 +587,11 @@ step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;
 step c1: COMMIT;

@@ -509,9 +599,11 @@ starting permutation: rxwy2 c2 ry3 wx1 c1 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -520,9 +612,11 @@ starting permutation: rxwy2 c2 ry3 wx1 c3 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -531,9 +625,11 @@ starting permutation: rxwy2 c2 ry3 c3 wx1 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step ry3: select id from D2;
-id
+id
+--
+ 2
+(1 row)

-2
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -541,9 +637,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 wx1 c1 c2 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step c2: COMMIT;
@@ -553,9 +651,11 @@ step c3: COMMIT;
 starting permutation: rxwy2 ry3 wx1 c1 c3 c2
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -565,9 +665,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact
 starting permutation: rxwy2 ry3 wx1 c2 c1 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
 step c1: COMMIT;
@@ -576,9 +678,11 @@ step c3: COMMIT;
 starting permutation: rxwy2 ry3 wx1 c2 c3 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
 step c3: COMMIT;
@@ -587,9 +691,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 wx1 c3 c1 c2
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -598,9 +704,11 @@ step c2: COMMIT;
 starting permutation: rxwy2 ry3 wx1 c3 c2 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step c2: COMMIT;
@@ -609,9 +717,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 c2 wx1 c1 c3
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -620,9 +730,11 @@ step c3: COMMIT;
 starting permutation: rxwy2 ry3 c2 wx1 c3 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
@@ -631,9 +743,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 c2 c3 wx1 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c2: COMMIT;
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -642,9 +756,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 c3 wx1 c1 c2
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -653,9 +769,11 @@ step c2: COMMIT;
 starting permutation: rxwy2 ry3 c3 wx1 c2 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
@@ -664,9 +782,11 @@ step c1: COMMIT;
 starting permutation: rxwy2 ry3 c3 c2 wx1 c1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -674,9 +794,11 @@ step c1: COMMIT;

 starting permutation: ry3 wx1 c1 rxwy2 c2 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -685,9 +807,11 @@ step c3: COMMIT;

 starting permutation: ry3 wx1 c1 rxwy2 c3 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -696,9 +820,11 @@ step c2: COMMIT;

 starting permutation: ry3 wx1 c1 c3 rxwy2 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
 step c3: COMMIT;
@@ -707,9 +833,11 @@ step c2: COMMIT;

 starting permutation: ry3 wx1 rxwy2 c1 c2 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
@@ -719,9 +847,11 @@ step c3: COMMIT;

 starting permutation: ry3 wx1 rxwy2 c1 c3 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c1: COMMIT;
@@ -731,9 +861,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: ry3 wx1 rxwy2 c2 c1 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
@@ -742,9 +874,11 @@ step c3: COMMIT;

 starting permutation: ry3 wx1 rxwy2 c2 c3 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
@@ -753,9 +887,11 @@ step c1: COMMIT;

 starting permutation: ry3 wx1 rxwy2 c3 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
@@ -764,9 +900,11 @@ step c2: COMMIT;

 starting permutation: ry3 wx1 rxwy2 c3 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
@@ -775,9 +913,11 @@ step c1: COMMIT;

 starting permutation: ry3 wx1 c3 c1 rxwy2 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step c1: COMMIT;
@@ -786,9 +926,11 @@ step c2: COMMIT;

 starting permutation: ry3 wx1 c3 rxwy2 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -797,9 +939,11 @@ step c2: COMMIT;

 starting permutation: ry3 wx1 c3 rxwy2 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -808,9 +952,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 wx1 c1 c2 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -820,9 +966,11 @@ step c3: COMMIT;

 starting permutation: ry3 rxwy2 wx1 c1 c3 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -832,9 +980,11 @@ ERROR:  could not serialize access due to read/write dependencies among transact

 starting permutation: ry3 rxwy2 wx1 c2 c1 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
@@ -843,9 +993,11 @@ step c3: COMMIT;

 starting permutation: ry3 rxwy2 wx1 c2 c3 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c2: COMMIT;
@@ -854,9 +1006,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 wx1 c3 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
@@ -865,9 +1019,11 @@ step c2: COMMIT;

 starting permutation: ry3 rxwy2 wx1 c3 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
 step c3: COMMIT;
@@ -876,9 +1032,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 c2 wx1 c1 c3
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -887,9 +1045,11 @@ step c3: COMMIT;

 starting permutation: ry3 rxwy2 c2 wx1 c3 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -898,9 +1058,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 c2 c3 wx1 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
 step c3: COMMIT;
@@ -909,9 +1071,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 c3 wx1 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -920,9 +1084,11 @@ step c2: COMMIT;

 starting permutation: ry3 rxwy2 c3 wx1 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
@@ -931,9 +1097,11 @@ step c1: COMMIT;

 starting permutation: ry3 rxwy2 c3 c2 wx1 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c3: COMMIT;
 step c2: COMMIT;
@@ -942,9 +1110,11 @@ step c1: COMMIT;

 starting permutation: ry3 c3 wx1 c1 rxwy2 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step c1: COMMIT;
@@ -953,9 +1123,11 @@ step c2: COMMIT;

 starting permutation: ry3 c3 wx1 rxwy2 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -964,9 +1136,11 @@ step c2: COMMIT;

 starting permutation: ry3 c3 wx1 rxwy2 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step wx1: update D1 set id = id + 1;
 step rxwy2: update D2 set id = (select id+1 from D1);
@@ -975,9 +1149,11 @@ step c1: COMMIT;

 starting permutation: ry3 c3 rxwy2 wx1 c1 c2
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
@@ -986,9 +1162,11 @@ step c2: COMMIT;

 starting permutation: ry3 c3 rxwy2 wx1 c2 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step wx1: update D1 set id = id + 1;
@@ -997,9 +1175,11 @@ step c1: COMMIT;

 starting permutation: ry3 c3 rxwy2 c2 wx1 c1
 step ry3: select id from D2;
-id
+id
+--
+ 1
+(1 row)

-1
 step c3: COMMIT;
 step rxwy2: update D2 set id = (select id+1 from D1);
 step c2: COMMIT;
diff --git a/src/test/isolation/expected/update-conflict-out.out b/src/test/isolation/expected/update-conflict-out.out
index 32be3269b3..1e82bd4de0 100644
--- a/src/test/isolation/expected/update-conflict-out.out
+++ b/src/test/isolation/expected/update-conflict-out.out
@@ -2,7 +2,9 @@ Parsed test spec with 3 sessions

 starting permutation: foo_select bar_insert foo_insert foo_commit trouble_update bar_select bar_commit trouble_abort
 step foo_select: SELECT * FROM txn0 WHERE id = 42;
-id             val
+id|val
+--+---
+(0 rows)

 step bar_insert: INSERT INTO txn0 SELECT 42, 'bar_insert';
 step foo_insert: INSERT INTO txn1 SELECT 7, 'foo_insert';
@@ -15,7 +17,9 @@ step trouble_abort: ABORT;

 starting permutation: foo_select bar_insert foo_insert foo_commit trouble_delete bar_select bar_commit trouble_abort
 step foo_select: SELECT * FROM txn0 WHERE id = 42;
-id             val
+id|val
+--+---
+(0 rows)

 step bar_insert: INSERT INTO txn0 SELECT 42, 'bar_insert';
 step foo_insert: INSERT INTO txn1 SELECT 7, 'foo_insert';
diff --git a/src/test/isolation/expected/vacuum-reltuples.out b/src/test/isolation/expected/vacuum-reltuples.out
index 337b7ab252..cdbe7f3a60 100644
--- a/src/test/isolation/expected/vacuum-reltuples.out
+++ b/src/test/isolation/expected/vacuum-reltuples.out
@@ -11,9 +11,11 @@ step stats:
     select relpages, reltuples from pg_class
      where oid='smalltbl'::regclass;

-relpages       reltuples
+relpages|reltuples
+--------+---------
+       1|       21
+(1 row)

-1              21

 starting permutation: modify open fetch1 vac close stats
 step modify:
@@ -26,9 +28,11 @@ step open:
 step fetch1:
     fetch next from c1;

-dummy
+dummy
+-----
+    1
+(1 row)

-1
 step vac:
     vacuum smalltbl;

@@ -39,9 +43,11 @@ step stats:
     select relpages, reltuples from pg_class
      where oid='smalltbl'::regclass;

-relpages       reltuples
+relpages|reltuples
+--------+---------
+       1|       20
+(1 row)

-1              20

 starting permutation: modify vac stats
 step modify:
@@ -54,6 +60,8 @@ step stats:
     select relpages, reltuples from pg_class
      where oid='smalltbl'::regclass;

-relpages       reltuples
+relpages|reltuples
+--------+---------
+       1|       21
+(1 row)

-1              21
diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 0a73d38dae..1198a70f6c 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -913,23 +913,13 @@ try_complete_step(TestSpec *testspec, Step *step, int flags)
 static void
 printResultSet(PGresult *res)
 {
-    int            nFields;
-    int            i,
-                j;
-
-    /* first, print out the attribute names */
-    nFields = PQnfields(res);
-    for (i = 0; i < nFields; i++)
-        printf("%-15s", PQfname(res, i));
-    printf("\n\n");
+    PQprintOpt    popt;

-    /* next, print out the rows */
-    for (i = 0; i < PQntuples(res); i++)
-    {
-        for (j = 0; j < nFields; j++)
-            printf("%-15s", PQgetvalue(res, i, j));
-        printf("\n");
-    }
+    memset(&popt, 0, sizeof(popt));
+    popt.header = true;
+    popt.align = true;
+    popt.fieldSep = "|";
+    PQprint(stdout, res, &popt);
 }

 /* notice processor, prefixes each message with the session name */

Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Noah Misch <noah@leadboat.com> writes:
> I'm +1 for back-patching this class of change.  I've wasted time adapting a
> back-patch's test case to account for non-back-patched test infrastructure
> changes.  Every back-patch of test infrastructure has been a strict win from
> my perspective.

Hearing few objections, I'll plan on back-patching.  I'm thinking that the
best thing to do is apply these changes after beta2 wraps, but before we
branch v14.  Waiting till after the branch would just create duplicate
work.

BTW, as long as we're thinking of back-patching nontrivial specfile
changes, I have another modest proposal.  What do people think of
removing the requirement for step/session names to be double-quoted,
and instead letting them work like SQL identifiers?  A quick grep
shows that practically all the existing names are plain identifiers,
so we could just drop their quotes for a useful notational savings.
While I haven't actually tried yet, I doubt it'd be hard to adopt
scan.l's identifier rules into specscanner.l.  (Probably wouldn't
bother with auto case-folding, though.)

            regards, tom lane



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> On 2021-Jun-16, Tom Lane wrote:
>> Hearing few objections, I'll plan on back-patching.  I'm thinking that the
>> best thing to do is apply these changes after beta2 wraps, but before we
>> branch v14.

> Great.

After checking cross-version diffs to see how painful that is likely
to be, I'm inclined to also back-patch Michael's v13 commits

989d23b04beac0c26f44c379b04ac781eaa4265e
    Detect unused steps in isolation specs and do some cleanup

9903338b5ea59093d77cfe50ec0b1c22d4a7d843
    Remove dry-run mode from isolationtester

as those touched some of the same code areas, and it doesn't seem like
there'd be any harm in making these aspects uniform across all the
branches.  If Michael wants to do that back-patching himself, that's
fine with me, otherwise I'll do it.

Also, having slept on it, I'm leaning towards to the approach of
using PQprint() instead of just tweaking the existing code.  At first
I thought that was too much churn in the output files, but it really
does seem to make them significantly more readable.

            regards, tom lane



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Andres Freund <andres@anarazel.de> writes:
> On 2021-06-15 22:44:29 -0400, Tom Lane wrote:
>> +    memset(&popt, 0, sizeof(popt));
>> +    popt.header = true;
>> +    popt.align = true;
>> +    popt.fieldSep = "|";
>> +    PQprint(stdout, res, &popt);

> Is there an argument for not aligning because that can make diffs larger
> than the actual data changes? E.g. one row being longer will cause all
> rows in the result set to be shown as differing because of the added
> padding?  This has been a problem in the normal regression tests, where
> we solved it by locally disabling alignment. It might be unproblematic
> for isolationtester, because we don't often have large result sets...

I tried it that way first, and didn't much like the look of it.

I think the result sets in the isolation tests don't have a big
problem here: as you say, they aren't very large, and in most of them
the column widths are fairly uniform anyway.

            regards, tom lane



Re: Improving isolationtester's data output

От
"Andres Freund"
Дата:
Hi,

On Wed, Jun 16, 2021, at 12:37, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2021-06-15 22:44:29 -0400, Tom Lane wrote:
> >> +    memset(&popt, 0, sizeof(popt));
> >> +    popt.header = true;
> >> +    popt.align = true;
> >> +    popt.fieldSep = "|";
> >> +    PQprint(stdout, res, &popt);
> 
> > Is there an argument for not aligning because that can make diffs larger
> > than the actual data changes? E.g. one row being longer will cause all
> > rows in the result set to be shown as differing because of the added
> > padding?  This has been a problem in the normal regression tests, where
> > we solved it by locally disabling alignment. It might be unproblematic
> > for isolationtester, because we don't often have large result sets...
> 
> I tried it that way first, and didn't much like the look of it.
> 
> I think the result sets in the isolation tests don't have a big
> problem here: as you say, they aren't very large, and in most of them
> the column widths are fairly uniform anyway.

Cool. Just wanted to be sure we considered it.

Andres



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Michael Paquier <michael@paquier.xyz> writes:
> On Wed, Jun 16, 2021 at 03:33:29PM -0400, Tom Lane wrote:
>> After checking cross-version diffs to see how painful that is likely
>> to be, I'm inclined to also back-patch Michael's v13 commits
>> 989d23b04beac0c26f44c379b04ac781eaa4265e
>> Detect unused steps in isolation specs and do some cleanup
>> 9903338b5ea59093d77cfe50ec0b1c22d4a7d843
>> Remove dry-run mode from isolationtester

> There may be tests in stable branches that define steps remaining
> unused, but that's a minimal risk.

Yeah, it only results in a message in the output file anyway.

> Down to which version do you need
> these?  All the way down to 9.6?

Yes please.

            regards, tom lane



Re: Improving isolationtester's data output

От
Tom Lane
Дата:
Michael Paquier <michael@paquier.xyz> writes:
> Nobody has complained about the removal of --dry-run with 13~.  The
> second one would cause tests to fail after a minor upgrade for
> extensions using isolationtester, but it seems like a good thing to
> inform people about anyway.  So, okay, both parts are done.

Thanks!

            regards, tom lane