Changeset: 363f588020cc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/363f588020cc
Modified Files:
sql/test/transactions/Tests/transaction_isolation5.SQL.py
Branch: Jan2022
Log Message:
Added concurrent test
diffs (43 lines):
diff --git a/sql/test/transactions/Tests/transaction_isolation5.SQL.py
b/sql/test/transactions/Tests/transaction_isolation5.SQL.py
--- a/sql/test/transactions/Tests/transaction_isolation5.SQL.py
+++ b/sql/test/transactions/Tests/transaction_isolation5.SQL.py
@@ -235,3 +235,39 @@ with SQLTestCase() as mdb1:
mdb1.execute('drop procedure ups;').assertSucceeded()
mdb1.execute('drop table x;').assertSucceeded()
mdb1.execute('commit;').assertSucceeded()
+
+# Test concurrent index and constraints with the same name on the same table,
ugh
+with SQLTestCase() as mdb1:
+ with SQLTestCase() as mdb2:
+ mdb1.connect(username="monetdb", password="monetdb")
+ mdb2.connect(username="monetdb", password="monetdb")
+
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('create table x (x int primary key);').assertSucceeded()
+ mdb1.execute('create table y (y int);').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb2.execute('start transaction;').assertSucceeded()
+ mdb1.execute('create index ups on y(y);').assertSucceeded()
+ mdb2.execute('alter table y add constraint ups foreign key (y)
references x (x);').assertFailed(err_code="42000", err_message="ALTER TABLE:
sys_y_ups conflicts with another transaction")
+ mdb1.execute('commit;').assertSucceeded()
+ mdb2.execute('commit;').assertFailed()
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('drop table x;').assertSucceeded()
+ mdb1.execute('drop table y;').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
+
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('create table x (x int primary key);').assertSucceeded()
+ mdb1.execute('create table y (y int);').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb2.execute('start transaction;').assertSucceeded()
+ mdb1.execute('alter table y add constraint ups2 foreign key (y)
references x (x);').assertSucceeded()
+ mdb2.execute('create index ups2 on
y(y);').assertFailed(err_code="42000", err_message="ALTER TABLE: sys_y_ups2
conflicts with another transaction")
+ mdb1.execute('commit;').assertSucceeded()
+ mdb2.execute('commit;').assertFailed()
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('drop table y;').assertSucceeded()
+ mdb1.execute('drop table x;').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]