Changeset: c2f4e8929d03 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c2f4e8929d03
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.mal
        sql/common/sql_types.c
        sql/server/rel_updates.c
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: default
Log Message:

Reverting changeset 0c8fdd94e5c8 It's not that easy to do it


diffs (truncated from 369 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -11679,7 +11679,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",     
  "mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with 
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates"   ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(sname:str, 
tname:str):lng ",    "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
 [ "sql",       "commit",       "pattern sql.commit():void ",   "SQLcommit;",   
"Trigger the commit operation for a MAL block"  ]
-[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(sname:str, 
tname:str, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, 
locked:int, best:int, fwf:str, onclient:int):bat[:any]... ",    
"mvc_import_table_wrap;",       "Import a table from bstream s with the 
\n\tgiven tuple and seperators (sep/rsep)"      ]
+[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str, onclient:int):bat[:any]... ",   "mvc_import_table_wrap;",    
   "Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "pattern sql.copy_rejects_clear():void 
",       "COPYrejects_clear;",   ""      ]
 [ "sql",       "count",        "pattern sql.count(b:any_1, ignils:bit, s:lng, 
e:lng):lng ",    "SQLcount;",    "return count of groups"        ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -16084,7 +16084,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",     
  "mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with 
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates"   ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(sname:str, 
tname:str):lng ",    "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
 [ "sql",       "commit",       "pattern sql.commit():void ",   "SQLcommit;",   
"Trigger the commit operation for a MAL block"  ]
-[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(sname:str, 
tname:str, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, 
locked:int, best:int, fwf:str, onclient:int):bat[:any]... ",    
"mvc_import_table_wrap;",       "Import a table from bstream s with the 
\n\tgiven tuple and seperators (sep/rsep)"      ]
+[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str, onclient:int):bat[:any]... ",   "mvc_import_table_wrap;",    
   "Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "pattern sql.copy_rejects_clear():void 
",       "COPYrejects_clear;",   ""      ]
 [ "sql",       "count",        "pattern sql.count(b:any_1, ignils:bit, s:lng, 
e:lng):lng ",    "SQLcount;",    "return count of groups"        ]
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -59,15 +59,15 @@ stdout of test 'opt_sql_append` in direc
 % .explain # table_name
 % mal # name
 % clob # type
-% 193 # length
+% 186 # length
 function user.s10_0():void;
-    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "sequential_pipe":str, 23:int);
+    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "sequential_pipe":str, 22:int);
     X_4:int := sql.mvc();
-    (X_28:bat[:int], X_29:bat[:int], X_30:bat[:int]) := 
sql.copy_from("sys":str, "ttt":str, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_32:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_28:bat[:int]);
-    X_35:int := sql.append(X_32:int, "sys":str, "ttt":str, "b":str, 
X_29:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_30:bat[:int]);
-    X_40:lng := aggr.count(X_30:bat[:int]);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x2e73790:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
+    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
+    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
+    X_40:lng := aggr.count(X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
 end user.s10_0;
 #inline               actions= 0 time=1 usec 
@@ -118,15 +118,15 @@ end user.s10_0;
 % .explain # table_name
 % mal # name
 % clob # type
-% 193 # length
+% 186 # length
 function user.s26_0():void;
-    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "user_0":str, 23:int);
+    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "user_0":str, 22:int);
     X_4:int := sql.mvc();
-    (X_28:bat[:int], X_29:bat[:int], X_30:bat[:int]) := 
sql.copy_from("sys":str, "ttt":str, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_32:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_28:bat[:int]);
-    X_35:int := sql.append(X_32:int, "sys":str, "ttt":str, "b":str, 
X_29:bat[:int]);
-    X_40:lng := aggr.count(X_30:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_30:bat[:int]);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x2e73790:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
+    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
+    X_40:lng := aggr.count(X_28:bat[:int]);
+    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
 end user.s26_0;
 #inline               actions= 0 time=1 usec 
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
--- 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
+++ 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
@@ -115,11 +115,11 @@ end user.s10_0;
 function user.s12_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
E\\'a:\\\\\\\\tmp/xyz\\';":str, "sequential_pipe":str, 23:int);
     X_4:int := sql.mvc();
