Changeset: 4882a4dcd3e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4882a4dcd3e7
Added Files:
        sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
Modified Files:
        sql/test/miscellaneous/Tests/All
Branch: Jul2021
Log Message:

Added test for newly found issue


diffs (66 lines):

diff --git a/sql/test/miscellaneous/Tests/All b/sql/test/miscellaneous/Tests/All
--- a/sql/test/miscellaneous/Tests/All
+++ b/sql/test/miscellaneous/Tests/All
@@ -19,3 +19,4 @@ create_func_temp
 simple_plans
 vessels
 prepare
+transaction_isolation
diff --git a/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
@@ -0,0 +1,53 @@
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as mdb1:
+    with SQLTestCase() as mdb2:
+        mdb1.connect(username="monetdb", password="monetdb")
+        mdb2.connect(username="monetdb", password="monetdb")
+        mdb1.execute("CREATE TABLE integers (i int);").assertSucceeded()
+        mdb1.execute("insert into integers values 
(1),(2),(3),(NULL);").assertSucceeded()
+
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute('TRUNCATE integers;').assertRowCount(4)
+        mdb1.execute('SELECT i FROM integers;').assertDataResultMatch([])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("insert into integers values 
(4),(5),(6);").assertRowCount(3)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(6,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("update integers set i = 7 where i = 
6;").assertRowCount(1)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(7,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("delete from integers where i = 5;").assertRowCount(1)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute('rollback;').assertSucceeded()
+
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute('TRUNCATE integers;').assertRowCount(4)
+        mdb1.execute('SELECT i FROM integers;').assertDataResultMatch([])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("insert into integers values 
(4),(5),(6);").assertRowCount(3)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(6,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("update integers set i = 7 where i = 
6;").assertRowCount(1)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(7,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute("delete from integers where i = 5;").assertRowCount(1)
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+        mdb1.execute('commit;').assertSucceeded()
+
+        mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+        mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+
+        mdb1.execute("drop table integers;")
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to