# Read-write-unique test. # From bug report 9301. setup { CREATE TABLE test ( key integer UNIQUE, val text ); CREATE OR REPLACE FUNCTION insert_unique(k integer, v text) RETURNS void LANGUAGE SQL AS $$ INSERT INTO test (key, val) SELECT k, v WHERE NOT EXISTS (SELECT key FROM test WHERE key = k); $$; } teardown { DROP FUNCTION insert_unique(integer, text); DROP TABLE test; } session s1 setup { BEGIN ISOLATION LEVEL SERIALIZABLE; } step rw1 { SELECT insert_unique(1, '1'); } step c1 { COMMIT; } session s2 setup { BEGIN ISOLATION LEVEL SERIALIZABLE; } step rw2 { SELECT insert_unique(1, '2'); } step c2 { COMMIT; } permutation rw1 rw2 c1 c2