mirror of https://github.com/citusdata/citus.git
110 lines
3.1 KiB
Ruby
110 lines
3.1 KiB
Ruby
setup
|
|
{
|
|
-- revert back to pg_isolation_test_session_is_blocked until the tests are fixed
|
|
SELECT citus_internal.restore_isolation_tester_func();
|
|
|
|
CREATE OR REPLACE FUNCTION test_assign_global_pid()
|
|
RETURNS void
|
|
LANGUAGE C STRICT
|
|
AS 'citus', $$test_assign_global_pid$$;
|
|
SET citus.shard_replication_factor TO 1;
|
|
SET citus.shard_count TO 4;
|
|
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 1300001;
|
|
|
|
CREATE TABLE test_table(column1 int, column2 int);
|
|
SELECT create_distributed_table('test_table', 'column1');
|
|
}
|
|
|
|
teardown
|
|
{
|
|
-- replace pg_isolation_test_session_is_blocked so that next tests are run with Citus implementation
|
|
SELECT citus_internal.replace_isolation_tester_func();
|
|
|
|
DROP TABLE test_table;
|
|
}
|
|
|
|
session "s1"
|
|
|
|
step "s1-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s1-cache-connections"
|
|
{
|
|
SET citus.max_cached_conns_per_worker TO 4;
|
|
SET citus.force_max_query_parallelization TO on;
|
|
UPDATE test_table SET column2 = 0;
|
|
}
|
|
|
|
step "s1-alter-table"
|
|
{
|
|
ALTER TABLE test_table ADD COLUMN x INT;
|
|
}
|
|
|
|
step "s1-select"
|
|
{
|
|
SELECT count(*) FROM test_table;
|
|
}
|
|
|
|
step "s1-select-router"
|
|
{
|
|
SELECT count(*) FROM test_table WHERE column1 = 55;
|
|
}
|
|
|
|
step "s1-insert"
|
|
{
|
|
INSERT INTO test_table VALUES (100, 100);
|
|
}
|
|
|
|
step "s1-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
session "s2"
|
|
|
|
step "s2-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s2-rollback"
|
|
{
|
|
ROLLBACK;
|
|
}
|
|
|
|
step "s2-sleep"
|
|
{
|
|
SELECT pg_sleep(0.5);
|
|
}
|
|
|
|
step "s2-view-dist"
|
|
{
|
|
SELECT query, citus_nodename_for_nodeid(citus_nodeid_for_gpid(global_pid)), citus_nodeport_for_nodeid(citus_nodeid_for_gpid(global_pid)), state, wait_event_type, wait_event, usename, datname FROM citus_dist_stat_activity WHERE query NOT ILIKE ALL(VALUES('%pg_prepared_xacts%'), ('%COMMIT%'), ('%BEGIN%'), ('%pg_catalog.pg_isolation_test_session_is_blocked%'), ('%citus_add_node%')) AND backend_type = 'client backend' ORDER BY query DESC;
|
|
}
|
|
|
|
session "s3"
|
|
|
|
step "s3-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s3-rollback"
|
|
{
|
|
ROLLBACK;
|
|
}
|
|
|
|
step "s3-view-worker"
|
|
{
|
|
SELECT query, citus_nodename_for_nodeid(citus_nodeid_for_gpid(global_pid)), citus_nodeport_for_nodeid(citus_nodeid_for_gpid(global_pid)), state, wait_event_type, wait_event, usename, datname FROM citus_stat_activity WHERE query NOT ILIKE ALL(VALUES('%pg_prepared_xacts%'), ('%COMMIT%'), ('%csa_from_one_node%')) AND is_worker_query = true AND backend_type = 'client backend' ORDER BY query DESC;
|
|
}
|
|
|
|
// we prefer to sleep before "s2-view-dist" so that we can ensure
|
|
// the "wait_event" in the output doesn't change randomly (e.g., NULL to CliendRead etc.)
|
|
permutation "s1-cache-connections" "s1-begin" "s2-begin" "s3-begin" "s1-alter-table" "s2-sleep" "s2-view-dist" "s3-view-worker" "s2-rollback" "s1-commit" "s3-rollback"
|
|
permutation "s1-cache-connections" "s1-begin" "s2-begin" "s3-begin" "s1-insert" "s2-sleep" "s2-view-dist" "s3-view-worker" "s2-rollback" "s1-commit" "s3-rollback"
|
|
permutation "s1-cache-connections" "s1-begin" "s2-begin" "s3-begin" "s1-select" "s2-sleep" "s2-view-dist" "s3-view-worker" "s2-rollback" "s1-commit" "s3-rollback"
|
|
permutation "s1-cache-connections" "s1-begin" "s2-begin" "s3-begin" "s1-select-router" "s2-sleep" "s2-view-dist" "s3-view-worker" "s2-rollback" "s1-commit" "s3-rollback"
|