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

Reply via email to