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