Changeset: 4a244d3d8d90 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4a244d3d8d90
Modified Files:
        sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
        sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py
Branch: Jul2021
Log Message:

Testing more conflicts, so far good


diffs (65 lines):

diff --git a/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
--- a/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
+++ b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
@@ -208,7 +208,10 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('rollback;').assertSucceeded()
 
-        mdb1.execute("truncate integers;").assertSucceeded()
+        mdb1.execute("update integers set i = 3 where i = 
2;").assertRowCount(2)
+        mdb2.execute('SELECT i FROM integers order by 
i;').assertDataResultMatch([(3,),(3,),(3,),(4,),(5,),(6,),(7,),(8,)])
+        mdb1.execute("truncate integers;").assertRowCount(8)
+        mdb2.execute('SELECT i FROM integers order by 
i;').assertDataResultMatch([])
         mdb1.execute("drop table integers;")
         mdb1.execute("drop table longs;")
         mdb1.execute("drop schema another;")
diff --git a/sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py
--- a/sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py
+++ b/sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py
@@ -8,6 +8,7 @@ with SQLTestCase() as mdb1:
         mdb1.execute("CREATE TABLE integers (i int);").assertSucceeded()
         mdb1.execute("insert into integers values 
(1),(2),(3),(NULL);").assertSucceeded()
         mdb1.execute("CREATE TABLE longs (i bigint);").assertSucceeded()
+        mdb1.execute("CREATE TABLE doubles (d double 
precision);").assertSucceeded()
         mdb1.execute("insert into longs values (1),(2),(3);").assertSucceeded()
         mdb1.execute("insert into integers values 
(1),(2),(3);").assertSucceeded()
         mdb1.execute("alter table longs add primary key (i)").assertSucceeded()
@@ -20,7 +21,38 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('rollback;').assertSucceeded()
 
+        mdb1.execute('create trigger ups after delete on integers referencing 
old row as old_row for each row insert into longs values(0);').assertSucceeded()
+        mdb1.execute('create trigger ups2 after delete on integers referencing 
old row as old_row for each row insert into longs 
values(10);').assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute('create or replace trigger ups after delete on integers 
referencing old row as old_row for each row insert into longs 
values(1);').assertSucceeded()
+        mdb2.execute('create or replace trigger ups after delete on integers 
referencing old row as old_row for each row insert into longs 
values(2);').assertFailed(err_code="42000", err_message="CREATE OR REPLACE 
TRIGGER: transaction conflict detected")
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('rollback;').assertSucceeded()
+
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute('drop trigger ups;').assertSucceeded()
+        mdb2.execute("alter table doubles add primary key 
(d)").assertSucceeded()
+        mdb2.execute('create or replace trigger ups after delete on integers 
referencing old row as old_row for each row insert into longs 
values(3);').assertFailed(err_code="42000", err_message="CREATE OR REPLACE 
TRIGGER: transaction conflict detected")
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('rollback;').assertSucceeded()
+
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute('create or replace trigger ups2 after delete on integers 
referencing old row as old_row for each row insert into longs 
values(15);').assertSucceeded()
+        mdb2.execute('create table floats (f float);').assertSucceeded()
+        mdb2.execute("insert into floats values 
(1),(2),(3);").assertSucceeded()
+        mdb2.execute("create index myidx ON floats(f)").assertSucceeded()
+        mdb2.execute("alter table floats alter f set not 
null").assertSucceeded()
+        mdb2.execute("alter table floats alter f set default 
1").assertSucceeded()
+        mdb2.execute('drop trigger ups2;').assertFailed(err_code="42000", 
err_message="DROP TRIGGER: transaction conflict detected")
+        mdb1.execute('drop trigger ups2;').assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('rollback;').assertSucceeded()
+
         mdb1.execute('start transaction;').assertSucceeded()
         mdb1.execute("drop table integers;").assertSucceeded()
         mdb1.execute("drop table longs;").assertSucceeded()
+        mdb1.execute("drop table doubles;").assertSucceeded()
         mdb1.execute('commit;').assertSucceeded()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to