-    (X_28:bat[:int], X_29:bat[:int], X_30:bat[:int]) := 
sql.copy_from("sys":str, "ttt":str, "|":str, "\n":str, nil:str, "null":str, 
"a:\\tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_32:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_28:bat[:int]);
-    X_35:int := sql.append(X_32:int, "sys":str, "ttt":str, "b":str, 
X_29:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_30:bat[:int]);
-    X_40:lng := aggr.count(X_30:bat[:int]);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x2e73790:ptr, "|":str, "\n":str, nil:str, "null":str, 
"a:\\tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
+    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
+    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
+    X_40:lng := aggr.count(X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
 end user.s12_0;
 #inline               actions= 0 time=1 usec 
@@ -212,11 +212,11 @@ end user.s28_0;
 function user.s30_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
\\'Z:/tmp/xyz\\';":str, "user_0":str, 23:int);
     X_4:int := sql.mvc();
-    (X_28:bat[:int], X_29:bat[:int], X_30:bat[:int]) := 
sql.copy_from("sys":str, "ttt":str, "|":str, "\n":str, nil:str, "null":str, 
"Z:/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_32:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_28:bat[:int]);
-    X_35:int := sql.append(X_32:int, "sys":str, "ttt":str, "b":str, 
X_29:bat[:int]);
-    X_40:lng := aggr.count(X_30:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_30:bat[:int]);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x2e73790:ptr,, "|":str, "\n":str, nil:str, "null":str, 
"Z:/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
+    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
+    X_40:lng := aggr.count(X_28:bat[:int]);
+    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
 end user.s30_0;
 #inline               actions= 0 time=0 usec 
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
@@ -3027,24 +3027,20 @@ str
 mvc_import_table_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        backend *be;
-       mvc *sql;
        BAT **b = NULL;
        ssize_t len = 0;
-       sql_schema *sch = NULL;
-       sql_table *t = NULL;
-       const char *sname = *getArgReference_str(stk, pci, pci->retc + 0);
-       const char *tname = *getArgReference_str(stk, pci, pci->retc + 1);
-       const char *tsep = *getArgReference_str(stk, pci, pci->retc + 2);
-       const char *rsep = *getArgReference_str(stk, pci, pci->retc + 3);
-       const char *ssep = *getArgReference_str(stk, pci, pci->retc + 4);
-       const char *ns = *getArgReference_str(stk, pci, pci->retc + 5);
-       const char *fname = *getArgReference_str(stk, pci, pci->retc + 6);
-       lng sz = *getArgReference_lng(stk, pci, pci->retc + 7);
-       lng offset = *getArgReference_lng(stk, pci, pci->retc + 8);
-       int locked = *getArgReference_int(stk, pci, pci->retc + 9);
-       int besteffort = *getArgReference_int(stk, pci, pci->retc + 10);
-       char *fixed_widths = *getArgReference_str(stk, pci, pci->retc + 11);
-       int onclient = *getArgReference_int(stk, pci, pci->retc + 12);
+       sql_table *t = *(sql_table **) getArgReference(stk, pci, pci->retc + 0);
+       const char *tsep = *getArgReference_str(stk, pci, pci->retc + 1);
+       const char *rsep = *getArgReference_str(stk, pci, pci->retc + 2);
+       const char *ssep = *getArgReference_str(stk, pci, pci->retc + 3);
+       const char *ns = *getArgReference_str(stk, pci, pci->retc + 4);
+       const char *fname = *getArgReference_str(stk, pci, pci->retc + 5);
+       lng sz = *getArgReference_lng(stk, pci, pci->retc + 6);
+       lng offset = *getArgReference_lng(stk, pci, pci->retc + 7);
+       int locked = *getArgReference_int(stk, pci, pci->retc + 8);
+       int besteffort = *getArgReference_int(stk, pci, pci->retc + 9);
+       char *fixed_widths = *getArgReference_str(stk, pci, pci->retc + 10);
+       int onclient = *getArgReference_int(stk, pci, pci->retc + 11);
        str msg = MAL_SUCCEED;
        bstream *s = NULL;
        stream *ss;
@@ -3052,17 +3048,11 @@ mvc_import_table_wrap(Client cntxt, MalB
        (void) mb;              /* NOT USED */
        if ((msg = checkSQLContext(cntxt)) != NULL)
                return msg;
-       if (onclient && !cntxt->filetrans)
-               throw(SQL, "sql.copy_from", SQLSTATE(42000) "Cannot transfer 
files from client");
+       if (onclient && !cntxt->filetrans) {
+               throw(MAL, "sql.copy_from", "cannot transfer files from 
client");
+       }
 
        be = cntxt->sqlcontext;
-       sql = be->mvc;
-
-       if (!(sch = mvc_bind_schema(sql, sname)))
-               throw(SQL, "sql.copy_from", SQLSTATE(3F000) "Schema missing 
%s", sname);
-       if (!(t = mvc_bind_table(sql, sch, tname)))
-               throw(SQL, "sql.copy_from", SQLSTATE(42S02) "Table missing %s", 
tname);
-
        /* The CSV parser expects ssep to have the value 0 if the user does not
         * specify a quotation character
         */
@@ -3290,17 +3280,19 @@ mvc_bin_import_table_wrap(Client cntxt, 
        if ((msg = checkSQLContext(cntxt)) != NULL)
                return msg;
 
-       if (!(s = mvc_bind_schema(m, sname)))
-               throw(SQL, "sql.import_table", SQLSTATE(3F000) "Schema missing 
%s", sname);
-       if (!(t = mvc_bind_table(m, s, tname)))
-               throw(SQL, "sql.import_table", SQLSTATE(42S02) "Table missing 
%s", tname);
+       if ((s = mvc_bind_schema(m, sname)) == NULL)
+               throw(SQL, "sql.import_table", SQLSTATE(3F000) "Schema missing 
%s",sname);
+       t = mvc_bind_table(m, s, tname);
+       if (!t)
+               throw(SQL, "sql", SQLSTATE(42S02) "Table missing %s", tname);
        if (list_length(t->columns.set) != (pci->argc - (3 + pci->retc)))
-               throw(SQL, "sql.import_table", SQLSTATE(42000) "Not enough 
columns found in input file");
+               throw(SQL, "sql", SQLSTATE(42000) "Not enough columns found in 
input file");
        if (2 * pci->retc + 3 != pci->argc)
-               throw(SQL, "sql.import_table", SQLSTATE(42000) "Not enough 
output values");
-
-       if (onclient && !cntxt->filetrans)
-               throw(SQL, "sql.copy_from", SQLSTATE(42000) "Cannot transfer 
files from client");
+               throw(SQL, "sql", SQLSTATE(42000) "Not enough output values");
+
+       if (onclient && !cntxt->filetrans) {
+               throw(MAL, "sql.copy_from", "cannot transfer files from 
client");
+       }
 
        backend *be = cntxt->sqlcontext;
 
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -347,7 +347,7 @@ unsafe pattern affectedRows(mvc:int, nr:
 address mvc_affected_rows_wrap
 comment "export the number of affected rows by the current query";
 
-unsafe pattern copy_from( sname:str, tname:str, 
+unsafe pattern copy_from( t:ptr, 
        sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, 
locked:int, best:int, fwf:str, onclient:int) (:bat[:any]...)
 address mvc_import_table_wrap
 comment "Import a table from bstream s with the 
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -1462,7 +1462,7 @@ sqltypeinit( sql_allocator *sa)
        sql_type *SECINT, *MONINT, *DTE;
        sql_type *TME, *TMETZ, *TMESTAMP, *TMESTAMPTZ;
        sql_type *BLOB;
-       sql_type *ANY, *TABLE;
+       sql_type *ANY, *TABLE, *PTR;
        sql_type *GEOM, *MBR;
        sql_func *f;
        sql_arg *sres;
@@ -1472,7 +1472,7 @@ sqltypeinit( sql_allocator *sa)
 
        t = ts;
        TABLE = *t++ = sql_create_type(sa, "TABLE", 0, 0, 0, EC_TABLE, "bat");
-       *t++ = sql_create_type(sa, "PTR", 0, 0, 0, EC_TABLE, "ptr");
+       PTR = *t++ = sql_create_type(sa, "PTR", 0, 0, 0, EC_TABLE, "ptr");
 
        BIT = *t++ = sql_create_type(sa, "BOOLEAN", 1, 0, 2, EC_BIT, "bit");
        sql_create_alias(sa, BIT->sqlname, "BOOL");
@@ -2219,9 +2219,8 @@ sqltypeinit( sql_allocator *sa)
        sres = create_arg(sa, NULL, sql_create_subtype(sa, TABLE, 0, 0), 
ARG_OUT); 
        /* copyfrom fname (arg 12) */
        f=sql_create_func_(sa, "copyfrom", "sql", "copy_from",
-               list_append( list_append( list_append( list_append( 
list_append( list_append( list_append(list_append (list_append 
(list_append(list_append(list_append(list_append(sa_list(sa),
-                       create_arg(sa, NULL, sql_create_subtype(sa, STR, 0, 0), 
ARG_IN)), 
-                       create_arg(sa, NULL, sql_create_subtype(sa, STR, 0, 0), 
ARG_IN)), 
+               list_append( list_append( list_append( list_append( 
list_append( list_append(list_append (list_append 
(list_append(list_append(list_append(list_append(sa_list(sa),
+                       create_arg(sa, NULL, sql_create_subtype(sa, PTR, 0, 0), 
ARG_IN)), 
                        create_arg(sa, NULL, sql_create_subtype(sa, STR, 0, 0), 
ARG_IN)), 
                        create_arg(sa, NULL, sql_create_subtype(sa, STR, 0, 0), 
ARG_IN)), 
                        create_arg(sa, NULL, sql_create_subtype(sa, STR, 0, 0), 
ARG_IN)), 
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1578,16 +1578,15 @@ rel_import(mvc *sql, sql_table *t, const
        sql_subtype tpe;
        sql_exp *import;
        sql_schema *sys = mvc_bind_schema(sql, "sys");
-       sql_subfunc *f = sql_find_func(sql->sa, sys, "copyfrom", 13, F_UNION, 
NULL);
+       sql_subfunc *f = sql_find_func(sql->sa, sys, "copyfrom", 12, F_UNION, 
NULL);
        char *fwf_string = NULL;
        
        if (!f) /* we do expect copyfrom to be there */
                return NULL;
        f->res = table_column_types(sql->sa, t);
        sql_find_subtype(&tpe, "varchar", 0, 0);
-       args = append( append( append( append( append( append( 
new_exp_list(sql->sa), 
-               exp_atom_str(sql->sa, t->s->base.name, &tpe)), 
-               exp_atom_str(sql->sa, t->base.name, &tpe)), 
+       args = append( append( append( append( append( new_exp_list(sql->sa), 
+               exp_atom_ptr(sql->sa, t)), 
                exp_atom_str(sql->sa, tsep, &tpe)), 
                exp_atom_str(sql->sa, rsep, &tpe)), 
                exp_atom_str(sql->sa, ssep, &tpe)), 
diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -2379,7 +2379,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "concat",       "SYSTEM",       "+",    "calc", "Internal C",   
"Scalar function",      false,  false,  false,  "res_0",        "clob", 0,      
0,      "out",  "arg_1",        "clob", 0,      0,      "in",   "arg_2",        
"clob", 0,      0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "concat",       "SYSTEM",       "+",    "calc", "Internal C",   
"Scalar function",      false,  false,  false,  "res_0",        "varchar",      
0,      0,      "out",  "arg_1",        "varchar",      0,      0,      "in",   
"arg_2",        "varchar",      0,      0,      "in",   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL    ]
 [ "sys",       "contains",     "SYSTEM",       "create function contains(a 
geometry, x double, y double) returns boolean external name 
geom.\"Contains\";",    "geom", "MAL",  "Scalar function",      false,  false,  
false,  "result",       "boolean",      1,      0,      "out",  "a",    
"geometry",     0,      0,      "in",   "x",    "double",       53,     0,      
"in",   "y",    "double",       53,     0,      "in",   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
-[ "sys",       "copyfrom",     "SYSTEM",       "copy_from",    "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        
"varchar",      0,      0,      "in",   "arg_2",        "varchar",      0,      
0,      "in",   "arg_3",        "varchar",      0,      0,      "in",   
"arg_4",        "varchar",      0,      0,      "in",   "arg_5",        
"varchar",      0,      0,      "in",   "arg_6",        "varchar",      0,      
0,      "in",   "arg_7",        "varchar",      0,      0,      "in",   
"arg_8",        "bigint",       64,     0,      "in",   "arg_9",        
"bigint",       64,     0,      "in",   "arg_10",       "int",  32,     0,      
"in",   "arg_11",       "int",  32,     0,      "in",   "arg_12",       
"varchar",      0,      0,      "in",   "arg_13",       "int",  32,     0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL    ]
+[ "sys",       "copyfrom",     "SYSTEM",       "copy_from",    "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        "ptr",  
0,      0,      "in",   "arg_2",        "varchar",      0,      0,      "in",   
"arg_3",        "varchar",      0,      0,      "in",   "arg_4",        
"varchar",      0,      0,      "in",   "arg_5",        "varchar",      0,      
0,      "in",   "arg_6",        "varchar",      0,      0,      "in",   
"arg_7",        "bigint",       64,     0,      "in",   "arg_8",        
"bigint",       64,     0,      "in",   "arg_9",        "int",  32,     0,      
"in",   "arg_10",       "int",  32,     0,      "in",   "arg_11",       
"varchar",      0,      0,      "in",   "arg_12",       "int",  32,     0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "copyfrom",     "SYSTEM",       "importTable",  "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        
"varchar",      0,      0,      "in",   "arg_2",        "varchar",      0,      
0,      "in",   "arg_3",        "int",  32,     0,      "in",   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "corr", "SYSTEM",       "create aggregate corr(e1 bigint, e2 
bigint) returns double external name \"aggr\".\"corr\";",  "aggr", "MAL",  
"Aggregate function",   false,  false,  false,  "result",       "double",       
53,     0,      "out",  "e1",   "bigint",       64,     0,      "in",   "e2",   
"bigint",       64,     0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
 [ "sys",       "corr", "SYSTEM",       "create aggregate corr(e1 double, e2 
double) returns double external name \"aggr\".\"corr\";",  "aggr", "MAL",  
"Aggregate function",   false,  false,  false,  "result",       "double",       
53,     0,      "out",  "e1",   "double",       53,     0,      "in",   "e2",   
"double",       53,     0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -2371,7 +2371,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "concat",       "SYSTEM",       "+",    "calc", "Internal C",   
"Scalar function",      false,  false,  false,  "res_0",        "clob", 0,      
0,      "out",  "arg_1",        "clob", 0,      0,      "in",   "arg_2",        
"clob", 0,      0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "concat",       "SYSTEM",       "+",    "calc", "Internal C",   
"Scalar function",      false,  false,  false,  "res_0",        "varchar",      
0,      0,      "out",  "arg_1",        "varchar",      0,      0,      "in",   
"arg_2",        "varchar",      0,      0,      "in",   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL    ]
 [ "sys",       "contains",     "SYSTEM",       "create function contains(a 
geometry, x double, y double) returns boolean external name 
geom.\"Contains\";",    "geom", "MAL",  "Scalar function",      false,  false,  
false,  "result",       "boolean",      1,      0,      "out",  "a",    
"geometry",     0,      0,      "in",   "x",    "double",       53,     0,      
"in",   "y",    "double",       53,     0,      "in",   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
-[ "sys",       "copyfrom",     "SYSTEM",       "copy_from",    "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        
"varchar",      0,      0,      "in",   "arg_2",        "varchar",      0,      
0,      "in",   "arg_3",        "varchar",      0,      0,      "in",   
"arg_4",        "varchar",      0,      0,      "in",   "arg_5",        
"varchar",      0,      0,      "in",   "arg_6",        "varchar",      0,      
0,      "in",   "arg_7",        "varchar",      0,      0,      "in",   
"arg_8",        "bigint",       64,     0,      "in",   "arg_9",        
"bigint",       64,     0,      "in",   "arg_10",       "int",  32,     0,      
"in",   "arg_11",       "int",  32,     0,      "in",   "arg_12",       
"varchar",      0,      0,      "in",   "arg_13",       "int",  32,     0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL    ]
+[ "sys",       "copyfrom",     "SYSTEM",       "copy_from",    "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        "ptr",  
0,      0,      "in",   "arg_2",        "varchar",      0,      0,      "in",   
"arg_3",        "varchar",      0,      0,      "in",   "arg_4",        
"varchar",      0,      0,      "in",   "arg_5",        "varchar",      0,      
0,      "in",   "arg_6",        "varchar",      0,      0,      "in",   
"arg_7",        "bigint",       64,     0,      "in",   "arg_8",        
"bigint",       64,     0,      "in",   "arg_9",        "int",  32,     0,      
"in",   "arg_10",       "int",  32,     0,      "in",   "arg_11",       
"varchar",      0,      0,      "in",   "arg_12",       "int",  32,     0,      
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "copyfrom",     "SYSTEM",       "importTable",  "sql",  
"Internal C",   "Function returning a table",   false,  true,   false,  
"res_0",        "table",        0,      0,      "out",  "arg_1",        
"varchar",      0,      0,      "in",   "arg_2",        "varchar",      0,      
0,      "in",   "arg_3",        "int",  32,     0,      "in",   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "corr", "SYSTEM",       "create aggregate corr(e1 bigint, e2 
bigint) returns double external name \"aggr\".\"corr\";",  "aggr", "MAL",  
"Aggregate function",   false,  false,  false,  "result",       "double",       
53,     0,      "out",  "e1",   "bigint",       64,     0,      "in",   "e2",   
"bigint",       64,     0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
 [ "sys",       "corr", "SYSTEM",       "create aggregate corr(e1 double, e2 
double) returns double external name \"aggr\".\"corr\";",  "aggr", "MAL",  
"Aggregate function",   false,  false,  false,  "result",       "double",       
53,     0,      "out",  "e1",   "double",       53,     0,      "in",   "e2",   
"double",       53,     0,      "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128 
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -2221,7 +2221,7 @@ drop function pcre_replace(string, strin
 % .s,  .f,     .,      .,      .f,     .fl,    .ft,    .f,     .f,     .f,     
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      .,      
.,      .,      .,      .,      .,      .,      .,      .,      .,      . # 
table_name
 % name,        name,   system, query,  mod,    language_name,  
function_type_name,     side_effect,    varres, vararg, name0,  type0,  
type_digits0,   type_scale0,    inout0, name1,  type1,  type_digits1,   
type_scale1,    inout1, name2,  type2,  type_digits2,   type_scale2,    inout2, 
name3,  type3,  type_digits3,   type_scale3,    inout3, name4,  type4,  
type_digits4,   type_scale4,    inout4, name5,  type5,  type_digits5,   
type_scale5,    inout5, name6,  type6,  type_digits6,   type_scale6,    inout6, 
name7,  type7,  type_digits7,   type_scale7,    inout7, name8,  type8,  
type_digits8,   type_scale8,    inout8, name9,  type9,  type_digits9,   
type_scale9,    inout9, name10, type10, type_digits10,  type_scale10,   
inout10,        name11, type11, type_digits11,  type_scale11,   inout11,        
name12, type12, type_digits12,  type_scale12,   inout12,        name13, type13, 
type_digits13,  type_scale13,   inout13,        name14, type14, type_digits14,  
type_scale14,   inout14,        name15, type15, type_digits15,  type_scale15,   
inout15 # name
 % varchar,     varchar,        char,   varchar,        varchar,        
varchar,        varchar,        boolean,        boolean,        boolean,        
varchar,        varchar,        int,    int,    char,   varchar,        
varchar,        int,    int,    char,   varchar,        varchar,        int,    
int,    char,   varchar,        varchar,        int,    int,    char,   
varchar,        varchar,        int,    int,    char,   varchar,        
varchar,        int,    int,    char,   varchar,        varchar,        int,    
int,    char,   varchar,        varchar,        int,    int,    char,   
varchar,        varchar,        int,    int,    char,   varchar,        
varchar,        int,    int,    char,   varchar,        varchar,        int,    
int,    char,   varchar,        varchar,        int,    int,    char,   
varchar,        varchar,        int,    int,    char,   varchar,        
varchar,        int,    int,    char,   varchar,        varchar,        int,    
int,    char,   varchar,        varchar,        int,    int,    char # type
-% 8,   24,     6,      1362,   9,      10,     26,     5,      5,      5,      
11,     14,     4,      1,      3,      16,     14,     4,      1,      3,      
16,     14,     4,      1,      3,      27,     12,     4,      1,      3,      
9,      9,      2,      1,      3,      14,     14,     4,      1,      3,      
12,     14,     3,      1,      3,      11,     7,      2,      1,      3,      
11,     7,      2,      1,      3,      8,      6,      2,      1,      3,      
6,      6,      2,      1,      3,      6,      7,      2,      1,      3,      
8,      7,      2,      1,      3,      6,      7,      2,      1,      3,      
9,      7,      1,      1,      3,      6,      7,      1,      1,      3 # 
length
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to