[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: Jul2021 - Testing transaction conflicts. Some have yet ...
From:       Pedro_Ferreira <commits+pedro.ferreira=monetdbsolutions.com () mon
Date:       2021-05-31 17:00:48
Message-ID: hg.531d592a2f02.1622480448.3281151514287324535 () monetdb-vm0 ! spin-off ! cwi ! nl
[Download RAW message or body]

Changeset: 531d592a2f02 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/531d592a2f02
Modified Files:
	sql/test/miscellaneous/Tests/transaction_isolation2.SQL.py
Branch: Jul2021
Log Message:

Testing transaction conflicts. Some have yet to be fixed


diffs (60 lines):

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
@@ -65,6 +65,56 @@ with SQLTestCase() as mdb1:
         mdb1.execute('commit;').assertSucceeded()
         mdb2.execute('rollback;').assertSucceeded()
 
+        mdb1.execute('create merge table parent(a int);').assertSucceeded()
+        mdb1.execute('create table child1(c int);').assertSucceeded()
+        mdb1.execute('create table child2(c int);').assertSucceeded()
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute("ALTER TABLE parent ADD TABLE child1;").assertSucceeded()
+        mdb2.execute("ALTER TABLE parent ADD TABLE \
child2;").assertFailed(err_code="42000", err_message="ALTER TABLE: transaction \
conflict detected") +        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('rollback;').assertSucceeded()
+        mdb1.execute('ALTER TABLE parent DROP TABLE child1;').assertSucceeded()
+        mdb1.execute('DROP TABLE parent;').assertSucceeded()
+        mdb1.execute('DROP TABLE child1;').assertSucceeded()
+        mdb1.execute('DROP TABLE child2;').assertSucceeded()
+
+        mdb1.execute('create merge table parent(a int) PARTITION BY RANGE ON \
(a);').assertSucceeded() +        mdb1.execute('create table child1(c \
int);').assertSucceeded() +        mdb1.execute('create table child2(c \
int);').assertSucceeded() +        mdb1.execute('start \
transaction;').assertSucceeded() +        mdb2.execute('start \
transaction;').assertSucceeded() +        mdb1.execute("ALTER TABLE parent ADD TABLE \
child1 AS PARTITION FROM '1' TO '2';").assertSucceeded() +        mdb2.execute("ALTER \
TABLE parent ADD TABLE child2 AS PARTITION FROM '0' TO \
'4';").assertFailed(err_code="42000", err_message="ALTER TABLE: failed due to \
conflict with another transaction") +        \
mdb1.execute('commit;').assertSucceeded() +        \
mdb2.execute('rollback;').assertSucceeded() +        mdb1.execute('ALTER TABLE parent \
DROP TABLE child1;').assertSucceeded() +        mdb1.execute('DROP TABLE \
parent;').assertSucceeded() +        mdb1.execute('DROP TABLE \
child1;').assertSucceeded() +        mdb1.execute('DROP TABLE \
child2;').assertSucceeded() +
+        mdb1.execute('create merge table parent1(a int) PARTITION BY RANGE ON \
(a);').assertSucceeded() +        mdb1.execute('create merge table parent2(a int) \
PARTITION BY RANGE ON (a);').assertSucceeded() +        mdb1.execute('create table \
child(c int);').assertSucceeded() +        mdb1.execute('start \
transaction;').assertSucceeded() +        mdb2.execute('start \
transaction;').assertSucceeded() +        mdb1.execute("ALTER TABLE parent1 ADD TABLE \
child AS PARTITION FROM '1' TO '2';").assertSucceeded() +        mdb2.execute("ALTER \
TABLE parent2 ADD TABLE child AS PARTITION FROM '0' TO \
'4';").assertFailed(err_code="42000", err_message="ALTER TABLE: failed due to \
conflict with another transaction") +        \
mdb1.execute('commit;').assertSucceeded() +        \
mdb2.execute('rollback;').assertSucceeded() +        mdb1.execute('ALTER TABLE \
parent1 DROP TABLE child;').assertSucceeded() +        mdb1.execute('DROP TABLE \
parent1;').assertSucceeded() +        mdb1.execute('DROP TABLE \
parent2;').assertSucceeded() +        mdb1.execute('DROP TABLE \
child;').assertSucceeded() +
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute('CREATE FUNCTION myfunc() RETURNS INT RETURN \
1;').assertSucceeded() +        mdb2.execute('CREATE FUNCTION myfunc() RETURNS INT \
RETURN 2;').assertFailed(err_code="42000", err_message="CREATE FUNCTION: transaction \
conflict detected") +        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('rollback;').assertSucceeded()
+        mdb1.execute('DROP FUNCTION myfunc;').assertSucceeded()
+
         mdb1.execute('start transaction;').assertSucceeded()
         mdb1.execute('DROP schema mysch;').assertSucceeded()
         mdb1.execute('DROP TYPE myurl;').assertSucceeded()
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic