Changeset: f049b52e499c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f049b52e499c
Modified Files:
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.test
        sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
        testing/sqllogictest.py
Branch: mtest
Log Message:

If filter function name start with . get from MonetDBtesting else just import.
This makes it possible to choose where the function is located:
MonetDBtesting, or the test directory.


diffs (155 lines):

diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.test 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.test
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.test
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.test
@@ -14,7 +14,7 @@ select def from optimizers() where name 
 ----
 
optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.matpack();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 explain copy into ttt from '/tmp/xyz'
 ----
 user.main
@@ -64,7 +64,7 @@ optimizer.inline();optimizer.remap();opt
 statement ok
 rollback
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 explain copy into ttt from '/tmp/xyz'
 ----
 user.main
diff --git 
a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test 
b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
--- a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
+++ b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
@@ -102,7 +102,7 @@ top N (
 | ) [ "oblo"."a" ] [ "oblo"."a" ASC ]
 ) [ bigint "1", bigint "2" ]
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo
 ----
 user.main
@@ -126,7 +126,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo OFFSET 2
 ----
 user.main
@@ -152,7 +152,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo LIMIT 2
 ----
 user.main
@@ -178,7 +178,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo LIMIT 1 OFFSET 2
 ----
 user.main
@@ -204,7 +204,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo LIMIT 2 OFFSET 1
 ----
 user.main
@@ -230,7 +230,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo ORDER BY a
 ----
 user.main
@@ -256,7 +256,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo ORDER BY a OFFSET 2
 ----
 user.main
@@ -284,7 +284,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo ORDER BY a LIMIT 2
 ----
 user.main
@@ -314,7 +314,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo ORDER BY a LIMIT 2 OFFSET 1
 ----
 user.main
@@ -344,7 +344,7 @@ 5
 sql.resultSet
 1
 
-query T python explain.function_histogram
+query T python .explain.function_histogram
 EXPLAIN select * from oblo ORDER BY a LIMIT 1 OFFSET 2
 ----
 user.main
diff --git a/testing/sqllogictest.py b/testing/sqllogictest.py
--- a/testing/sqllogictest.py
+++ b/testing/sqllogictest.py
@@ -21,7 +21,11 @@
 
 # The python function that can be used instead of the various sort
 # options should be a simple function that gets a list of lists as
-# input and should produce a list of lists as output.
+# input and should produce a list of lists as output.  If the name
+# contains a period, the last part is the name of the function and
+# everything up to the last period is the module.  If the module
+# starts with a period, it is searched in the MonetDBtesting module
+# (where this file is also).
 
 import pymonetdb
 from MonetDBtesting.mapicursor import MapiCursor
@@ -290,14 +294,19 @@ class SQLLogic:
             if '.' in pyscript:
                 [mod, fnc] = pyscript.rsplit('.', 1)
                 try:
-                    pymod = importlib.import_module('MonetDBtesting.' + mod)
-                    pyfnc = getattr(pymod, fnc)
+                    if mod.startswith('.'):
+                        pymod = importlib.import_module(mod, 'MonetDBtesting')
+                    else:
+                        pymod = importlib.import_module(mod)
                 except ModuleNotFoundError:
                     self.query_error(query, 'cannot import filter function 
module')
                     err = True
-                except AttributeError:
-                    self.query_error(query, 'cannot find filter function')
-                    err = True
+                else:
+                    try:
+                        pyfnc = getattr(pymod, fnc)
+                    except AttributeError:
+                        self.query_error(query, 'cannot find filter function')
+                        err = True
             elif re.match(r'[_a-zA-Z][_a-zA-Z0-9]*$', pyscript) is None:
                 self.query_error(query, 'filter function is not an identifier')
                 err = True
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to