Changeset: e5de61209f5c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5de61209f5c
Branch: default
Log Message:

Merge nospare into default.


diffs (truncated from 24084 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
@@ -9359,12 +9359,12 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:str, X_7:int, X_8:bat[:str], 
X_9:bat[:str], X_10:bat[:str], X_11:bat[:int], X_12:bat[:int], X_13:any...):int 
",       "mvc_export_row_wrap;", ""      ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:str, X_7:int, X_8:bat[:str], 
X_9:bat[:str], X_10:bat[:str], X_11:bat[:int], X_12:bat[:int], 
X_13:bat[:any]...):int ", "mvc_export_table_wrap;",       ""      ]
 [ "sql",       "first_value",  "pattern sql.first_value(X_1:any_1, X_2:bit, 
X_3:bit, X_4:int, X_5:oid, X_6:oid):any_1 ",       "SQLfirst_value;",      ""   
   ]
-[ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        ""      ]
+[ "sql",       "flush_log",    "unsafe pattern sql.flush_log():void ", 
"SQLflush_log;",        ""      ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(X_1:int, X_2:str, 
X_3:str):any_1 ",    "getVariable;", ""      ]
 [ "sql",       "getVersion",   "command sql.getVersion(X_1:int):lng ", 
"mvc_getVersion;",      ""      ]
 [ "sql",       "get_value",    "pattern sql.get_value(X_1:str, X_2:str):lng ", 
"mvc_get_value;",       ""      ]
 [ "sql",       "grow", "pattern sql.grow(X_1:bat[:oid], X_2:any_1):int ",      
"mvc_grow_wrap;",       ""      ]
-[ "sql",       "hot_snapshot", "unsafe command sql.hot_snapshot(X_1:str):void 
",       "SQLhot_snapshot;",     ""      ]
+[ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str):void 
",       "SQLhot_snapshot;",     ""      ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str, 
X_2:bit):void ",      "SQLhot_snapshot_wrap;",        ""      ]
 [ "sql",       "importColumn", "pattern sql.importColumn(X_2:str, X_3:bit, 
X_4:str, X_5:int, X_6:oid) (X_0:bat[:any], X_1:oid) ",      
"mvc_bin_import_column_wrap;",  ""      ]
 [ "sql",       "importTable",  "unsafe pattern sql.importTable(X_1:str, 
X_2:str, X_3:int, X_4:bit, X_5:str...):bat[:any]... ", 
"mvc_bin_import_table_wrap;",   ""      ]
@@ -9418,7 +9418,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:bat[:str], 
X_2:bat[:str], X_3:bat[:str], X_4:bat[:int], X_5:bat[:int], X_6:any...):int ",  
   "mvc_row_result_wrap;", ""      ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:str, X_2:str, 
X_3:str, X_4:int, X_5:int, X_6:int, X_7:any):int ",     
"mvc_scalar_value_wrap;",       ""      ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:bat[:str], 
X_2:bat[:str], X_3:bat[:str], X_4:bat[:int], X_5:bat[:int], 
X_6:bat[:any]...):int ",       "mvc_table_result_wrap;",       ""      ]
-[ "sql",       "resume_log_flushing",  "unsafe command 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      ""      
]
+[ "sql",       "resume_log_flushing",  "unsafe pattern 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      ""      
]
 [ "sql",       "reuse",        "unsafe pattern sql.reuse(X_1:str, 
X_2:str):void ",     "SQLreuse;",    ""      ]
 [ "sql",       "row_number",   "pattern sql.row_number(X_1:any_1, X_2:bit, 
X_3:bit):int ",     "SQLrow_number;",       ""      ]
 [ "sql",       "rt_credentials",       "pattern sql.rt_credentials(X_3:str) 
(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ",   "sql_rt_credentials_wrap;",  
   ""      ]
@@ -9461,7 +9461,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sum",  "pattern sql.sum(X_1:int, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):lng ",   "SQLsum;",      ""      ]
 [ "sql",       "sum",  "pattern sql.sum(X_1:lng, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):lng ",   "SQLsum;",      ""      ]
 [ "sql",       "sum",  "pattern sql.sum(X_1:sht, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):lng ",   "SQLsum;",      ""      ]
-[ "sql",       "suspend_log_flushing", "unsafe command 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     ""      
]
+[ "sql",       "suspend_log_flushing", "unsafe pattern 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     ""      
]
 [ "sql",       "tid",  "pattern sql.tid(X_1:int, X_2:str, X_3:str):bat[:oid] 
",        "SQLtid;",      ""      ]
 [ "sql",       "tid",  "pattern sql.tid(X_1:int, X_2:str, X_3:str, X_4:int, 
X_5:int):bat[:oid] ",      "SQLtid;",      ""      ]
 [ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     ""      ]
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
@@ -12665,12 +12665,12 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:str, X_7:int, X_8:bat[:str], 
X_9:bat[:str], X_10:bat[:str], X_11:bat[:int], X_12:bat[:int], X_13:any...):int 
",       "mvc_export_row_wrap;", ""      ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:str, X_7:int, X_8:bat[:str], 
X_9:bat[:str], X_10:bat[:str], X_11:bat[:int], X_12:bat[:int], 
X_13:bat[:any]...):int ", "mvc_export_table_wrap;",       ""      ]
 [ "sql",       "first_value",  "pattern sql.first_value(X_1:any_1, X_2:bit, 
X_3:bit, X_4:int, X_5:oid, X_6:oid):any_1 ",       "SQLfirst_value;",      ""   
   ]
