mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-31 03:57:21 +02:00
Previously, isolationtester displayed SQL query results using some
ad-hoc code that clearly hadn't had much effort expended on it.
Field values longer than 14 characters weren't separated from
the next field, and usually caused misalignment of the columns
too. Also there was no visual separation of a query's result
from subsequent isolationtester output. This made test result
files confusing and hard to read.
To improve matters, let's use libpq's PQprint() function. Although
that's long since unused by psql, it's still plenty good enough
for the purpose here.
Like 741d7f104
, back-patch to all supported branches, so that this
isn't a stumbling block for back-patching isolation test changes.
Discussion: https://postgr.es/m/582362.1623798221@sss.pgh.pa.us
62 lines
2.5 KiB
Plaintext
62 lines
2.5 KiB
Plaintext
Parsed test spec with 2 sessions
|
|
|
|
starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_sub_get_base_snap s1_produce_new_snap s0_insert s0_end_sub0 s0_commit s0_get_changes
|
|
step s0_begin: BEGIN;
|
|
step s0_begin_sub0: SAVEPOINT s0;
|
|
step s0_log_assignment: SELECT pg_current_xact_id() IS NULL;
|
|
?column?
|
|
--------
|
|
f
|
|
(1 row)
|
|
|
|
step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0);
|
|
step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int;
|
|
step s0_insert: INSERT INTO harvest VALUES (1, 2, 3);
|
|
step s0_end_sub0: RELEASE SAVEPOINT s0;
|
|
step s0_commit: COMMIT;
|
|
step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
|
|
data
|
|
----------------------------------------------------------------------------------
|
|
BEGIN
|
|
table public.dummy: INSERT: i[integer]:0
|
|
table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3
|
|
COMMIT
|
|
(4 rows)
|
|
|
|
?column?
|
|
--------
|
|
stop
|
|
(1 row)
|
|
|
|
|
|
starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_begin_sub1 s0_sub_get_base_snap s1_produce_new_snap s0_insert s0_end_sub1 s0_end_sub0 s0_commit s0_get_changes
|
|
step s0_begin: BEGIN;
|
|
step s0_begin_sub0: SAVEPOINT s0;
|
|
step s0_log_assignment: SELECT pg_current_xact_id() IS NULL;
|
|
?column?
|
|
--------
|
|
f
|
|
(1 row)
|
|
|
|
step s0_begin_sub1: SAVEPOINT s1;
|
|
step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0);
|
|
step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int;
|
|
step s0_insert: INSERT INTO harvest VALUES (1, 2, 3);
|
|
step s0_end_sub1: RELEASE SAVEPOINT s1;
|
|
step s0_end_sub0: RELEASE SAVEPOINT s0;
|
|
step s0_commit: COMMIT;
|
|
step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
|
|
data
|
|
----------------------------------------------------------------------------------
|
|
BEGIN
|
|
table public.dummy: INSERT: i[integer]:0
|
|
table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3
|
|
COMMIT
|
|
(4 rows)
|
|
|
|
?column?
|
|
--------
|
|
stop
|
|
(1 row)
|
|
|