Changeset: 0fda30b62df5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0fda30b62df5
Modified Files:
        sql/test/miscellaneous/Tests/transaction_isolation3.SQL.py
        sql/test/miscellaneous/Tests/transaction_isolation4.SQL.py
Branch: iso
Log Message:

Added more test cases


diffs (99 lines):

diff --git a/sql/test/miscellaneous/Tests/transaction_isolation3.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation3.SQL.py
--- a/sql/test/miscellaneous/Tests/transaction_isolation3.SQL.py
+++ b/sql/test/miscellaneous/Tests/transaction_isolation3.SQL.py
@@ -121,6 +121,14 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
 
+        mdb1.execute("create table zzz (i int);").assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("alter table zzz rename to aaa;").assertSucceeded()
+        mdb2.execute("create view myv8(a) as select i from 
zzz;").assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
+
         mdb1.execute('create table ww(y int, z int);').assertSucceeded()
         mdb1.execute('insert into ww values (1, 1);').assertSucceeded()
         mdb1.execute('start transaction;').assertSucceeded()
@@ -131,6 +139,15 @@ with SQLTestCase() as mdb1:
         mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
         mdb1.execute('select * from 
myv4;').assertSucceeded().assertDataResultMatch([(1,1)])
 
+        mdb1.execute('create table bbb(y int, z int);').assertSucceeded()
+        mdb1.execute('insert into bbb values (1, 1);').assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("alter table bbb rename column y to 
yy;").assertSucceeded()
+        mdb2.execute("create view myv9(a,b) as select y, z from 
bbb;").assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
+
         mdb1.execute('create table zz(y int, z int);').assertSucceeded()
         mdb1.execute('insert into zz values (1, 1);').assertSucceeded()
         mdb1.execute('start transaction;').assertSucceeded()
@@ -158,6 +175,14 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
 
+        mdb1.execute('create table fine2(y int, z int);').assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("create view myv10(a,b) as select y, z from 
fine2;").assertSucceeded()
+        mdb2.execute("alter table fine2 drop column y;").assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
+
         mdb1.execute('start transaction;').assertSucceeded()
         mdb1.execute('DROP TABLE w;').assertSucceeded()
         mdb1.execute('drop table notpossible;').assertSucceeded()
@@ -186,4 +211,8 @@ with SQLTestCase() as mdb1:
         mdb1.execute('DROP VIEW myv2;').assertSucceeded()
         mdb1.execute('DROP FUNCTION pain();').assertSucceeded()
         mdb1.execute('DROP TABLE fine;').assertSucceeded()
+        mdb1.execute('DROP TABLE aaa;').assertSucceeded()
+        mdb1.execute('DROP TABLE bbb;').assertSucceeded()
+        mdb1.execute('DROP VIEW myv10;').assertSucceeded()
+        mdb1.execute('DROP TABLE fine2;').assertSucceeded()
         mdb1.execute('commit;').assertSucceeded()
diff --git a/sql/test/miscellaneous/Tests/transaction_isolation4.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation4.SQL.py
--- a/sql/test/miscellaneous/Tests/transaction_isolation4.SQL.py
+++ b/sql/test/miscellaneous/Tests/transaction_isolation4.SQL.py
@@ -14,6 +14,26 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('rollback;').assertSucceeded()
 
+        mdb1.execute("create table t1 (i int);").assertSucceeded()
+        mdb1.execute("alter table t1 add constraint pk3 primary key 
(i);").assertSucceeded()
+        mdb2.execute("create table t2 (i int);").assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("alter table t2 add foreign key(i) references 
t1(i);").assertSucceeded()
+        mdb2.execute("alter table t1 drop constraint pk3;").assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
+
+        mdb1.execute("create table t3 (i int);").assertSucceeded()
+        mdb1.execute("alter table t3 add constraint pk4 primary key 
(i);").assertSucceeded()
+        mdb2.execute("create table t4 (i int);").assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("alter table t3 drop constraint pk4;").assertSucceeded()
+        mdb2.execute("alter table t4 add foreign key(i) references 
t3(i);").assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertFailed(err_code="40000", 
err_message="COMMIT: transaction is aborted because of concurrency conflicts, 
will ROLLBACK instead")
+
         mdb1.execute('CREATE schema mys;').assertSucceeded()
         mdb1.execute("CREATE ROLE myrole;").assertSucceeded()
         mdb1.execute("CREATE USER duser WITH PASSWORD 'ups' NAME 'ups' SCHEMA 
mys;").assertSucceeded()
@@ -102,6 +122,10 @@ with SQLTestCase() as mdb1:
 
         mdb1.execute('start transaction;').assertSucceeded()
         mdb1.execute('drop table myt;').assertSucceeded()
+        mdb1.execute('drop table t2;').assertSucceeded()
+        mdb1.execute('drop table t1;').assertSucceeded()
+        mdb1.execute('drop table t4;').assertSucceeded()
+        mdb1.execute('drop table t3;').assertSucceeded()
         mdb1.execute('drop user duser;').assertSucceeded()
         mdb1.execute('drop role myrole;').assertSucceeded()
         mdb1.execute('drop schema mys cascade;').assertSucceeded()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to