mirror of https://github.com/citusdata/citus.git
68 lines
1.2 KiB
Plaintext
68 lines
1.2 KiB
Plaintext
setup
|
|
{
|
|
CREATE TABLE test_insert_concurrency (a int, b int) USING cstore_tableam;
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE IF EXISTS test_insert_concurrency CASCADE;
|
|
}
|
|
|
|
session "s1"
|
|
|
|
step "s1-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s1-insert"
|
|
{
|
|
INSERT INTO test_insert_concurrency SELECT i, 2 * i FROM generate_series(1, 3) i;
|
|
}
|
|
|
|
step "s1-copy"
|
|
{
|
|
COPY test_insert_concurrency(a) FROM PROGRAM 'seq 11 13';
|
|
}
|
|
|
|
step "s1-select"
|
|
{
|
|
SELECT * FROM test_insert_concurrency ORDER BY a;
|
|
}
|
|
|
|
step "s1-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
session "s2"
|
|
|
|
step "s2-begin"
|
|
{
|
|
BEGIN;
|
|
}
|
|
|
|
step "s2-insert"
|
|
{
|
|
INSERT INTO test_insert_concurrency SELECT i, 2 * i FROM generate_series(4, 6) i;
|
|
}
|
|
|
|
step "s2-select"
|
|
{
|
|
SELECT * FROM test_insert_concurrency ORDER BY a;
|
|
}
|
|
|
|
step "s2-commit"
|
|
{
|
|
COMMIT;
|
|
}
|
|
|
|
# writes shouldn't block writes or reads
|
|
permutation "s1-begin" "s2-begin" "s1-insert" "s2-insert" "s1-select" "s2-select" "s1-commit" "s2-commit" "s1-select"
|
|
|
|
# copy vs insert
|
|
permutation "s1-begin" "s2-begin" "s1-copy" "s2-insert" "s1-select" "s2-select" "s1-commit" "s2-commit" "s1-select"
|
|
|
|
# insert vs copy
|
|
permutation "s1-begin" "s2-begin" "s2-insert" "s1-copy" "s1-select" "s2-select" "s1-commit" "s2-commit" "s1-select"
|