Changeset: 976fd94c269e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=976fd94c269e Added Files: sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py Modified Files: sql/test/2-phase-commit/Tests/All Branch: 2PC Log Message:
Add test for conflicting updates diffs (61 lines): diff --git a/sql/test/2-phase-commit/Tests/All b/sql/test/2-phase-commit/Tests/All --- a/sql/test/2-phase-commit/Tests/All +++ b/sql/test/2-phase-commit/Tests/All @@ -28,3 +28,4 @@ PersistBeforePrecommit-1 PersistBeforePrecommit-2 PersistBeforePrecommitWithRollback-1 PersistBeforePrecommitWithRollback-2 +TwoPrecommits diff --git a/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py @@ -0,0 +1,48 @@ +try: + from MonetDBtesting import process +except ImportError: + import process + +import sys, time, monetdb.sql, os + + +def connect(autocommit): + return monetdb.sql.connect(database = os.getenv('TSTDB'), + hostname = 'localhost', + port = int(os.getenv('MAPIPORT')), + username = 'monetdb', + password = 'monetdb', + autocommit = autocommit) + +def query(conn, sql): + print(sql) + cur = conn.cursor() + cur.execute(sql) + r = cur.fetchall() + cur.close() + print(r) + +def run(conn, sql): + print(sql) + r = conn.execute(sql) + print(r) + + +c1 = connect(False) +run(c1, 'INSERT INTO htmtest VALUES (4, 40)') + +c2 = connect(False) +run(c2, 'INSERT INTO htmtest VALUES (5, 50)') + +#c3 = connect(False) +#run(c3, 'INSERT INTO htmtest VALUES (6, 60)') + +run(c2, 'CALL precommit(2)') +run(c1, 'CALL precommit(1)') +#run(c3, 'CALL precommit(3)') + +run(c1, 'CALL persistcommit(1)') +run(c2, 'CALL persistcommit(2)') + +query(c1, 'SELECT * FROM htmtest') +query(c2, 'SELECT * FROM htmtest') _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list