35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
# INSERT...ON CONFLICT DO NOTHING test with multiple rows
|
|
# in higher isolation levels
|
|
|
|
setup
|
|
{
|
|
CREATE TABLE ints (key int, val text, PRIMARY KEY (key) INCLUDE (val));
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE ints;
|
|
}
|
|
|
|
session s1
|
|
step beginrr1 { BEGIN ISOLATION LEVEL REPEATABLE READ; }
|
|
step begins1 { BEGIN ISOLATION LEVEL SERIALIZABLE; }
|
|
step donothing1 { INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; }
|
|
step c1 { COMMIT; }
|
|
step show { SELECT * FROM ints; }
|
|
|
|
session s2
|
|
step beginrr2 { BEGIN ISOLATION LEVEL REPEATABLE READ; }
|
|
step begins2 { BEGIN ISOLATION LEVEL SERIALIZABLE; }
|
|
step donothing2 { INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; }
|
|
step c2 { COMMIT; }
|
|
|
|
permutation beginrr1 beginrr2 donothing1 c1 donothing2 c2 show
|
|
permutation beginrr1 beginrr2 donothing2 c2 donothing1 c1 show
|
|
permutation beginrr1 beginrr2 donothing1 donothing2 c1 c2 show
|
|
permutation beginrr1 beginrr2 donothing2 donothing1 c2 c1 show
|
|
permutation begins1 begins2 donothing1 c1 donothing2 c2 show
|
|
permutation begins1 begins2 donothing2 c2 donothing1 c1 show
|
|
permutation begins1 begins2 donothing1 donothing2 c1 c2 show
|
|
permutation begins1 begins2 donothing2 donothing1 c2 c1 show
|