mirror of https://github.com/citusdata/citus.git
72 lines
2.9 KiB
SQL
72 lines
2.9 KiB
SQL
CREATE SCHEMA modification_correctness;
|
|
SET search_path to 'modification_correctness';
|
|
|
|
CREATE TABLE test(k int, a int, b int, c int unique, d int, e int);
|
|
ALTER TABLE test DROP column k;
|
|
SELECT create_distributed_table('test', 'c');
|
|
ALTER TABLE test DROP column b;
|
|
|
|
UPDATE test SET a = 5, c = 5;
|
|
UPDATE test SET a = 5, c = d, d =3;
|
|
UPDATE test SET c = d, d =3;
|
|
UPDATE test SET d=c, c = d;
|
|
UPDATE test SET e = c, d = 3;
|
|
UPDATE test SET c = c;
|
|
UPDATE test SET c = c, c = 3;
|
|
UPDATE test SET c = c, d = c;
|
|
UPDATE test SET c = c, d = 5, e = 3;
|
|
|
|
|
|
|
|
INSERT INTO test (c,d) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=7;
|
|
INSERT INTO test (c,d) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (c,d) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET a=7;
|
|
INSERT INTO test (d,c) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=7;
|
|
INSERT INTO test (d,c) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (a,c) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (c) VALUES(3) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c, e = EXCLUDED.c;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c, e = 7;
|
|
|
|
-- make sure that without fast path planner, we don't get any unexpected errors.
|
|
SET citus.enable_fast_path_router_planner to false;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET d=7;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c, e = EXCLUDED.c;
|
|
INSERT INTO test (c,a) VALUES(3,4) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c, e = 7;
|
|
UPDATE test SET e = c, d = 3;
|
|
UPDATE test SET c = c;
|
|
UPDATE test SET c = c, c = 3;
|
|
UPDATE test SET c = c, d = c;
|
|
UPDATE test SET c = c, d = 5, e = 3;
|
|
RESET citus.enable_fast_path_router_planner;
|
|
|
|
|
|
PREPARE foo(int,int) AS INSERT INTO test (c,a) VALUES($1,$2) ON CONFLICT(c) DO UPDATE SET c=EXCLUDED.c, d = EXCLUDED.c, e = $1;
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
EXECUTE foo(1,2);
|
|
|
|
PREPARE foo1(int, int) AS UPDATE test SET c = c, d = $1, e = $2;
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
EXECUTE foo1(1,2);
|
|
|
|
-- we don't get an error because this is something like c = c
|
|
UPDATE test SET a = 5,d = 2, c = 5 FROM (SELECT * FROM test LIMIT 10) t2 WHERE t2.d = test.c and test.c = 5;
|
|
-- we should get an error because c gets 6 -> 5
|
|
UPDATE test SET a = 5,d = 2, c = 5 FROM (SELECT * FROM test LIMIT 10) t2 WHERE t2.d = test.c and test.c = 6;
|
|
|
|
|
|
DROP SCHEMA modification_correctness CASCADE;
|