mirror of https://github.com/citusdata/citus.git
125 lines
2.5 KiB
Ruby
125 lines
2.5 KiB
Ruby
setup
|
|
{
|
|
SET citus.shard_replication_factor TO 1;
|
|
|
|
CREATE USER test_user_1;
|
|
SELECT run_command_on_workers('CREATE USER test_user_1');
|
|
|
|
CREATE USER test_user_2;
|
|
SELECT run_command_on_workers('CREATE USER test_user_2');
|
|
|
|
SET ROLE test_user_1;
|
|
CREATE TABLE test_table(column1 int, column2 int);
|
|
SELECT create_distributed_table('test_table', 'column1');
|
|
RESET ROLE;
|
|
}
|
|
|
|
teardown
|
|
{
|
|
BEGIN;
|
|
DROP TABLE IF EXISTS test_table;
|
|
DROP USER test_user_1, test_user_2;
|
|
SELECT run_command_on_workers('DROP USER test_user_1, test_user_2');
|
|
COMMIT;
|
|
}
|
|
|
|
session "s1"
|
|
|
|
// run_command_on_placements is done in a separate step because the setup is executed as a single transaction
|
|
step "s1-grant"
|
|
{
|
|
SET ROLE test_user_1;
|
|
SELECT bool_and(success) FROM run_command_on_placements('test_table', 'GRANT ALL ON TABLE %s TO test_user_2');
|
|
GRANT ALL ON test_table TO test_user_2;
|
|
}
|
|
|
|
step "s1-begin"
|
|
{
|
|
BEGIN;
|
|
SET ROLE test_user_1;
|
|
}
|
|
|
|
step "s1-index"
|
|
{
|
|
CREATE INDEX test_index ON test_table(column1);
|
|
}
|
|
|
|
step "s1-reindex"
|
|
{
|
|
REINDEX TABLE test_table;
|
|
}
|
|
|
|
step "s1-drop-index"
|
|
{
|
|
DROP INDEX IF EXISTS test_index;
|
|
}
|
|
|
|
step "s1-insert"
|
|
{
|
|
UPDATE test_table SET column2 = 1;
|
|
}
|
|
|
|
step "s1-truncate"
|
|
{
|
|
TRUNCATE test_table;
|
|
}
|
|
|
|
step "s1-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
session "s2"
|
|
|
|
step "s2-begin"
|
|
{
|
|
BEGIN;
|
|
SET ROLE test_user_2;
|
|
}
|
|
|
|
step "s2-index"
|
|
{
|
|
CREATE INDEX test_index ON test_table(column1);
|
|
}
|
|
|
|
step "s2-reindex"
|
|
{
|
|
REINDEX TABLE test_table;
|
|
}
|
|
|
|
step "s2-drop-index"
|
|
{
|
|
DROP INDEX IF EXISTS test_index;
|
|
}
|
|
|
|
step "s2-insert"
|
|
{
|
|
UPDATE test_table SET column2 = 2;
|
|
}
|
|
|
|
step "s2-truncate"
|
|
{
|
|
TRUNCATE test_table;
|
|
}
|
|
|
|
step "s2-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
// REINDEX
|
|
permutation "s1-begin" "s2-begin" "s2-reindex" "s1-insert" "s2-commit" "s1-commit"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s2-reindex" "s1-insert" "s2-insert" "s2-commit" "s1-commit"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s1-reindex" "s2-insert" "s1-insert" "s1-commit" "s2-commit"
|
|
|
|
// CREATE INDEX
|
|
permutation "s1-begin" "s2-begin" "s2-index" "s1-insert" "s2-commit" "s1-commit" "s2-drop-index"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s2-insert" "s1-index" "s2-insert" "s2-commit" "s1-commit" "s1-drop-index"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s1-index" "s2-index" "s1-insert" "s1-commit" "s2-commit" "s1-drop-index" "s2-drop-index"
|
|
|
|
// TRUNCATE
|
|
permutation "s1-begin" "s2-begin" "s2-truncate" "s1-insert" "s2-commit" "s1-commit"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s1-truncate" "s2-insert" "s1-insert" "s1-commit" "s2-commit"
|
|
permutation "s1-grant" "s1-begin" "s2-begin" "s1-truncate" "s2-truncate" "s1-commit" "s2-commit"
|
|
|