citus/src/test/regress/specs/isolation_dump_local_wait_e...

88 lines
1.7 KiB
Python

setup
{
CREATE TABLE local_table (x int primary key, y int);
INSERT INTO local_table VALUES (1,0);
}
teardown
{
DROP TABLE local_table;
}
session "dist11"
step "dist11-begin"
{
BEGIN;
SELECT assign_distributed_transaction_id(11, 1, '2017-01-01 00:00:00+0');
}
step "dist11-update"
{
UPDATE local_table SET y = 1 WHERE x = 1;
}
step "dist11-abort"
{
ABORT;
}
session "local"
step "local-begin"
{
BEGIN;
}
step "local-update"
{
UPDATE local_table SET y = 2 WHERE x = 1;
}
step "local-abort"
{
ABORT;
}
session "dist13"
step "dist13-begin"
{
BEGIN;
SELECT assign_distributed_transaction_id(13, 1, '2017-01-01 00:00:00+0');
}
step "dist13-update"
{
UPDATE local_table SET y = 3 WHERE x = 1;
}
step "dist13-abort"
{
ABORT;
}
session "detector"
step "detector-dump-wait-edges"
{
SELECT
waiting_node_id,
waiting_transaction_num,
blocking_node_id,
blocking_transaction_num,
blocking_transaction_waiting
FROM
dump_local_wait_edges(13);
}
# Distributed transaction blocked by another distributed transaction
permutation "dist11-begin" "dist13-begin" "dist11-update" "dist13-update" "detector-dump-wait-edges" "dist11-abort" "dist13-abort"
# Distributed transaction blocked by a regular transaction
permutation "local-begin" "dist13-begin" "local-update" "dist13-update" "detector-dump-wait-edges" "local-abort" "dist13-abort"
# Distributed transaction blocked by a regular transaction blocked by a distributed transaction
permutation "dist11-begin" "local-begin" "dist13-begin" "dist11-update" "local-update" "dist13-update" "detector-dump-wait-edges" "dist11-abort" "local-abort" "dist13-abort"