-[ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        ""      ]
+[ "sql",       "flush_log",    "unsafe pattern sql.flush_log():void ", 
"SQLflush_log;",        ""      ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(X_1:int, X_2:str, 
X_3:str):any_1 ",    "getVariable;", ""      ]
 [ "sql",       "getVersion",   "command sql.getVersion(X_1:int):lng ", 
"mvc_getVersion;",      ""      ]
 [ "sql",       "get_value",    "pattern sql.get_value(X_1:str, X_2:str):lng ", 
"mvc_get_value;",       ""      ]
 [ "sql",       "grow", "pattern sql.grow(X_1:bat[:oid], X_2:any_1):int ",      
"mvc_grow_wrap;",       ""      ]
-[ "sql",       "hot_snapshot", "unsafe command sql.hot_snapshot(X_1:str):void 
",       "SQLhot_snapshot;",     ""      ]
+[ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str):void 
",       "SQLhot_snapshot;",     ""      ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str, 
X_2:bit):void ",      "SQLhot_snapshot_wrap;",        ""      ]
 [ "sql",       "importColumn", "pattern sql.importColumn(X_2:str, X_3:bit, 
X_4:str, X_5:int, X_6:oid) (X_0:bat[:any], X_1:oid) ",      
"mvc_bin_import_column_wrap;",  ""      ]
 [ "sql",       "importTable",  "unsafe pattern sql.importTable(X_1:str, 
X_2:str, X_3:int, X_4:bit, X_5:str...):bat[:any]... ", 
"mvc_bin_import_table_wrap;",   ""      ]
@@ -12729,7 +12729,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:bat[:str], 
X_2:bat[:str], X_3:bat[:str], X_4:bat[:int], X_5:bat[:int], X_6:any...):int ",  
   "mvc_row_result_wrap;", ""      ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:str, X_2:str, 
