Changeset: 34589d226cb2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/34589d226cb2
Added Files:
        sql/test/strimps/Tests/All
        sql/test/strimps/Tests/persisted_strimp.SQL.py
        sql/test/strimps/Tests/strimps_stable_counts.SQL.py
Branch: string_imprints
Log Message:

Add tests specific to strimps


diffs (129 lines):

diff --git a/sql/test/strimps/Tests/All b/sql/test/strimps/Tests/All
new file mode 100644
--- /dev/null
+++ b/sql/test/strimps/Tests/All
@@ -0,0 +1,2 @@
+strimps_stable_counts
+persisted_strimp
diff --git a/sql/test/strimps/Tests/persisted_strimp.SQL.py 
b/sql/test/strimps/Tests/persisted_strimp.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/strimps/Tests/persisted_strimp.SQL.py
@@ -0,0 +1,57 @@
+import os
+import socket
+import tempfile
+
+try:
+    from MonetDBtesting import process
+except ImportError:
+    import process
+from MonetDBtesting.sqltest import SQLTestCase
+
+COUNT_QUERY = "SELECT COUNT(*) FROM orders WHERE o_comment LIKE '%%slyly%%';"
+
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+sock.bind(('', 0))
+port = sock.getsockname()[1]
+sock.close()
+
+# Make sure that reading a persisted strimp from disk gives correct
+# results.
+
+with tempfile.TemporaryDirectory() as farm_dir:
+    fdir = os.path.join(farm_dir, 'db1')
+    os.mkdir(fdir)
+    with process.server(mapiport=port, dbname='db1',
+                        args=["--set", "gdk_use_strimps=yes",],
+                        dbfarm=fdir,
+                        stdin=process.PIPE,
+                        stdout=process.PIPE,
+                        stderr=process.PIPE) as s:
+        with SQLTestCase() as mdb:
+            mdb.connect(database='db1', port=port, username='monetdb', 
password='monetdb')
+            mdb.execute("""CREATE TABLE orders (
+                              o_orderkey       BIGINT NOT NULL,
+                              o_custkey        INTEGER NOT NULL,
+                              o_orderstatus    CHAR(1) NOT NULL,
+                              o_totalprice     DECIMAL(15,2) NOT NULL,
+                              o_orderdate      DATE NOT NULL,
+                              o_orderpriority  CHAR(15) NOT NULL,
+                              o_clerk          CHAR(15) NOT NULL,
+                              o_shippriority   INTEGER NOT NULL,
+                              o_comment        VARCHAR(79) NOT 
NULL);""").assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
+        s.communicate()
+
+    with process.server(mapiport=port, dbname='db1',
+                        args=["--set", "gdk_use_strimps=yes",],
+                        dbfarm=fdir,
+                        stdin=process.PIPE, stdout=process.PIPE, 
stderr=process.PIPE) as s:
+        with SQLTestCase() as mdb:
+            mdb.connect(database='db1', port=port, username='monetdb', 
password='monetdb')
+            mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
+            mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
+        s.communicate()
diff --git a/sql/test/strimps/Tests/strimps_stable_counts.SQL.py 
b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py
@@ -0,0 +1,55 @@
+import os
+import socket
+import tempfile
+
+try:
+    from MonetDBtesting import process
+except ImportError:
+    import process
+from MonetDBtesting.sqltest import SQLTestCase
+
+COUNT_QUERY = "SELECT COUNT(*) FROM orders WHERE o_comment LIKE '%%slyly%%';"
+
+sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+sock.bind(('', 0))
+port = sock.getsockname()[1]
+sock.close()
+
+# Make sure that using a strimp returns the same number of rows as
+# not using it.
+
+with tempfile.TemporaryDirectory() as farm_dir:
+    fdir = os.path.join(farm_dir, 'db1')
+    os.mkdir(fdir)
+    with process.server(mapiport=port, dbname='db1',
+                        dbfarm=fdir,
+                        stdin=process.PIPE,
+                        stdout=process.PIPE,
+                        stderr=process.PIPE) as s:
+        with SQLTestCase() as mdb:
+            mdb.connect(database='db1', port=port, username='monetdb', 
password='monetdb')
+            mdb.execute("""CREATE TABLE orders (
+                              o_orderkey       BIGINT NOT NULL,
+                              o_custkey        INTEGER NOT NULL,
+                              o_orderstatus    CHAR(1) NOT NULL,
+                              o_totalprice     DECIMAL(15,2) NOT NULL,
+                              o_orderdate      DATE NOT NULL,
+                              o_orderpriority  CHAR(15) NOT NULL,
+                              o_clerk          CHAR(15) NOT NULL,
+                              o_shippriority   INTEGER NOT NULL,
+                              o_comment        VARCHAR(79) NOT 
NULL);""").assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+            mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
+        s.communicate()
+
+    with process.server(mapiport=port, dbname='db1',
+                        args=["--set", "gdk_use_strimps=yes",],
+                        dbfarm=fdir,
+                        stdin=process.PIPE, stdout=process.PIPE, 
stderr=process.PIPE) as s:
+        with SQLTestCase() as mdb:
+            mdb.connect(database='db1', port=port, username='monetdb', 
password='monetdb')
+            mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
+        s.communicate()
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to