mirror of https://github.com/citusdata/citus.git
add isolation tests that show reference table creation doesn't block anymore
parent
4a290560b2
commit
1dccc40268
|
@ -0,0 +1,105 @@
|
||||||
|
unused step name: s1-abort
|
||||||
|
unused step name: s2-abort
|
||||||
|
Parsed test spec with 2 sessions
|
||||||
|
|
||||||
|
starting permutation: s1-begin s1-create s2-create s1-commit
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s1-create:
|
||||||
|
CREATE TABLE reference_table_s1(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s1');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s2-create:
|
||||||
|
CREATE TABLE reference_table_s2(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s2');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
|
||||||
|
starting permutation: s1-create s2-create s1-begin s1-drop s2-drop s1-commit
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-create:
|
||||||
|
CREATE TABLE reference_table_s1(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s1');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s2-create:
|
||||||
|
CREATE TABLE reference_table_s2(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s2');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s1-drop:
|
||||||
|
DROP TABLE reference_table_s1;
|
||||||
|
|
||||||
|
step s2-drop:
|
||||||
|
DROP TABLE reference_table_s2;
|
||||||
|
|
||||||
|
step s1-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
|
||||||
|
starting permutation: s1-create s2-begin s2-create s1-drop s2-commit
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-create:
|
||||||
|
CREATE TABLE reference_table_s1(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s1');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s2-begin:
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
step s2-create:
|
||||||
|
CREATE TABLE reference_table_s2(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s2');
|
||||||
|
|
||||||
|
create_reference_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
step s1-drop:
|
||||||
|
DROP TABLE reference_table_s1;
|
||||||
|
|
||||||
|
step s2-commit:
|
||||||
|
COMMIT;
|
||||||
|
|
|
@ -69,6 +69,7 @@ test: isolation_undistribute_table
|
||||||
test: isolation_fix_partition_shard_index_names
|
test: isolation_fix_partition_shard_index_names
|
||||||
test: isolation_global_pid
|
test: isolation_global_pid
|
||||||
test: isolation_citus_locks
|
test: isolation_citus_locks
|
||||||
|
test: isolation_reference_table
|
||||||
|
|
||||||
# Rebalancer
|
# Rebalancer
|
||||||
test: isolation_blocking_move_single_shard_commands
|
test: isolation_blocking_move_single_shard_commands
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
// reference tables _do_ lock on the first reference table in the shardgroup due to the lack of shardgroups in the
|
||||||
|
// system. When we run the tests we want to make sure the tables we are testing against cannot be the first reference
|
||||||
|
// table. For this purpose we create a reference table that we will _not_ interact with during the tests.
|
||||||
|
setup
|
||||||
|
{
|
||||||
|
CREATE TABLE first_reference_table(a int);
|
||||||
|
SELECT create_reference_table('first_reference_table');
|
||||||
|
}
|
||||||
|
|
||||||
|
teardown
|
||||||
|
{
|
||||||
|
DROP TABLE first_reference_table;
|
||||||
|
DROP TABLE IF EXISTS reference_table_s1;
|
||||||
|
DROP TABLE IF EXISTS reference_table_s2;
|
||||||
|
}
|
||||||
|
|
||||||
|
session "s1"
|
||||||
|
|
||||||
|
step "s1-begin"
|
||||||
|
{
|
||||||
|
BEGIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s1-create"
|
||||||
|
{
|
||||||
|
CREATE TABLE reference_table_s1(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s1');
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s1-drop"
|
||||||
|
{
|
||||||
|
DROP TABLE reference_table_s1;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s1-abort"
|
||||||
|
{
|
||||||
|
ABORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s1-commit"
|
||||||
|
{
|
||||||
|
COMMIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
session "s2"
|
||||||
|
|
||||||
|
step "s2-begin"
|
||||||
|
{
|
||||||
|
BEGIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s2-create"
|
||||||
|
{
|
||||||
|
CREATE TABLE reference_table_s2(a int);
|
||||||
|
SELECT create_reference_table('reference_table_s2');
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s2-drop"
|
||||||
|
{
|
||||||
|
DROP TABLE reference_table_s2;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s2-abort"
|
||||||
|
{
|
||||||
|
ABORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
step "s2-commit"
|
||||||
|
{
|
||||||
|
COMMIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
// creates don't block each other
|
||||||
|
permutation "s1-begin" "s1-create" "s2-create" "s1-commit"
|
||||||
|
|
||||||
|
// drops don't block each other
|
||||||
|
permutation "s1-create" "s2-create" "s1-begin" "s1-drop" "s2-drop" "s1-commit"
|
||||||
|
|
||||||
|
// create and drop don't block each other
|
||||||
|
permutation "s1-create" "s2-begin" "s2-create" "s1-drop" "s2-commit"
|
Loading…
Reference in New Issue