1 Parsed test spec with 2 sessions
3 starting permutation: update1 merge_status c2 select1 c1
4 step update1: UPDATE target t SET balance = balance + 10, val = t.val || ' updated by update1' WHERE t.key = 1;
7 USING (SELECT 1 as key) s
9 WHEN MATCHED AND status = 's1' THEN
10 UPDATE SET status = 's2', val = t.val || ' when1'
11 WHEN MATCHED AND status = 's2' THEN
12 UPDATE SET status = 's3', val = t.val || ' when2'
13 WHEN MATCHED AND status = 's3' THEN
14 UPDATE SET status = 's4', val = t.val || ' when3';
17 step merge_status: <... completed>
18 step select1: SELECT * FROM target;
19 key balance status val
21 1 170 s2 setup updated by update1 when1
24 starting permutation: update2 merge_status c2 select1 c1
25 step update2: UPDATE target t SET status = 's2', val = t.val || ' updated by update2' WHERE t.key = 1;
28 USING (SELECT 1 as key) s
30 WHEN MATCHED AND status = 's1' THEN
31 UPDATE SET status = 's2', val = t.val || ' when1'
32 WHEN MATCHED AND status = 's2' THEN
33 UPDATE SET status = 's3', val = t.val || ' when2'
34 WHEN MATCHED AND status = 's3' THEN
35 UPDATE SET status = 's4', val = t.val || ' when3';
38 step merge_status: <... completed>
39 step select1: SELECT * FROM target;
40 key balance status val
42 1 160 s3 setup updated by update2 when2
45 starting permutation: update3 merge_status c2 select1 c1
46 step update3: UPDATE target t SET status = 's3', val = t.val || ' updated by update3' WHERE t.key = 1;
49 USING (SELECT 1 as key) s
51 WHEN MATCHED AND status = 's1' THEN
52 UPDATE SET status = 's2', val = t.val || ' when1'
53 WHEN MATCHED AND status = 's2' THEN
54 UPDATE SET status = 's3', val = t.val || ' when2'
55 WHEN MATCHED AND status = 's3' THEN
56 UPDATE SET status = 's4', val = t.val || ' when3';
59 step merge_status: <... completed>
60 step select1: SELECT * FROM target;
61 key balance status val
63 1 160 s4 setup updated by update3 when3
66 starting permutation: update5 merge_status c2 select1 c1
67 step update5: UPDATE target t SET status = 's5', val = t.val || ' updated by update5' WHERE t.key = 1;
70 USING (SELECT 1 as key) s
72 WHEN MATCHED AND status = 's1' THEN
73 UPDATE SET status = 's2', val = t.val || ' when1'
74 WHEN MATCHED AND status = 's2' THEN
75 UPDATE SET status = 's3', val = t.val || ' when2'
76 WHEN MATCHED AND status = 's3' THEN
77 UPDATE SET status = 's4', val = t.val || ' when3';
80 step merge_status: <... completed>
81 step select1: SELECT * FROM target;
82 key balance status val
84 1 160 s5 setup updated by update5
87 starting permutation: update_bal1 merge_bal c2 select1 c1
88 step update_bal1: UPDATE target t SET balance = 50, val = t.val || ' updated by update_bal1' WHERE t.key = 1;
91 USING (SELECT 1 as key) s
93 WHEN MATCHED AND balance < 100 THEN
94 UPDATE SET balance = balance * 2, val = t.val || ' when1'
95 WHEN MATCHED AND balance < 200 THEN
96 UPDATE SET balance = balance * 4, val = t.val || ' when2'
97 WHEN MATCHED AND balance < 300 THEN
98 UPDATE SET balance = balance * 8, val = t.val || ' when3';
101 step merge_bal: <... completed>
102 step select1: SELECT * FROM target;
103 key balance status val
105 1 100 s1 setup updated by update_bal1 when1