]> granicus.if.org Git - postgresql/blob - src/test/isolation/expected/merge-match-recheck.out
MERGE SQL Command following SQL:2016
[postgresql] / src / test / isolation / expected / merge-match-recheck.out
1 Parsed test spec with 2 sessions
2
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;
5 step merge_status: 
6   MERGE INTO target t
7   USING (SELECT 1 as key) s
8   ON s.key = t.key
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';
15  <waiting ...>
16 step c2: COMMIT;
17 step merge_status: <... completed>
18 step select1: SELECT * FROM target;
19 key            balance        status         val            
20
21 1              170            s2             setup updated by update1 when1
22 step c1: COMMIT;
23
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;
26 step merge_status: 
27   MERGE INTO target t
28   USING (SELECT 1 as key) s
29   ON s.key = t.key
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';
36  <waiting ...>
37 step c2: COMMIT;
38 step merge_status: <... completed>
39 step select1: SELECT * FROM target;
40 key            balance        status         val            
41
42 1              160            s3             setup updated by update2 when2
43 step c1: COMMIT;
44
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;
47 step merge_status: 
48   MERGE INTO target t
49   USING (SELECT 1 as key) s
50   ON s.key = t.key
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';
57  <waiting ...>
58 step c2: COMMIT;
59 step merge_status: <... completed>
60 step select1: SELECT * FROM target;
61 key            balance        status         val            
62
63 1              160            s4             setup updated by update3 when3
64 step c1: COMMIT;
65
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;
68 step merge_status: 
69   MERGE INTO target t
70   USING (SELECT 1 as key) s
71   ON s.key = t.key
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';
78  <waiting ...>
79 step c2: COMMIT;
80 step merge_status: <... completed>
81 step select1: SELECT * FROM target;
82 key            balance        status         val            
83
84 1              160            s5             setup updated by update5
85 step c1: COMMIT;
86
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;
89 step merge_bal: 
90   MERGE INTO target t
91   USING (SELECT 1 as key) s
92   ON s.key = t.key
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';
99  <waiting ...>
100 step c2: COMMIT;
101 step merge_bal: <... completed>
102 step select1: SELECT * FROM target;
103 key            balance        status         val            
104
105 1              100            s1             setup updated by update_bal1 when1
106 step c1: COMMIT;