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 -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org