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