Changeset: 62b3622c9d53 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/62b3622c9d53
Modified Files:
        sql/test/transactions/Tests/transaction_isolation5.SQL.py
Branch: sqlfuncfix
Log Message:

Test different instantiations of SQL functions and views on different 
transactions


diffs (56 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
@@ -65,3 +65,52 @@ with SQLTestCase() as mdb1:
         mdb1.execute('drop schema mysch;').assertSucceeded()
         mdb1.execute('drop role myrole;').assertSucceeded()
         mdb1.execute('commit;').assertSucceeded()
+
+# Test different instantiations of SQL functions and views on different 
transactions
+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 MERGE TABLE parent(a int)').assertSucceeded()
+        mdb1.execute('CREATE TABLE child1(a int)').assertSucceeded()
+        mdb1.execute('INSERT INTO child1 VALUES (1),(2)').assertSucceeded()
+        mdb1.execute('ALTER TABLE parent ADD table child1').assertSucceeded()
+        mdb1.execute('CREATE TABLE child2(a int)').assertSucceeded()
+        mdb1.execute('INSERT INTO child2 VALUES (3),(4)').assertSucceeded()
+        mdb1.execute('create function myfunc() returns table(a int) begin 
return select a from parent; end').assertSucceeded()
+        mdb1.execute('create view myview as (select a from 
parent)').assertSucceeded()
+        mdb1.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb1.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb1.execute('commit;').assertSucceeded()
+        mdb1.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb1.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb2.execute('start transaction;').assertSucceeded()
+        mdb1.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb1.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('ALTER TABLE parent ADD table child2').assertSucceeded()
+        mdb1.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb1.execute('SELECT a from myview').assertDataResultMatch([(1,),(2,)])
+        mdb2.execute('SELECT a from 
myview').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb1.execute('commit;').assertSucceeded()
+        mdb2.execute('commit;').assertSucceeded()
+        mdb1.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb2.execute('SELECT a from 
myfunc()').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb1.execute('SELECT a from 
myview').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb2.execute('SELECT a from 
myview').assertDataResultMatch([(1,),(2,),(3,),(4,)])
+        mdb1.execute('start transaction;').assertSucceeded()
+        mdb1.execute('drop function myfunc;').assertSucceeded()
+        mdb1.execute('drop view myview;').assertSucceeded()
+        mdb1.execute('alter table parent drop table child1;').assertSucceeded()
+        mdb1.execute('alter table parent drop table child2;').assertSucceeded()
+        mdb1.execute('drop table parent;').assertSucceeded()
+        mdb1.execute('drop table child1;').assertSucceeded()
+        mdb1.execute('drop table child2;').assertSucceeded()
+        mdb1.execute('commit;').assertSucceeded()
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to