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