Changeset: f5f76b464455 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f5f76b464455
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        sql/backends/monet5/sql.c
        sql/server/rel_optimizer.c
        sql/server/rel_propagate.c
        sql/storage/sql_catalog.c
Branch: scoping2
Log Message:

Merged with default


diffs (truncated from 3051 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
@@ -6638,6 +6638,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:str, 
X_2:bat[:int], X_3:bat[:oid]):bat[:int] ",   "STRbatWChrAt_strcst;", ""      ]
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:bat[:str], 
X_2:int):bat[:int] ",  "STRbatWChrAtcst;",     ""      ]
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:bat[:str], 
X_2:int, X_3:bat[:oid]):bat[:int] ",   "STRbatWChrAtcst;",     ""      ]
+[ "battxtsim", "similarity",   "command battxtsim.similarity(X_1:bat[:str], 
X_2:bat[:str]):bat[:dbl] ",        "fstrcmp0_impl_bulk;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:bte], 
X_2:bat[:bte]):bat[:sht] ", "UDFBATfuse;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:int], 
X_2:bat[:int]):bat[:lng] ", "UDFBATfuse;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:sht], 
X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;",  ""      ]
@@ -9429,20 +9430,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sessions",     "pattern sql.sessions() (X_0:bat[:int], 
X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], 
X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ",  
"sql_sessions_wrap;",   ""      ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(X_1:int, 
X_2:str, X_3:str, X_4:any_1):int ",    "setVariable;", ""      ]
 [ "sql",       "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int 
",        "SQLset_protocol;",     ""      ]
-[ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:int):void ",     "SQLsetmemorylimit;",   ""      ]
-[ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:sht, X_2:int):void ",    "SQLsetmemorylimit;",   ""      
]
-[ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, 
X_2:str):void ",      "SQLsetoptimizer;",     ""      ]
-[ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:str):void 
",       "SQLsetoptimizer;",     ""      ]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:bte, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:int):void ",    "SQLqueryTimeout;",     ""      ]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:int, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:sht, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:bte, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:int):void ",  "SQLsessionTimeout;",   ""      ]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:int, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:sht, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setworkerlimit",       "unsafe pattern 
sql.setworkerlimit(X_1:int):void ",     "SQLsetworkerlimit;",   ""      ]
-[ "sql",       "setworkerlimit",       "unsafe pattern 
sql.setworkerlimit(X_1:int, X_2:int):void ",    "SQLsetworkerlimit;",   ""      
]
 [ "sql",       "shrink",       "unsafe pattern sql.shrink(X_1:str, 
X_2:str):void ",    "SQLshrink;",   ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(X_1:bte):str ",   
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(X_1:bte, X_2:bit):str ",  
"SQLshutdown_wrap;",    ""      ]
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
@@ -9197,6 +9197,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:str, 
X_2:bat[:int], X_3:bat[:oid]):bat[:int] ",   "STRbatWChrAt_strcst;", ""      ]
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:bat[:str], 
X_2:int):bat[:int] ",  "STRbatWChrAtcst;",     ""      ]
 [ "batstr",    "unicodeAt",    "pattern batstr.unicodeAt(X_1:bat[:str], 
X_2:int, X_3:bat[:oid]):bat[:int] ",   "STRbatWChrAtcst;",     ""      ]
+[ "battxtsim", "similarity",   "command battxtsim.similarity(X_1:bat[:str], 
X_2:bat[:str]):bat[:dbl] ",        "fstrcmp0_impl_bulk;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:bte], 
X_2:bat[:bte]):bat[:sht] ", "UDFBATfuse;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:int], 
X_2:bat[:int]):bat[:lng] ", "UDFBATfuse;",  ""      ]
 [ "batudf",    "fuse", "command batudf.fuse(X_1:bat[:lng], 
X_2:bat[:lng]):bat[:hge] ", "UDFBATfuse;",  ""      ]
@@ -12741,20 +12742,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sessions",     "pattern sql.sessions() (X_0:bat[:int], 
X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], 
X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ",  
"sql_sessions_wrap;",   ""      ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(X_1:int, 
X_2:str, X_3:str, X_4:any_1):int ",    "setVariable;", ""      ]
 [ "sql",       "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int 
",        "SQLset_protocol;",     ""      ]
-[ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:int):void ",     "SQLsetmemorylimit;",   ""      ]
-[ "sql",       "setmemorylimit",       "unsafe pattern 
sql.setmemorylimit(X_1:sht, X_2:int):void ",    "SQLsetmemorylimit;",   ""      
]
-[ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, 
X_2:str):void ",      "SQLsetoptimizer;",     ""      ]
-[ "sql",       "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:str):void 
",       "SQLsetoptimizer;",     ""      ]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:bte, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:int):void ",    "SQLqueryTimeout;",     ""      ]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:int, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setquerytimeout",      "unsafe pattern 
sql.setquerytimeout(X_1:sht, X_2:int):void ",   "SQLqueryTimeout;",     ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:bte, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:int):void ",  "SQLsessionTimeout;",   ""      ]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:int, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setsessiontimeout",    "unsafe pattern 
sql.setsessiontimeout(X_1:sht, X_2:int):void ", "SQLsessionTimeout;",   ""      
]
-[ "sql",       "setworkerlimit",       "unsafe pattern 
sql.setworkerlimit(X_1:int):void ",     "SQLsetworkerlimit;",   ""      ]
-[ "sql",       "setworkerlimit",       "unsafe pattern 
sql.setworkerlimit(X_1:int, X_2:int):void ",    "SQLsetworkerlimit;",   ""      
]
 [ "sql",       "shrink",       "unsafe pattern sql.shrink(X_1:str, 
X_2:str):void ",    "SQLshrink;",   ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(X_1:bte):str ",   
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(X_1:bte, X_2:bit):str ",  
"SQLshutdown_wrap;",    ""      ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -755,42 +755,8 @@ str BKCsetPersistent(void *r, const bat 
 str BKCsetTransient(void *r, const bat *bid);
 str BKCshrinkBAT(bat *ret, const bat *bid, const bat *did);
 ssize_t BLOBtostr(str *tostr, size_t *l, const void *pin, bool external);
-str CLTInfo(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTLogin(bat *ret, bat *nme);
-str CLTaddUser(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTbackendsum(str *ret, str *pw);
-str CLTchangePassword(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTchangeUsername(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTcheckPermission(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str CLTgetClientId(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTgetPasswordHash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str CLTgetProfile(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTgetScenario(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTgetUsername(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTgetUsers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTmd5sum(str *ret, str *pw);
-str CLTqueryTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTquit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTremoveUser(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTripemd160sum(str *ret, str *pw);
-str CLTsessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetListing(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetPassword(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetPrintTimeout(void *ret, int *secs);
-str CLTsetScenario(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetSessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-str CLTsetTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetmemorylimit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetoptimizer(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsetworkerlimit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsha1sum(str *ret, str *pw);
-str CLTsha2sum(str *ret, str *pw, int *bits);
 str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTstopSession(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTsuspend(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str CLTwakeup(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDbbp(bat *ID, bat *NS, bat *TT, bat *CNT, bat *REFCNT, bat *LREFCNT, bat 
*LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND);
 str CMDbbpCount(bat *ret);
 str CMDbbpDirty(bat *ret);
diff --git a/clients/mapilib/.editorconfig b/clients/mapilib/.editorconfig
new file mode 100644
--- /dev/null
+++ b/clients/mapilib/.editorconfig
@@ -0,0 +1,3 @@
+[*.{c,h}]
+tab_width = 8
+max_line_length = 72
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -1524,8 +1524,7 @@ close_result(MapiHdl hdl)
                       (hdl->npending_close > 0 && hdl->pending_close != NULL));
                if (mid->active &&
                    (mid->active->active != result ||
-                    result->cache.tuplecount < result->row_count))
-               {
+                    result->cache.tuplecount < result->row_count)) {
                        /* results for which we got all tuples at the initial
                         * response, need not to be closed as the server already
                         * did that immediately */
@@ -1689,9 +1688,9 @@ mapi_next_result(MapiHdl hdl)
                        return MERROR;
                if (hdl->result &&
                    (hdl->result->querytype == -1 ||
-                        /* basically exclude Q_PARSE and Q_BLOCK */
-                        (hdl->result->querytype >= Q_TABLE &&
-                         hdl->result->querytype <= Q_PREPARE) ||
+                    /* basically exclude Q_PARSE and Q_BLOCK */
+                    (hdl->result->querytype >= Q_TABLE &&
+                     hdl->result->querytype <= Q_PREPARE) ||
                     hdl->result->errorstr != NULL))
                        return 1;
        }
@@ -1727,9 +1726,9 @@ mapi_more_results(MapiHdl hdl)
        while (result->next) {
                result = result->next;
                if (result->querytype == -1 ||
-                       /* basically exclude Q_PARSE and Q_BLOCK */
-                       (hdl->result->querytype >= Q_TABLE &&
-                        hdl->result->querytype <= Q_PREPARE) ||
+                   /* basically exclude Q_PARSE and Q_BLOCK */
+                   (hdl->result->querytype >= Q_TABLE &&
+                    hdl->result->querytype <= Q_PREPARE) ||
                    result->errorstr != NULL)
                        return true;
        }
@@ -2286,7 +2285,7 @@ mapi_reconnect(Mapi mid)
                                        /* see comment above for why
                                         * we don't stat */
                                        snprintf(buf, sizeof(buf),
-                                                        "%s/.s.monetdb.%d", 
host, MAPI_PORT);
+                                                "%s/.s.monetdb.%d", host, 
MAPI_PORT);
                                        host = buf;
                                }
 #endif
@@ -2479,12 +2478,12 @@ mapi_reconnect(Mapi mid)
                                closesocket(s);
                        }
                        snprintf(errbuf, sizeof(errbuf),
-                                        "could not connect to %s:%s: %s",
-                                        mid->hostname, port,
+                                "could not connect to %s:%s: %s",
+                                mid->hostname, port,
 #ifdef _MSC_VER
-                                        wsaerror(WSAGetLastError())
+                                wsaerror(WSAGetLastError())
 #else
-                                        strerror(errno)
+                                strerror(errno)
 #endif
                                );
                }
@@ -2510,15 +2509,15 @@ mapi_reconnect(Mapi mid)
                praddrlen = (socklen_t) sizeof(praddr.ss);
                if (getsockname(s, (struct sockaddr *) &myaddr.ss, &myaddrlen) 
== 0 &&
                    getpeername(s, (struct sockaddr *) &praddr.ss, &praddrlen) 
== 0 &&
-                       myaddr.ss.ss_family == praddr.ss.ss_family &&
-                       (myaddr.ss.ss_family == AF_INET
-                        ? myaddr.i4.sin_port == praddr.i4.sin_port
-                        : myaddr.i6.sin6_port == praddr.i6.sin6_port) &&
-                       (myaddr.ss.ss_family == AF_INET
-                        ? myaddr.i4.sin_addr.s_addr == 
praddr.i4.sin_addr.s_addr
-                        : memcmp(myaddr.i6.sin6_addr.s6_addr,
-                                         praddr.i6.sin6_addr.s6_addr,
-                                         sizeof(praddr.i6.sin6_addr.s6_addr)) 
== 0)) {
+                   myaddr.ss.ss_family == praddr.ss.ss_family &&
+                   (myaddr.ss.ss_family == AF_INET
+                    ? myaddr.i4.sin_port == praddr.i4.sin_port
+                    : myaddr.i6.sin6_port == praddr.i6.sin6_port) &&
+                   (myaddr.ss.ss_family == AF_INET
+                    ? myaddr.i4.sin_addr.s_addr == praddr.i4.sin_addr.s_addr
+                    : memcmp(myaddr.i6.sin6_addr.s6_addr,
+                             praddr.i6.sin6_addr.s6_addr,
+                             sizeof(praddr.i6.sin6_addr.s6_addr)) == 0)) {
                        closesocket(s);
                        return mapi_setError(mid, "connected to self",
                                             __func__, MERROR);
@@ -2611,7 +2610,7 @@ mapi_reconnect(Mapi mid)
 
                if (mid->username == NULL || mid->password == NULL) {
                        mapi_setError(mid, "username and password must be set",
-                                       __func__, MERROR);
+                                     __func__, MERROR);
                        close_connection(mid);
                        return mid->error;
                }
@@ -2622,7 +2621,7 @@ mapi_reconnect(Mapi mid)
                if (rest == NULL) {
                        /* protocol violation, not enough fields */
                        mapi_setError(mid, "Not enough fields in challenge 
string",
-                                       __func__, MERROR);
+                                     __func__, MERROR);
                        close_connection(mid);
                        return mid->error;
                }
@@ -2658,43 +2657,43 @@ mapi_reconnect(Mapi mid)
 #ifdef HAVE_RIPEMD160_UPDATE
                        if (strcmp(serverhash, "RIPEMD160") == 0) {
                                pwdhash = mcrypt_RIPEMD160Sum(mid->password,
-                                               strlen(mid->password));
+                                                             
strlen(mid->password));
                        } else
 #endif
 #ifdef HAVE_SHA512_UPDATE
                        if (strcmp(serverhash, "SHA512") == 0) {
                                pwdhash = mcrypt_SHA512Sum(mid->password,
-                                               strlen(mid->password));
+                                                          
strlen(mid->password));
                        } else
 #endif
 #ifdef HAVE_SHA384_UPDATE
                        if (strcmp(serverhash, "SHA384") == 0) {
                                pwdhash = mcrypt_SHA384Sum(mid->password,
-                                               strlen(mid->password));
+                                                          
strlen(mid->password));
                        } else
 #endif
 #ifdef HAVE_SHA256_UPDATE
                        if (strcmp(serverhash, "SHA256") == 0) {
                                pwdhash = mcrypt_SHA256Sum(mid->password,
-                                               strlen(mid->password));
+                                                          
strlen(mid->password));
                        } else
 #endif
 #ifdef HAVE_SHA224_UPDATE
                        if (strcmp(serverhash, "SHA224") == 0) {
                                pwdhash = mcrypt_SHA224Sum(mid->password,
-                                               strlen(mid->password));
+                                                          
strlen(mid->password));
                        } else
 #endif
 #ifdef HAVE_SHA1_UPDATE
                        if (strcmp(serverhash, "SHA1") == 0) {
                                pwdhash = mcrypt_SHA1Sum(mid->password,
-                                               strlen(mid->password));
+                                                        strlen(mid->password));
                        } else
 #endif
                        {
                                (void)pwdhash;
                                snprintf(buf, sizeof(buf), "server requires 
unknown hash '%.100s'",
-                                               serverhash);
+                                        serverhash);
                                close_connection(mid);
                                return mapi_setError(mid, buf, __func__, 
MERROR);
                        }
@@ -2702,7 +2701,7 @@ mapi_reconnect(Mapi mid)
 #if defined(HAVE_RIPEMD160_UPDATE) || defined(HAVE_SHA512_UPDATE) || 
defined(HAVE_SHA384_UPDATE) || defined(HAVE_SHA256_UPDATE) || 
defined(HAVE_SHA224_UPDATE) || defined(HAVE_SHA1_UPDATE)
                        if (pwdhash == NULL) {
                                snprintf(buf, sizeof(buf), "allocation failure 
or unknown hash '%.100s'",
-                                               serverhash);
+                                        serverhash);
                                close_connection(mid);
                                return mapi_setError(mid, buf, __func__, 
MERROR);
                        }
@@ -3196,7 +3195,7 @@ MapiMsg
 mapi_bind_numeric(MapiHdl hdl, int fnr, int scale, int prec, void *ptr)
 {
        if (mapi_bind_var(hdl, fnr, MAPI_NUMERIC, ptr))
-                return hdl->mid->error;
+               return hdl->mid->error;
 
        hdl->bindings[fnr].scale = scale;
        hdl->bindings[fnr].precision = prec;
@@ -3253,7 +3252,7 @@ MapiMsg
 mapi_param_numeric(MapiHdl hdl, int fnr, int scale, int prec, void *ptr)
 {
        if (mapi_param_type(hdl, fnr, MAPI_NUMERIC, MAPI_NUMERIC, ptr))
-                return hdl->mid->error;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to