X_3:str, X_4:int, X_5:int, X_6:int, X_7:any):int ",     
"mvc_scalar_value_wrap;",       ""      ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(X_1:bat[:str], 
X_2:bat[:str], X_3:bat[:str], X_4:bat[:int], X_5:bat[:int], 
X_6:bat[:any]...):int ",       "mvc_table_result_wrap;",       ""      ]
-[ "sql",       "resume_log_flushing",  "unsafe command 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      ""      
]
+[ "sql",       "resume_log_flushing",  "unsafe pattern 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      ""      
]
 [ "sql",       "reuse",        "unsafe pattern sql.reuse(X_1:str, 
X_2:str):void ",     "SQLreuse;",    ""      ]
 [ "sql",       "row_number",   "pattern sql.row_number(X_1:any_1, X_2:bit, 
X_3:bit):int ",     "SQLrow_number;",       ""      ]
 [ "sql",       "rt_credentials",       "pattern sql.rt_credentials(X_3:str) 
(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ",   "sql_rt_credentials_wrap;",  
   ""      ]
@@ -12779,7 +12779,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sum",  "pattern sql.sum(X_1:lng, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):lng ",   "SQLsum;",      ""      ]
 [ "sql",       "sum",  "pattern sql.sum(X_1:sht, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):hge ",   "SQLsum;",      ""      ]
 [ "sql",       "sum",  "pattern sql.sum(X_1:sht, X_2:bit, X_3:bit, X_4:int, 
X_5:oid, X_6:oid):lng ",   "SQLsum;",      ""      ]
-[ "sql",       "suspend_log_flushing", "unsafe command 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     ""      
]
+[ "sql",       "suspend_log_flushing", "unsafe pattern 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     ""      
]
 [ "sql",       "tid",  "pattern sql.tid(X_1:int, X_2:str, X_3:str):bat[:oid] 
",        "SQLtid;",      ""      ]
 [ "sql",       "tid",  "pattern sql.tid(X_1:int, X_2:str, X_3:str, X_4:int, 
X_5:int):bat[:oid] ",      "SQLtid;",      ""      ]
 [ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     ""      ]
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
@@ -525,7 +525,7 @@ gdk_return log_tstart(logger *lg);
 gdk_return logger_add_bat(logger *lg, BAT *b, const char *name, char tpe, oid 
id) __attribute__((__warn_unused_result__));
 lng logger_changes(logger *lg);
 gdk_return logger_cleanup(logger *lg);
-logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp);
+logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void 
*funcdata);
 gdk_return logger_del_bat(logger *lg, log_bid bid) 
__attribute__((__warn_unused_result__));
 void logger_destroy(logger *lg);
 log_bid logger_find_bat(logger *lg, const char *name, char tpe, oid id);
diff --git a/common/utils/matomic.h b/common/utils/matomic.h
--- a/common/utils/matomic.h
+++ b/common/utils/matomic.h
@@ -136,10 +136,11 @@ typedef volatile atomic_flag ATOMIC_FLAG
  * documentation.
  */
 
+typedef __declspec(align(8)) volatile int64_t ATOMIC_TYPE;
+typedef int64_t ATOMIC_BASE_TYPE;
+
 #if SIZEOF_SIZE_T == 8
 
-typedef volatile int64_t ATOMIC_TYPE;
-typedef int64_t ATOMIC_BASE_TYPE;
 #define ATOMIC_VAR_INIT(val)   (val)
 #define ATOMIC_INIT(var, val)  (*(var) = (val))
 #define ATOMIC_DESTROY(var)    ((void) 0)
@@ -168,48 +169,30 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE
 #define ATOMIC_INC(var)                _InterlockedIncrement64(var)
 #define ATOMIC_DEC(var)                _InterlockedDecrement64(var)
 
-#pragma intrinsic(_InterlockedExchange64)
-#pragma intrinsic(_InterlockedExchangeAdd64)
-#pragma intrinsic(_InterlockedIncrement64)
-#pragma intrinsic(_InterlockedDecrement64)
-#pragma intrinsic(_InterlockedCompareExchange64)
-
 #else
 
-typedef volatile int ATOMIC_TYPE;
-typedef int ATOMIC_BASE_TYPE;
 #define ATOMIC_VAR_INIT(val)   (val)
 #define ATOMIC_INIT(var, val)  (*(var) = (val))
 #define ATOMIC_DESTROY(var)    ((void) 0)
 
-#ifdef __INTEL_COMPILER
-#define ATOMIC_GET(var)                _InterlockedExchangeAdd(var, 0)
-#else
-#define ATOMIC_GET(var)                (*(var))
-/* should we use _InterlockedExchangeAdd(var, 0) instead? */
-#endif
-#define ATOMIC_SET(var, val)   _InterlockedExchange(var, (ATOMIC_BASE_TYPE) 
(val))
-#define ATOMIC_XCG(var, val)   _InterlockedExchange(var, (ATOMIC_BASE_TYPE) 
(val))
+#define ATOMIC_GET(var)                        
_InlineInterlockedExchangeAdd64(var, 0)
+#define ATOMIC_SET(var, val)   _InlineInterlockedExchange64(var, 
(ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_XCG(var, val)   _InlineInterlockedExchange64(var, 
(ATOMIC_BASE_TYPE) (val))
 static inline bool
 ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE_TYPE *exp, ATOMIC_BASE_TYPE des)
 {
        ATOMIC_BASE_TYPE old;
-       old = _InterlockedCompareExchange(var, des, *exp);
+       old = _InterlockedCompareExchange64(var, des, *exp);
        if (old == *exp)
                return true;
        *exp = old;
        return false;
 }
 #define ATOMIC_CAS(var, exp, des)      ATOMIC_CAS(var, exp, (ATOMIC_BASE_TYPE) 
