Changeset: 5dc1a714f475 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5dc1a714f475 Added Files: sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.SQL.py Modified Files: sql/test/BugTracker-2018/Tests/All Branch: Mar2018 Log Message:
Add test for Bug 6601 diffs (79 lines): diff --git a/sql/test/BugTracker-2018/Tests/All b/sql/test/BugTracker-2018/Tests/All --- a/sql/test/BugTracker-2018/Tests/All +++ b/sql/test/BugTracker-2018/Tests/All @@ -57,3 +57,4 @@ sqlitelogictest-complex-expression.Bug-6 sqlitelogictest-complex-case-not-in.Bug-6594 multiple-count.Bug-6599 sqlitelogictest-select-errors.Bug-6600 +remote-table-where-is-null.Bug-6601 diff --git a/sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.SQL.py b/sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.SQL.py @@ -0,0 +1,66 @@ +from __future__ import print_function + +import os +import socket +import sys +import tempfile +import threading + +import pymonetdb + +try: + from MonetDBtesting import process +except ImportError: + import process + + +# Find a free network port +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port + + +farm_dir = tempfile.mkdtemp() + +node1_port = freeport() +node1_proc = process.server(mapiport=node1_port, dbname='node1', dbfarm=os.path.join(farm_dir, 'node1'), stdin=process.PIPE, stdout=process.PIPE) +node1_conn = pymonetdb.connect(database='node1', port=node1_port, autocommit=True) +node1_cur = node1_conn.cursor(); + +print("# node1: CREATE TABLE tbl (id INT, name TEXT)") +node1_cur.execute("CREATE TABLE tbl (id INT, name TEXT)") +print("# node1: INSERT INTO tbl VALUES (1, '1')") +node1_cur.execute("INSERT INTO tbl VALUES (1, '1')") +print("# node1: INSERT INTO tbl VALUES (2, '2')") +node1_cur.execute("INSERT INTO tbl VALUES (2, '2')") +print("# node1: INSERT INTO tbl (id) VALUES (3)") +node1_cur.execute("INSERT INTO tbl (id) VALUES (3)") +print("# node1: SELECT * FROM tbl") +node1_cur.execute("SELECT * FROM tbl") +print(node1_cur.fetchall()) +print("# node1: SELECT * FROM tbl WHERE NAME IS NULL") +node1_cur.execute("SELECT * FROM tbl WHERE NAME IS NULL") +print(node1_cur.fetchall()) +print("# node1: SELECT * FROM tbl") +node1_cur.execute("SELECT * FROM tbl") +print(node1_cur.fetchall()) + +node2_port = freeport() +node2_proc = process.server(mapiport=node2_port, dbname='node2', dbfarm=os.path.join(farm_dir, 'node2'), stdin=process.PIPE, stdout=process.PIPE) +node2_conn = pymonetdb.connect(database='node2', port=node2_port, autocommit=True) +node2_cur = node2_conn.cursor(); + +print("# node2: CREATE REMOTE TABLE tbl (id INT, name TEXT) on 'mapi:monetdb://localhost:{}/node1/sys/tbl'".format(node1_port)) +node2_cur.execute("CREATE REMOTE TABLE tbl (id INT, name TEXT) on 'mapi:monetdb://localhost:{}/node1/sys/tbl'".format(node1_port)) +print("# node2: SELECT * FROM tbl") +node2_cur.execute("SELECT * FROM tbl") +print(node2_cur.fetchall()) +print("# node2: SELECT * FROM tbl WHERE NAME IS NULL") +node2_cur.execute("SELECT * FROM tbl WHERE NAME IS NULL") +print(node2_cur.fetchall()) +print("# node2: SELECT * FROM tbl") +node2_cur.execute("SELECT * FROM tbl") +print(node2_cur.fetchall()) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list