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

Reply via email to