mirror of https://github.com/citusdata/citus.git
164 lines
3.4 KiB
Python
164 lines
3.4 KiB
Python
setup
|
|
{
|
|
CREATE TABLE target_table(col_1 int primary key, col_2 int);
|
|
SELECT create_distributed_table('target_table','col_1');
|
|
INSERT INTO target_table VALUES(1,2),(2,3),(3,4),(4,5),(5,6);
|
|
|
|
CREATE TABLE source_table(col_1 int, col_2 int, col_3 int);
|
|
SELECT create_distributed_table('source_table','col_1');
|
|
INSERT INTO source_table VALUES(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5);
|
|
|
|
SET citus.shard_replication_factor to 2;
|
|
CREATE TABLE target_table_2(col_1 int primary key, col_2 int, col_3 int);
|
|
SELECT create_distributed_table('target_table_2', 'col_1');
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE target_table, target_table_2, source_table;
|
|
}
|
|
|
|
session "s1"
|
|
|
|
step "s1-begin"
|
|
{
|
|
SET citus.shard_replication_factor to 1;
|
|
BEGIN;
|
|
}
|
|
|
|
step "s1-begin-replication-factor-2"
|
|
{
|
|
SET citus.shard_replication_factor to 2;
|
|
BEGIN;
|
|
}
|
|
|
|
step "s1-insert-into-select-conflict-update"
|
|
{
|
|
INSERT INTO target_table
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT(col_1) DO UPDATE SET col_2 = EXCLUDED.col_2 RETURNING *;
|
|
}
|
|
|
|
step "s1-insert-into-select-conflict-do-nothing"
|
|
{
|
|
INSERT INTO target_table
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT DO NOTHING;
|
|
}
|
|
|
|
step "s1-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
step "s1-insert-into-select-conflict-update-replication-factor-2"
|
|
{
|
|
INSERT INTO target_table_2
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT(col_1) DO UPDATE SET col_2 = EXCLUDED.col_2 RETURNING *;
|
|
}
|
|
|
|
session "s2"
|
|
|
|
step "s2-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s2-begin-replication-factor-2"
|
|
{
|
|
SET citus.shard_replication_factor to 2;
|
|
BEGIN;
|
|
}
|
|
|
|
step "s2-insert-into-select-conflict-update"
|
|
{
|
|
INSERT INTO target_table
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT(col_1) DO UPDATE SET col_2 = EXCLUDED.col_2 RETURNING *;
|
|
}
|
|
|
|
step "s2-insert-into-select-conflict-update-replication-factor-2"
|
|
{
|
|
INSERT INTO target_table_2
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT(col_1) DO UPDATE SET col_2 = EXCLUDED.col_2 RETURNING *;
|
|
}
|
|
|
|
step "s2-insert-into-select-conflict-do-nothing"
|
|
{
|
|
INSERT INTO target_table
|
|
SELECT
|
|
col_1, col_2
|
|
FROM (
|
|
SELECT
|
|
col_1, col_2, col_3
|
|
FROM
|
|
source_table
|
|
LIMIT 5
|
|
) as foo
|
|
ON CONFLICT DO NOTHING;
|
|
}
|
|
|
|
step "s2-update"
|
|
{
|
|
UPDATE target_table SET col_2 = 5;
|
|
}
|
|
|
|
step "s2-delete"
|
|
{
|
|
DELETE FROM target_table;
|
|
}
|
|
|
|
step "s2-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
permutation "s1-begin" "s1-insert-into-select-conflict-update" "s2-begin" "s2-update" "s1-commit" "s2-commit"
|
|
permutation "s1-begin" "s1-insert-into-select-conflict-do-nothing" "s2-begin" "s2-delete" "s1-commit" "s2-commit"
|
|
permutation "s1-begin" "s1-insert-into-select-conflict-do-nothing" "s2-begin" "s2-insert-into-select-conflict-update" "s1-commit" "s2-commit"
|
|
permutation "s1-begin" "s1-insert-into-select-conflict-update" "s2-begin" "s2-insert-into-select-conflict-update" "s1-commit" "s2-commit"
|
|
permutation "s1-begin" "s1-insert-into-select-conflict-update" "s2-begin" "s2-insert-into-select-conflict-do-nothing" "s1-commit" "s2-commit"
|
|
permutation "s1-begin-replication-factor-2" "s1-insert-into-select-conflict-update-replication-factor-2" "s2-begin-replication-factor-2" "s2-insert-into-select-conflict-update-replication-factor-2" "s1-commit" "s2-commit"
|