Changeset: 218824eb44c5 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=218824eb44c5 Added Files: sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.out Modified Files: clients/mapiclient/mclient.c gdk/gdk_logger.c monetdb5/modules/mal/tablet.c sql/backends/monet5/sql.c sql/backends/monet5/sql_upgrades.c sql/server/rel_psm.c sql/test/BugTracker-2018/Tests/All sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out sql/test/BugTracker-2019/Tests/All sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql Branch: default Log Message:
Merge with Nov2019 branch diffs (truncated from 428 to 300 lines): diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -3664,6 +3664,9 @@ main(int argc, char **argv) if (mode == SQL) dump_version(mid, toConsole, "Database:"); + mnstr_printf(toConsole, "FOLLOW US on https://twitter.com/MonetDB "); + mnstr_printf(toConsole, "or https://github.com/MonetDB/MonetDB\n"); + mnstr_printf(toConsole, "Type \\q to quit, \\? for a list of available commands\n"); if (mode == SQL) mnstr_printf(toConsole, "auto commit mode: %s\n", diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -3034,8 +3034,10 @@ pre_allocate(logger *lg) p = (lng) getfilepos(getFile(lg->log)); if (p == -1) return GDK_FAIL; - if (p > LOG_LARGE) + if (p > LOG_LARGE) { + lg->id++; return logger_open(lg); + } if (p + DBLKSZ > lg->end) { p &= ~(DBLKSZ - 1); p += SEGSZ; diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c --- a/monetdb5/modules/mal/tablet.c +++ b/monetdb5/modules/mal/tablet.c @@ -670,7 +670,7 @@ tablet_error(READERtask *task, lng row, BUNappend(task->cntxt->error_msg, msg, false) != GDK_SUCCEED || BUNappend(task->cntxt->error_input, fcn, false) != GDK_SUCCEED) task->besteffort = 0; - if (!is_lng_nil(row) && task->rowerror) + if (!is_lng_nil(row) && task->rowerror && row < task->limit) task->rowerror[row]++; } if (task->as->error == NULL) { diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -464,8 +464,7 @@ create_table_from_emit(Client cntxt, cha return msg; /* for some reason we don't have an allocator here, so make one */ - sql->sa = sa_create(); - if (!sql->sa) { + if (!(sql->sa = sa_create())) { msg = sql_error(sql, 02, SQLSTATE(HY001) "CREATE TABLE: %s", MAL_MALLOC_FAIL); goto cleanup; } @@ -481,44 +480,44 @@ create_table_from_emit(Client cntxt, cha goto cleanup; } - for(i = 0; i < ncols; i++) { + for (i = 0; i < ncols; i++) { BAT *b = columns[i].b; - sql_subtype *tpe = sql_bind_localtype(ATOMname(b->ttype)); + str atoname = ATOMname(b->ttype); + sql_subtype tpe; sql_column *col = NULL; - if (!tpe) { - msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not find type for column"); - goto cleanup; + if (!strcmp(atoname, "str")) + sql_find_subtype(&tpe, "clob", 0, 0); + else { + sql_subtype *t = sql_bind_localtype(atoname); + if (!t) { + msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not find type for column"); + goto cleanup; + } + tpe = *t; } - col = mvc_create_column(sql, t, columns[i].name, tpe); - if (!col) { + if (!(col = mvc_create_column(sql, t, columns[i].name, &tpe))) { msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not create column %s", columns[i].name); goto cleanup; } } - msg = create_table_or_view(sql, sname, t->base.name, t, 0); - if (msg != MAL_SUCCEED) { + if ((msg = create_table_or_view(sql, sname, t->base.name, t, 0)) != MAL_SUCCEED) goto cleanup; - } - t = mvc_bind_table(sql, s, tname); - if (!t) { + if (!(t = mvc_bind_table(sql, s, tname))) { msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not bind table %s", tname); goto cleanup; } - for(i = 0; i < ncols; i++) { + for (i = 0; i < ncols; i++) { BAT *b = columns[i].b; sql_column *col = NULL; - col = mvc_bind_column(sql,t, columns[i].name); - if (!col) { + if (!(col = mvc_bind_column(sql, t, columns[i].name))) { msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not bind column %s", columns[i].name); goto cleanup; } - msg = mvc_append_column(sql->session->tr, col, b); - if (msg != MAL_SUCCEED) { + if ((msg = mvc_append_column(sql->session->tr, col, b)) != MAL_SUCCEED) goto cleanup; - } } cleanup: @@ -544,8 +543,7 @@ append_to_table_from_emit(Client cntxt, return msg; /* for some reason we don't have an allocator here, so make one */ - sql->sa = sa_create(); - if (!sql->sa) { + if (!(sql->sa = sa_create())) { msg = sql_error(sql, 02, SQLSTATE(HY001) "CREATE TABLE: %s", MAL_MALLOC_FAIL); goto cleanup; } @@ -556,24 +554,20 @@ append_to_table_from_emit(Client cntxt, msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: no such schema '%s'", sname); goto cleanup; } - t = mvc_bind_table(sql, s, tname); - if (!t) { + if (!(t = mvc_bind_table(sql, s, tname))) { msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not bind table %s", tname); goto cleanup; } - for(i = 0; i < ncols; i++) { + for (i = 0; i < ncols; i++) { BAT *b = columns[i].b; sql_column *col = NULL; - col = mvc_bind_column(sql,t, columns[i].name); - if (!col) { + if (!(col = mvc_bind_column(sql,t, columns[i].name))) { msg = sql_error(sql, 02, SQLSTATE(3F000) "CREATE TABLE: could not bind column %s", columns[i].name); goto cleanup; } - msg = mvc_append_column(sql->session->tr, col, b); - if (msg != MAL_SUCCEED) { + if ((msg = mvc_append_column(sql->session->tr, col, b)) != MAL_SUCCEED) goto cleanup; - } } cleanup: diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -82,7 +82,7 @@ sql_fix_system_tables(Client c, mvc *sql " %d, %d, %s, %s, %s, %d, %s);\n", func->base.id, func->base.name, func->imp, func->mod, FUNC_LANG_INT, - func->type, + (int) func->type, func->side_effect ? "true" : "false", func->varres ? "true" : "false", func->vararg ? "true" : "false", @@ -149,7 +149,7 @@ sql_fix_system_tables(Client c, mvc *sql " (%d, '%s', '%s', '%s', %d, %d, false," " %s, %s, %d, %s);\n", aggr->base.id, aggr->base.name, aggr->imp, - aggr->mod, FUNC_LANG_INT, aggr->type, + aggr->mod, FUNC_LANG_INT, (int) aggr->type, aggr->varres ? "true" : "false", aggr->vararg ? "true" : "false", aggr->s ? aggr->s->base.id : s->base.id, diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c --- a/sql/server/rel_psm.c +++ b/sql/server/rel_psm.c @@ -1469,7 +1469,7 @@ rel_psm(sql_query *query, symbol *s) case SQL_CREATE_FUNC: { dlist *l = s->data.lval; - int type = l->h->next->next->next->next->next->data.i_val; + sql_ftype type = (sql_ftype) l->h->next->next->next->next->next->data.i_val; int lang = l->h->next->next->next->next->next->next->data.i_val; int repl = l->h->next->next->next->next->next->next->next->data.i_val; 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 @@ -37,7 +37,7 @@ sqlitelogictest-groupby-having-not-in.Bu sqlitelogictest-nested-case.Bug-6554 sqlitelogictest-complex-case-extra-columns.Bug-6555 sqlitelogictest-coalesce-division-by-zero.Bug-6556 -HAVE_MAL_DEBUGGER?sqlitelogictest-having-not-null-not-in.Bug-6557 +sqlitelogictest-having-not-null-not-in.Bug-6557 sqlitelogictest-groupby-having-in.Bug-6560 sqlitelogictest-groupby-having-in-cast.Bug-6561 sqlitelogictest-groupby-having-not-null-not-in.Bug-6562 diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql @@ -8,4 +8,3 @@ SELECT CAST(SUM(col0) AS BIGINT) FROM ta SELECT DISTINCT COUNT(*) FROM tab0 WHERE NOT col2 NOT BETWEEN ( 35 ) AND ( NULL ); SELECT CAST(- COUNT(*) * - - 61 + + + ( + COUNT(*) ) AS BIGINT) FROM tab0 WHERE NOT col0 + + 10 BETWEEN NULL AND NULL; DROP TABLE tab0; -debug SELECT CAST(SUM(col0) AS BIGINT) FROM (VALUES(83,0,38), (26,0,79), (43,81,24)) as tab0(col0,col1,col2) WHERE + + col0 NOT BETWEEN NULL AND + col2; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out b/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out @@ -64,8 +64,6 @@ stdout of test 'sqlitelogictest-having-n % 1 # length [ 0 ] #DROP TABLE tab0; -#debug SELECT CAST(SUM(col0) AS BIGINT) FROM (VALUES(83,0,38), (26,0,79), (43,81,24)) as tab0(col0,col1,col2) WHERE + + col0 NOT BETWEEN NULL AND + col2; -mdb>#X_11=0@0:void := querylog.define("debug select cast(sum(col0) as bigint) from (values(83,0,38), (26,0,79), (43,81,24)) as tab0(col0,col1,col2) where + + col0 not between null and + col2;", "default_pipe", 27:int); # 12:32:58 > # 12:32:58 > "Done." diff --git a/sql/test/BugTracker-2019/Tests/All b/sql/test/BugTracker-2019/Tests/All --- a/sql/test/BugTracker-2019/Tests/All +++ b/sql/test/BugTracker-2019/Tests/All @@ -33,3 +33,4 @@ alter_table_drop_column.Bug-6749 HAVE_PYMONETDB?remote-table-non-existent-column.Bug-6750 cte-union.Bug-6755 merge-table-limit.Bug-6756 +HAVE_LIBPY3?python-loader-string.Bug-6759 diff --git a/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql b/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql --- a/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql +++ b/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.sql @@ -4,5 +4,5 @@ CREATE TABLE IF NOT EXISTS "task" ( "sys_created_on" TIMESTAMP ); - explain SELECT sys.timestamp_to_str(case when task0."sys_created_on" >= '1999-10-31 09:00:00' and task0."sys_created_on" < '2000-04-02 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2000-04-02 10:00:00' and task0."sys_created_on" < '2000-10-29 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2000-10-29 09:00:00' and task0."sys_created_on" < '2001-04-01 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2001-04-01 10:00:00' and task0."sys_created_on" < '2001-10-28 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2001-10-28 09:00:00' and task0."sys_created_on" < '2002-04-07 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2002-04-07 10:00:00' and task0."sys_created_on" < '2002-10-27 09:00:00' then task0."sys_created_on" + interval '-25200' second w hen task0."sys_created_on" >= '2002-10-27 09:00:00' and task0."sys_created_on" < '2003-04-06 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2003-04-06 10:00:00' and task0."sys_created_on" < '2003-10-26 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2003-10-26 09:00:00' and task0."sys_created_on" < '2004-04-04 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2004-04-04 10:00:00' and task0."sys_created_on" < '2004-10-31 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2004-10-31 09:00:00' and task0."sys_created_on" < '2005-04-03 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2005-04-03 10:00:00' and task0."sys_created_on" < '2005-10-30 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2005-10-30 0 9:00:00' and task0."sys_created_on" < '2006-04-02 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2006-04-02 10:00:00' and task0."sys_created_on" < '2006-10-29 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2006-10-29 09:00:00' and task0."sys_created_on" < '2007-03-11 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2007-03-11 10:00:00' and task0."sys_created_on" < '2007-11-04 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2007-11-04 09:00:00' and task0."sys_created_on" < '2008-03-09 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2008-03-09 10:00:00' and task0."sys_created_on" < '2008-11-02 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2008-11-02 09:00:00' and task0."sys_created_on" < '2009 -03-08 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2009-03-08 10:00:00' and task0."sys_created_on" < '2009-11-01 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2009-11-01 09:00:00' and task0."sys_created_on" < '2010-03-14 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2010-03-14 10:00:00' and task0."sys_created_on" < '2010-11-07 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2010-11-07 09:00:00' and task0."sys_created_on" < '2011-03-13 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2011-03-13 10:00:00' and task0."sys_created_on" < '2011-11-06 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2011-11-06 09:00:00' and task0."sys_created_on" < '2012-03-11 10:00:00' then task0."sys_created_on " + interval '-28800' second when task0."sys_created_on" >= '2012-03-11 10:00:00' and task0."sys_created_on" < '2012-11-04 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2012-11-04 09:00:00' and task0."sys_created_on" < '2013-03-10 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2013-03-10 10:00:00' and task0."sys_created_on" < '2013-11-03 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2013-11-03 09:00:00' and task0."sys_created_on" < '2014-03-09 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2014-03-09 10:00:00' and task0."sys_created_on" < '2014-11-02 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2014-11-02 09:00:00' and task0."sys_created_on" < '2015-03-08 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sy s_created_on" >= '2015-03-08 10:00:00' and task0."sys_created_on" < '2015-11-01 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2015-11-01 09:00:00' and task0."sys_created_on" < '2016-03-13 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2016-03-13 10:00:00' and task0."sys_created_on" < '2016-11-06 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2016-11-06 09:00:00' and task0."sys_created_on" < '2017-03-12 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2017-03-12 10:00:00' and task0."sys_created_on" < '2017-11-05 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2017-11-05 09:00:00' and task0."sys_created_on" < '2018-03-11 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2018-03-11 10:00:00' and task0."sys_created_on" < '2018-11-04 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2018-11-04 09:00:00' and task0."sys_created_on" < '2019-03-10 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2019-03-10 10:00:00' and task0."sys_created_on" < '2019-11-03 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2019-11-03 09:00:00' and task0."sys_created_on" < '2020-03-08 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2020-03-08 10:00:00' and task0."sys_created_on" < '2020-11-01 09:00:00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2020-11-01 09:00:00' and task0."sys_created_on" < '2021-03-14 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2021-03-14 10:00:00' and task0."sys_created_on" < '2021-11-07 09:00: 00' then task0."sys_created_on" + interval '-25200' second when task0."sys_created_on" >= '2021-11-07 09:00:00' and task0."sys_created_on" < '2022-03-13 10:00:00' then task0."sys_created_on" + interval '-28800' second when task0."sys_created_on" >= '2022-03-13 10:00:00' and task0."sys_created_on" < '2022-11-06 09:00:00' then task0."sys_created_on" + interval '-25200' second else task0."sys_created_on" + interval '-28800' second end,'%Y') AS yearref FROM task task0 WHERE task0."sys_class_name" = 'incident' AND task0."priority" IS NOT NULL ; +DROP TABLE "task"; diff --git a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py @@ -0,0 +1,38 @@ +import sys + +try: + from MonetDBtesting import process +except ImportError: + import process + + +s = process.server(args = ['--set', 'embedded_py=3'], stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) + +c = process.client(lang = 'sql', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) +out, err = c.communicate('''\ +CREATE LOADER json_loader() LANGUAGE PYTHON {\n\ + import json\n\ + _emit.emit(json.loads('{"col1": ["apple", "peer"], "col2": ["orange", "banana nananana"]}'))\n\ +};\ +CREATE TABLE tbl FROM LOADER json_loader();\ +SELECT * FROM tbl; +''') +sys.stdout.write(out) +sys.stderr.write(err) + +c = process.client(lang = 'sqldump', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) +out, err = c.communicate() +sys.stdout.write(out) +sys.stderr.write(err) + +c = process.client(lang = 'sql', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) +out, err = c.communicate('''\ +DROP TABLE tbl;\ +DROP LOADER json_loader; +''') +sys.stdout.write(out) +sys.stderr.write(err) + +out, err = s.communicate() +sys.stdout.write(out) +sys.stderr.write(err) diff --git a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err @@ -0,0 +1,37 @@ +stderr of test 'python-loader-string.Bug-6759` in directory 'sql/test/BugTracker-2019` itself: + + +# 10:43:16 > +# 10:43:16 > "/usr/bin/python2" "python-loader-string.Bug-6759.py" "python-loader-string.Bug-6759" +# 10:43:16 > + +# builtin opt gdk_dbpath = /home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/monetdb5/dbfarm/demo +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list