(des))
-#define ATOMIC_ADD(var, val)   _InterlockedExchangeAdd(var, (ATOMIC_BASE_TYPE) 
(val))
-#define ATOMIC_SUB(var, val)   _InterlockedExchangeAdd(var, 
-(ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_INC(var)                _InterlockedIncrement(var)
-#define ATOMIC_DEC(var)                _InterlockedDecrement(var)
-
-#pragma intrinsic(_InterlockedExchange)
-#pragma intrinsic(_InterlockedExchangeAdd)
-#pragma intrinsic(_InterlockedIncrement)
-#pragma intrinsic(_InterlockedDecrement)
+#define ATOMIC_ADD(var, val)   _InlineInterlockedExchangeAdd64(var, 
(ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_SUB(var, val)   _InlineInterlockedExchangeAdd64(var, 
-(ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_INC(var)                _InlineInterlockedIncrement64(var)
+#define ATOMIC_DEC(var)                _InlineInterlockedDecrement64(var)
 
 #endif
 
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1430,7 +1430,7 @@ check_version(logger *lg, FILE *fp)
        }
        if (version != lg->version) {
                if (lg->prefuncp == NULL ||
-                   (*lg->prefuncp)(version, lg->version) != GDK_SUCCEED) {
+                   (*lg->prefuncp)(lg->funcdata, version, lg->version) != 
GDK_SUCCEED) {
                        GDKerror("Incompatible database version %06d, "
                                 "this server supports version %06d.\n%s",
                                 version, lg->version,
@@ -2296,7 +2296,7 @@ logger_load(int debug, const char *fn, c
                        lg->convert_date = false;
                }
 #endif
-               if (lg->postfuncp && (*lg->postfuncp)(lg) != GDK_SUCCEED)
+               if (lg->postfuncp && (*lg->postfuncp)(lg->funcdata, lg) != 
GDK_SUCCEED)
                        goto error;
 
                /* done reading the log, revert to "normal" behavior */
@@ -2331,7 +2331,7 @@ logger_load(int debug, const char *fn, c
 /* Initialize a new logger
  * It will load any data in the logdir and persist it in the BATs*/
 static logger *
-logger_new(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp)
+logger_new(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata)
 {
        int len;
        logger *lg;
@@ -2386,6 +2386,7 @@ logger_new(int debug, const char *fn, co
 
        lg->prefuncp = prefuncp;
        lg->postfuncp = postfuncp;
+       lg->funcdata = funcdata;
        lg->log = NULL;
        lg->end = 0;
        lg->catalog_bid = NULL;
@@ -2414,10 +2415,10 @@ logger_restart(logger *lg)
 
 /* Create a new logger */
 logger *
-logger_create(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp)
+logger_create(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata)
 {
        logger *lg;
-       lg = logger_new(debug, fn, logdir, version, prefuncp, postfuncp);
+       lg = logger_new(debug, fn, logdir, version, prefuncp, postfuncp, 
funcdata);
        if (lg == NULL)
                return NULL;
        if (lg->debug & 1) {
diff --git a/gdk/gdk_logger.h b/gdk/gdk_logger.h
--- a/gdk/gdk_logger.h
+++ b/gdk/gdk_logger.h
@@ -11,8 +11,8 @@
 
 #define LOGFILE "log"
 
-typedef gdk_return (*preversionfix_fptr)(int oldversion, int newversion);
-typedef gdk_return (*postversionfix_fptr)(void *lg);
+typedef gdk_return (*preversionfix_fptr)(void *data, int oldversion, int 
newversion);
+typedef gdk_return (*postversionfix_fptr)(void *data, void *lg);
 
 typedef struct logger logger;
 
@@ -38,7 +38,7 @@ typedef int log_bid;
 #define LOG_COL 2
 #define LOG_IDX 3
 
-gdk_export logger *logger_create(int debug, const char *fn, const char 
*logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr 
postfuncp);
+gdk_export logger *logger_create(int debug, const char *fn, const char 
*logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr 
postfuncp, void *funcdata);
 gdk_export void logger_destroy(logger *lg);
 gdk_export gdk_return logger_flush(logger *lg, lng save_id);
 gdk_export gdk_return logger_cleanup(logger *lg);
diff --git a/gdk/gdk_logger_internals.h b/gdk/gdk_logger_internals.h
--- a/gdk/gdk_logger_internals.h
+++ b/gdk/gdk_logger_internals.h
@@ -26,6 +26,7 @@ struct logger {
        char *local_dir; /* the directory in which the log is written */
        preversionfix_fptr prefuncp;
        postversionfix_fptr postfuncp;
+       void *funcdata;
        stream *log;
        lng end;                /* end of pre-allocated blocks for faster 
f(data)sync */
        /* Store log_bids (int) to circumvent trouble with reference counting */
diff --git a/monetdb5/optimizer/opt_inline.c b/monetdb5/optimizer/opt_inline.c
--- a/monetdb5/optimizer/opt_inline.c
+++ b/monetdb5/optimizer/opt_inline.c
@@ -29,9 +29,10 @@ static bool OPTinlineMultiplex(Client cn
        Symbol s;
        str mod,fcn;
 
-       mod = VALget(&getVar(mb, getArg(p, 1))->value);
-       fcn = VALget(&getVar(mb, getArg(p, 2))->value);
-       if( (s= findSymbol(cntxt->usermodule, mod,fcn)) ==0 )
+       mod = VALget(&getVar(mb, getArg(p, p->retc+0))->value);
+       fcn = VALget(&getVar(mb, getArg(p, p->retc+1))->value);
+       //if( (s= findSymbol(cntxt->usermodule, mod,fcn)) ==0 )
+       if( (s= findSymbolInModule(getModule(putName(mod)), putName(fcn))) ==0 )
                return false;
        if (s->def == mb)                       /* avoid infinite recursion */
                return false;
@@ -43,7 +44,9 @@ static bool OPTinlineMultiplex(Client cn
         * This code should be protected against overflow due to recursive 
calls.
         * In general, this is a hard problem. For now, we just expand.
         */
+       MT_lock_set(&mal_contextLock);
        (void) OPTinlineImplementation(cntxt, s->def, NULL, p);
+       MT_lock_unset(&mal_contextLock);
        return s->def->inlineProp;
 }
 
diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c
--- a/monetdb5/optimizer/opt_remap.c
+++ b/monetdb5/optimizer/opt_remap.c
@@ -115,13 +115,13 @@ OPTmultiplexInline(Client cntxt, MalBlkP
        int i,j,k,m, actions=0;
        int refbat=0, retc = p->retc;
        bit *upgrade;
-       Symbol s;
        str msg;
 
 
-       s= findSymbol(cntxt->usermodule,
-                       VALget(&getVar(mb, getArg(p, retc+0))->value),
-                       VALget(&getVar(mb, getArg(p, retc+1))->value));
+       str mod = VALget(&getVar(mb, getArg(p, retc+0))->value);
+       str fcn = VALget(&getVar(mb, getArg(p, retc+1))->value);
+       //Symbol s = findSymbol(cntxt->usermodule, mod,fcn);
+       Symbol s = findSymbolInModule(getModule(putName(mod)), putName(fcn));
 
        if( s== NULL || !isSideEffectFree(s->def) ||
                getInstrPtr(s->def,0)->retc != p->retc ) {
@@ -396,9 +396,10 @@ OPTremapImplementation(Client cntxt, Mal
                         * such as the calculator functions. It is particularly
                         * geared at handling the PSM code.
                         */
-                       str mod = VALget(&getVar(mb, getArg(p, 1))->value);
-                       str fcn = VALget(&getVar(mb, getArg(p, 2))->value);
-                       Symbol s = findSymbol(cntxt->usermodule, mod,fcn);
+                       str mod = VALget(&getVar(mb, getArg(p, 
p->retc+0))->value);
+                       str fcn = VALget(&getVar(mb, getArg(p, 
p->retc+1))->value);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to