Skip to content
10 changes: 10 additions & 0 deletions src/dbtest/mda_detect_test_list.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

ru_ru_avoid
rc_rc_cyclic
rc_rc_avoid
rr_rr_cyclic
rr_rr_cyclic_commit
s_s_cyclic
s_s_avoid
rr_s_s_avoid

20 changes: 20 additions & 0 deletions src/dbtest/pg/mda_detect_test/aa.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@



Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 1);
Q0-T1-INSERT INTO t1 VALUES (2, 2);
Q0-T1-COMMIT;

Q1-T1-BEGIN set_isolation=repeatable-read;
Q2-T1-SELECT * FROM t1;

Q3-T2-BEGIN set_isolation=serializable;
Q4-T2-INSERT INTO t1 VALUES (3, 3);
Q5-T2-COMMIT;

Q6-T1-SELECT * FROM t1 WHERE k=1;
Q7-T1-SELECT * FROM t1;
Q8-T1-COMMIT;
27 changes: 27 additions & 0 deletions src/dbtest/pg/mda_detect_test/rc_rc_avoid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=read-committed;
Q2-T1-SELECT * FROM t1 WHERE k=1;

Q3-T2-BEGIN set_isolation=read-committed;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;

Q6-T1-SELECT * FROM t1 WHERE k=1;

Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

28 changes: 28 additions & 0 deletions src/dbtest/pg/mda_detect_test/rc_rc_cyclic.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=read-committed;
Q2-T1-UPDATE t1 SET v=1 WHERE k=0;

Q3-T2-BEGIN set_isolation=read-committed;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;
Q5-T2-SELECT * FROM t1 WHERE k=0;

Q6-T1-SELECT * FROM t1 WHERE k=1;

Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

27 changes: 27 additions & 0 deletions src/dbtest/pg/mda_detect_test/rr_rr_cyclic.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=repeatable-read;
Q2-T1-SELECT * FROM t1 WHERE k=1;

Q3-T2-BEGIN set_isolation=repeatable-read;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;

Q6-T1-SELECT * FROM t1 WHERE k=1;

Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

25 changes: 25 additions & 0 deletions src/dbtest/pg/mda_detect_test/rr_rr_cyclic_commit.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=repeatable-read;
Q2-T1-SELECT * FROM t1 WHERE k=1;

Q3-T2-BEGIN set_isolation=repeatable-read;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;
Q5-T2-COMMIT;

Q6-T1-SELECT * FROM t1 WHERE k=1;
Q7-T1-COMMIT;





Test Result:

25 changes: 25 additions & 0 deletions src/dbtest/pg/mda_detect_test/rr_s_s_avoid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@



Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 1);
Q0-T1-INSERT INTO t1 VALUES (2, 2);
Q0-T1-COMMIT;

Q1-T1-BEGIN set_isolation=repeatable-read;
Q2-T1-SELECT * FROM t1 WHERE k=1;

Q3-T2-BEGIN set_isolation=serializable;
Q4-T2-INSERT INTO t1 VALUES (3, 3);
Q5-T2-COMMIT;

Q6-T1-SELECT * FROM t1 WHERE k=1;
Q7-T1-SELECT * FROM t1;
Q8-T1-COMMIT;

Q9-T3-BEGIN set_isolation=serializable ;
Q10-T3-SELECT * FROM t1 WHERE k=3;
Q11-T3-COMMIT;

28 changes: 28 additions & 0 deletions src/dbtest/pg/mda_detect_test/ru_ru_avoid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=read-uncommitted;
Q2-T1-UPDATE t1 SET v=1 WHERE k=0;

Q3-T2-BEGIN set_isolation=read-uncommitted;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;
Q5-T2-SELECT * FROM t1 WHERE k=0;

Q6-T1-SELECT * FROM t1 WHERE k=1;

Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

25 changes: 25 additions & 0 deletions src/dbtest/pg/mda_detect_test/s_s_avoid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=serializable ;
Q2-T1-UPDATE t1 SET v=1 WHERE k=0;
Q3-T1-SELECT * FROM t1 WHERE k=1;
Q4-T2-BEGIN set_isolation=serializable;
Q5-T2-UPDATE t1 SET v=1 WHERE k=1;
Q6-T2-SELECT * FROM t1 WHERE k=0;
Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

28 changes: 28 additions & 0 deletions src/dbtest/pg/mda_detect_test/s_s_cyclic.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@


Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 0);
Q0-T1-COMMIT;


Q1-T1-BEGIN set_isolation=serializable ;
Q2-T1-UPDATE t1 SET v=1 WHERE k=0;

Q3-T2-BEGIN set_isolation=serializable;
Q4-T2-UPDATE t1 SET v=1 WHERE k=1;
Q5-T2-SELECT * FROM t1 WHERE k=0;

Q6-T1-SELECT * FROM t1 WHERE k=1;

Q7-T2-COMMIT;

Q8-T1-COMMIT;





Test Result:

20 changes: 20 additions & 0 deletions src/dbtest/pg/mda_detect_test/s_s_cyclic_pr.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@



Q0-T1-DROP TABLE IF EXISTS t1;
Q0-T1-CREATE TABLE t1 (k INT PRIMARY KEY, v INT);
Q0-T1-INSERT INTO t1 VALUES (0, 0);
Q0-T1-INSERT INTO t1 VALUES (1, 1);
Q0-T1-INSERT INTO t1 VALUES (2, 2);
Q0-T1-COMMIT;

Q1-T1-BEGIN set_isolation=serializable;
Q2-T1-SELECT * FROM t1;

Q3-T2-BEGIN set_isolation=serializable;
Q4-T2-INSERT INTO t1 VALUES (3, 3);
Q5-T2-COMMIT;

Q6-T1-SELECT * FROM t1 WHERE k=1;
Q7-T1-SELECT * FROM t1;
Q8-T1-COMMIT;
2 changes: 1 addition & 1 deletion src/dbtest/src/mda_detect.py
Original file line number Diff line number Diff line change
Expand Up @@ -752,4 +752,4 @@ def print_error(result_folder, ts_now, error_message):
dfs(result_folder, ts_now, i, "null")
else:
output_result(file, result_folder, ts_now, "Avoid")
print_path(result_folder, ts_now, edge)
print_path(result_folder, ts_now, edge)
Loading