diff options
Diffstat (limited to 'src/test/isolation/expected/eval-plan-qual-trigger.out')
-rw-r--r-- | src/test/isolation/expected/eval-plan-qual-trigger.out | 1598 |
1 files changed, 1061 insertions, 537 deletions
diff --git a/src/test/isolation/expected/eval-plan-qual-trigger.out b/src/test/isolation/expected/eval-plan-qual-trigger.out index 833834afaaf..f6714c2e599 100644 --- a/src/test/isolation/expected/eval-plan-qual-trigger.out +++ b/src/test/isolation/expected/eval-plan-qual-trigger.out @@ -10,21 +10,29 @@ starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -37,9 +45,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-a = text key-a: t @@ -53,35 +63,47 @@ step s2_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_upd_a_data s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -94,9 +116,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_r: ROLLBACK; s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t @@ -110,15 +134,19 @@ step s2_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_c s2_del_a s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -126,21 +154,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -153,9 +189,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-a = text key-a: t @@ -169,14 +207,18 @@ step s2_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_del_a s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -184,21 +226,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -211,9 +261,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_r: ROLLBACK; s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t @@ -227,34 +279,46 @@ step s2_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -267,9 +331,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -286,35 +352,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -327,9 +405,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -344,15 +424,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -360,21 +444,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -387,9 +479,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -406,15 +500,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -422,21 +520,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -449,9 +555,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -466,15 +574,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -482,21 +594,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -509,9 +629,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -524,13 +646,17 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -538,21 +664,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -565,9 +699,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -582,15 +718,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -598,19 +738,25 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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; @@ -618,9 +764,11 @@ step s2_ins_a: <... completed> ERROR: duplicate key value violates unique constraint "trigtest_pkey" step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -628,32 +776,42 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -665,23 +823,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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) @@ -694,9 +860,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -713,15 +881,19 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-upserts2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -733,23 +905,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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) @@ -762,9 +942,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -781,15 +963,19 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-upserts2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -799,19 +985,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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') @@ -828,14 +1020,18 @@ s2: NOTICE: upk: text val-a-s1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+----------------- +key-a|val-a-s1-upserts2 +(1 row) -key-a val-a-s1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+----------------- +key-a|val-a-s1-upserts2 +(1 row) -key-a val-a-s1-upserts2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -845,19 +1041,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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') @@ -871,14 +1073,18 @@ step s2_upsert_a_data: step s1_r: ROLLBACK; s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <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_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -888,19 +1094,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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) @@ -912,9 +1124,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -931,14 +1145,18 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -948,19 +1166,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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) @@ -972,9 +1196,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -988,33 +1214,45 @@ step s2_upsert_a_data: step s1_r: ROLLBACK; s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <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 @@ -1026,9 +1264,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1044,34 +1284,46 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1083,9 +1335,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1099,35 +1353,47 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_del_a s1_c s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1139,9 +1405,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1157,34 +1425,46 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1) new: <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_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1196,9 +1476,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1212,34 +1494,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <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_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1251,9 +1545,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1266,33 +1562,45 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1304,9 +1612,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1320,34 +1630,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1359,9 +1681,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1374,32 +1698,44 @@ step s2_del_a: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_del_a: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1411,9 +1747,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1427,34 +1765,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <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_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1467,9 +1817,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1483,34 +1835,46 @@ step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-c = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +key-c|val-c-s1 +(2 rows) -key-b val-a-s1-tobs1 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1523,9 +1887,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1540,35 +1906,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-c|val-c-s1 +(2 rows) -key-a val-a-s1-ups2 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_b_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1581,9 +1959,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-b: f s2: NOTICE: upd: text key-c = text key-b: f step s2_upd_b_data: @@ -1593,35 +1973,47 @@ step s2_upd_b_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key|data +---+---- +(0 rows) step s1_c: COMMIT; step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +key-c|val-c-s1 +(2 rows) -key-b val-a-s1-tobs1 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_all_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1634,9 +2026,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a <> text mismatch: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_all_data: @@ -1656,16 +2050,20 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-b,val-a-s1-tobs1) new: (key-b,val-a-s1-tobs1-ups2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-c,val-c-s1) new: (key-c,val-c-s1-ups2) step s2_upd_all_data: <... completed> -key data +key |data +-----+------------------- +key-b|val-a-s1-tobs1-ups2 +key-c|val-c-s1-ups2 +(2 rows) -key-b val-a-s1-tobs1-ups2 -key-c val-c-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------- +key-b|val-a-s1-tobs1-ups2 +key-c|val-c-s1-ups2 +(2 rows) -key-b val-a-s1-tobs1-ups2 -key-c val-c-s1-ups2 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1673,21 +2071,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1700,9 +2106,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1715,13 +2123,17 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-c = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1729,21 +2141,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1756,9 +2176,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1773,35 +2195,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-c|val-c-s1 +(2 rows) -key-a val-a-s1-ups2 -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1814,9 +2248,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1829,33 +2265,45 @@ step s2_del_a: step s1_c: COMMIT; s2: NOTICE: upd: text key-c = text key-a: f step s2_del_a: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1868,9 +2316,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1885,14 +2335,18 @@ s2: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <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_b s1_b_rc s2_b_rc s1_ins_a s1_upd_b_data s2_upd_b_data s1_del_b s1_upd_a_tob s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1904,23 +2358,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <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) @@ -1933,9 +2395,11 @@ step s1_upd_b_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-b|val-b-s1-ups1 +(1 row) -key-b val-b-s1-ups1 s2: NOTICE: upd: text key-b = text key-b: t s2: NOTICE: upk: text val-b-s1 <> text mismatch: t step s2_upd_b_data: @@ -1957,9 +2421,11 @@ step s1_del_b: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+------------- +key-b|val-b-s1-ups1 +(1 row) -key-b val-b-s1-ups1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1971,38 +2437,52 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 step s1_c: COMMIT; step s2_upd_b_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -2015,9 +2495,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2032,30 +2514,40 @@ step s2_upd_a_data: <... completed> ERROR: could not serialize access due to concurrent update step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -2068,9 +2560,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2085,15 +2579,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -2101,21 +2599,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -2128,9 +2634,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2145,9 +2653,11 @@ step s2_upd_a_data: <... completed> ERROR: could not serialize access due to concurrent delete step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -2155,21 +2665,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -2182,9 +2700,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2199,12 +2719,16 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 |