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

Reply via email to