Changeset: bc66929c2200 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bc66929c2200
Modified Files:
sql/test/transactions/Tests/transaction_isolation5.SQL.py
Branch: sqlfuncfix
Log Message:
Test concurrent view and function replacements on concurrent transactions
diffs (53 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
@@ -66,12 +66,12 @@ with SQLTestCase() as mdb1:
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")
+ # Test different instantiations of SQL functions and views on
different transactions
mdb1.execute('start transaction;').assertSucceeded()
mdb1.execute('CREATE MERGE TABLE parent(a int)').assertSucceeded()
mdb1.execute('CREATE TABLE child1(a int)').assertSucceeded()
@@ -114,3 +114,35 @@ with SQLTestCase() as mdb1:
mdb1.execute('drop table child1;').assertSucceeded()
mdb1.execute('drop table child2;').assertSucceeded()
mdb1.execute('commit;').assertSucceeded()
+
+ # Test replacing functions and views with concurrent transactions
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('create or replace function otherfunc() returns int
return 1;').assertSucceeded()
+ mdb1.execute('create or replace view otherview(x) as (select
1)').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
+ mdb1.execute('SELECT otherfunc()').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT otherfunc()').assertDataResultMatch([(1,)])
+ mdb1.execute('SELECT x from otherview').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT x from otherview').assertDataResultMatch([(1,)])
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb2.execute('start transaction;').assertSucceeded()
+ mdb1.execute('SELECT otherfunc()').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT otherfunc()').assertDataResultMatch([(1,)])
+ mdb1.execute('SELECT x from otherview').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT x from otherview').assertDataResultMatch([(1,)])
+ mdb2.execute('create or replace function otherfunc() returns int
return 2;').assertSucceeded()
+ mdb2.execute('create or replace view otherview(x) as (select
2)').assertSucceeded()
+ mdb1.execute('SELECT otherfunc()').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT otherfunc()').assertDataResultMatch([(2,)])
+ mdb1.execute('SELECT x from otherview').assertDataResultMatch([(1,)])
+ mdb2.execute('SELECT x from otherview').assertDataResultMatch([(2,)])
+ mdb1.execute('commit;').assertSucceeded()
+ mdb2.execute('commit;').assertSucceeded()
+ mdb1.execute('SELECT otherfunc()').assertDataResultMatch([(2,)])
+ mdb2.execute('SELECT otherfunc()').assertDataResultMatch([(2,)])
+ mdb1.execute('SELECT x from otherview').assertDataResultMatch([(2,)])
+ mdb2.execute('SELECT x from otherview').assertDataResultMatch([(2,)])
+ mdb1.execute('start transaction;').assertSucceeded()
+ mdb1.execute('drop function otherfunc;').assertSucceeded()
+ mdb1.execute('drop view otherview;').assertSucceeded()
+ mdb1.execute('commit;').assertSucceeded()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list