Changeset: ee585663c892 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ee585663c892
Added Files:
        sql/test/Dependencies/Tests/view_table_udf.sql
        sql/test/Dependencies/Tests/view_table_udf.stable.err
        sql/test/Dependencies/Tests/view_table_udf.stable.out
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/eventparser.c
        common/options/monet_options.c
        gdk/gdk.h
        gdk/gdk_storage.c
        gdk/gdk_utils.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_exception.c
        monetdb5/mal/mal_exception.h
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_namespace.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_runtime.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/json.h
        monetdb5/modules/atoms/json.mal
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mdb.h
        monetdb5/modules/mal/mdb.mal
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/Tests/manifold2.stable.out.single
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/rel_bin.h
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/backends/monet5/wlr.c
        sql/server/rel_optimizer.c
        sql/server/rel_optimizer.h
        sql/server/rel_rel.c
        sql/server/rel_rel.h
        sql/server/rel_select.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_partition.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        
sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
        sql/test/BugTracker-2017/Tests/limit.Bug-6322.sql
        sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
        sql/test/Dependencies/Tests/All
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/Dependencies/Tests/Dependencies.stable.out.int128
        sql/test/Dependencies/Tests/dependency_loop.stable.out
        sql/test/Dependencies/Tests/dependency_loop.stable.out.int128
        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/merge-partitions/Tests/mergepart21.stable.err
        sql/test/mergetables/Tests/sqlsmith.Bug-6459.sql
        sql/test/mergetables/Tests/sqlsmith.Bug-6472.sql
        sql/test/mergetables/Tests/sqlsmith.Bug-6472.stable.out
        sql/test/subquery/Tests/subquery.sql
        sql/test/subquery/Tests/subquery.stable.err
        sql/test/subquery/Tests/subquery2.sql
        sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql
        sql/test/sys-schema/Tests/check_MaxStrLength_violations.stable.out
        tools/merovingian/ChangeLog.Nov2019
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/utils/properties.c
        tools/mserver/mserver5.1.in
Branch: cmake-fun
Log Message:

Merge with default


diffs (truncated from 5050 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
@@ -11275,6 +11275,7 @@ stdout of test 'MAL-signatures` in direc
 [ "mdb",       "getStackFrame",        "pattern mdb.getStackFrame() 
(X_0:bat[:str], X_1:bat[:str]) ",  "MDBgetStackFrame;",    "Collect variable 
binding of current (n-th) stack frame."       ]
 [ "mdb",       "getStackFrame",        "pattern mdb.getStackFrame(i:int) 
(X_0:bat[:str], X_1:bat[:str]) ",     "MDBgetStackFrameN;",   ""      ]
 [ "mdb",       "getStackTrace",        "pattern mdb.getStackTrace() 
(X_0:bat[:int], X_1:bat[:str]) ",  "MDBStkTrace;", ""      ]
+[ "mdb",       "getVMsize",    "pattern mdb.getVMsize():lng ", 
"MDBgetVMsize;",        "Retrieve the max VM size"      ]
 [ "mdb",       "inspect",      "pattern mdb.inspect(mod:str, fcn:str):void ",  
"MDBinspect;",  "Run the debugger on a specific function"       ]
 [ "mdb",       "list", "pattern mdb.list(M:str, F:str):void ", "MDBlist3;",    
"Dump the routine M.F on standard out." ]
 [ "mdb",       "list", "pattern mdb.list():void ",     "MDBlist;",     "Dump 
the current routine on standard out."     ]
@@ -11285,6 +11286,7 @@ stdout of test 'MAL-signatures` in direc
 [ "mdb",       "setDebug",     "pattern mdb.setDebug(flg:str):int ",   
"MDBsetDebugStr;",      "Set the kernel debugging bit-set and return its 
previous value.\nThe recognized options are: threads, memory, properties,\nio, 
transactions, modules, algorithms, estimates."  ]
 [ "mdb",       "setTrace",     "pattern mdb.setTrace(b:bit):void ",    
"MDBsetTrace;", "Turn on/off tracing of current routine"        ]
 [ "mdb",       "setTrace",     "pattern mdb.setTrace(b:str):void ",    
"MDBsetVarTrace;",      "Turn on/off tracing of a variable "    ]
+[ "mdb",       "setVMsize",    "pattern mdb.setVMsize(l:lng):lng ",    
"MDBsetVMsize;",        "Manipulate the VM max size in MBs"     ]
 [ "mdb",       "start",        "pattern mdb.start():void ",    "MDBstart;",    
"Start interactive debugger"    ]
 [ "mdb",       "start",        "pattern mdb.start(clientid:int):void ",        
"MDBstart;",    "Start interactive debugger on a client"        ]
 [ "mdb",       "start",        "pattern mdb.start(mod:str, fcn:str):void ",    
"MDBstartFactory;",     "Start interactive debugger on a running factory"       
]
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
@@ -15678,6 +15678,7 @@ stdout of test 'MAL-signatures` in direc
 [ "mdb",       "getStackFrame",        "pattern mdb.getStackFrame() 
(X_0:bat[:str], X_1:bat[:str]) ",  "MDBgetStackFrame;",    "Collect variable 
binding of current (n-th) stack frame."       ]
 [ "mdb",       "getStackFrame",        "pattern mdb.getStackFrame(i:int) 
(X_0:bat[:str], X_1:bat[:str]) ",     "MDBgetStackFrameN;",   ""      ]
 [ "mdb",       "getStackTrace",        "pattern mdb.getStackTrace() 
(X_0:bat[:int], X_1:bat[:str]) ",  "MDBStkTrace;", ""      ]
+[ "mdb",       "getVMsize",    "pattern mdb.getVMsize():lng ", 
"MDBgetVMsize;",        "Retrieve the max VM size"      ]
 [ "mdb",       "inspect",      "pattern mdb.inspect(mod:str, fcn:str):void ",  
"MDBinspect;",  "Run the debugger on a specific function"       ]
 [ "mdb",       "list", "pattern mdb.list(M:str, F:str):void ", "MDBlist3;",    
"Dump the routine M.F on standard out." ]
 [ "mdb",       "list", "pattern mdb.list():void ",     "MDBlist;",     "Dump 
the current routine on standard out."     ]
@@ -15688,6 +15689,7 @@ stdout of test 'MAL-signatures` in direc
 [ "mdb",       "setDebug",     "pattern mdb.setDebug(flg:str):int ",   
"MDBsetDebugStr;",      "Set the kernel debugging bit-set and return its 
previous value.\nThe recognized options are: threads, memory, properties,\nio, 
transactions, modules, algorithms, estimates."  ]
 [ "mdb",       "setTrace",     "pattern mdb.setTrace(b:bit):void ",    
"MDBsetTrace;", "Turn on/off tracing of current routine"        ]
 [ "mdb",       "setTrace",     "pattern mdb.setTrace(b:str):void ",    
"MDBsetVarTrace;",      "Turn on/off tracing of a variable "    ]
+[ "mdb",       "setVMsize",    "pattern mdb.setVMsize(l:lng):lng ",    
"MDBsetVMsize;",        "Manipulate the VM max size in MBs"     ]
 [ "mdb",       "start",        "pattern mdb.start():void ",    "MDBstart;",    
"Start interactive debugger"    ]
 [ "mdb",       "start",        "pattern mdb.start(clientid:int):void ",        
"MDBstart;",    "Start interactive debugger on a client"        ]
 [ "mdb",       "start",        "pattern mdb.start(mod:str, fcn:str):void ",    
"MDBstartFactory;",     "Start interactive debugger on a running factory"       
]
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
@@ -1463,6 +1463,7 @@ str MDBgetExceptionReason(str *ret, str 
 str MDBgetExceptionVariable(str *ret, str *msg);
 str MDBgetStackFrame(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
 str MDBgetStackFrameN(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
+str MDBgetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBinspect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBlist(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBlist3(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
@@ -1473,6 +1474,7 @@ str MDBsetCatch(Client cntxt, MalBlkPtr 
 str MDBsetDebug(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBsetDebugStr(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBsetTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+str MDBsetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBsetVarTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBstart(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBstartFactory(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
@@ -2134,7 +2136,6 @@ str drop_triggerRef;
 str drop_typeRef;
 str drop_userRef;
 str drop_viewRef;
-void dumpExceptionsToStream(stream *out, str msg);
 void dumpModules(stream *out);
 str emptybindRef;
 str emptybindidxRef;
@@ -2573,13 +2574,11 @@ void setprofilerlimit(int limit);
 str shortStmtRendering(MalBlkPtr mb, MalStkPtr stl, InstrPtr p);
 void showAllScenarios(stream *f);
 void showCurrentScenario(void);
-void showException(stream *out, enum malexception, const char *, _In_z_ 
_Printf_format_string_ const char *, ...) __attribute__((__format__(__printf__, 
4, 5)));
 void showMalBlkHistory(stream *out, MalBlkPtr mb);
 void showOptimizerHistory(void);
 void showOptimizerStep(str fnme, int i, int flg);
 void showScenario(stream *f, Scenario s);
 void showScenarioByName(stream *f, str s);
-void showScriptException(stream *out, MalBlkPtr, int, enum malexception, 
_In_z_ _Printf_format_string_ const char *, ...) 
__attribute__((__format__(__printf__, 5, 6)));
 str shutdownFactory(Client cntxt, MalBlkPtr mb);
 str shutdownFactoryByName(Client cntxt, Module m, str nme);
 str singleRef;
diff --git a/clients/mapiclient/eventparser.c b/clients/mapiclient/eventparser.c
--- a/clients/mapiclient/eventparser.c
+++ b/clients/mapiclient/eventparser.c
@@ -205,12 +205,13 @@ keyvalueparser(char *txt, EventRecord *e
                *c = 0;
        } else val =c;
 
-       if( strstr(key,"clk")){
+       if( strstr(key,"ctime")){
                ev->usec = atol(val);
                return 0;
        }
-       if( strstr(key,"ctime")){
+       if( strstr(key,"clk")){
                time_t sec;
+               uint64_t microsec;
                struct tm curr_time;
 
                c = strchr(val,'.');
@@ -220,16 +221,17 @@ keyvalueparser(char *txt, EventRecord *e
                }
 
                sec = atol(val);
+               microsec = sec % 1000000;
+               sec /= 1000000;
 #ifdef NATIVE_WIN32
                (void)localtime_s(&curr_time, &sec);
 #else
                (void)localtime_r(&sec, &curr_time);
 #endif
                ev->time = malloc(DATETIME_CHAR_LENGTH*sizeof(char));
-               snprintf(ev->time, DATETIME_CHAR_LENGTH, "%d/%02d/%02d 
%02d:%02d:%02d.%s",
+               snprintf(ev->time, DATETIME_CHAR_LENGTH, "%d/%02d/%02d 
%02d:%02d:%02d.%"PRIu64,
                                 curr_time.tm_year + 1900, curr_time.tm_mon, 
curr_time.tm_mday,
-                                curr_time.tm_hour, curr_time.tm_min, 
curr_time.tm_sec,
-                                c);
+                        curr_time.tm_hour, curr_time.tm_min, curr_time.tm_sec, 
microsec);
                ev->clkticks = sec * 1000000;
                if (c != NULL) {
                        int64_t usec;
diff --git a/common/options/monet_options.c b/common/options/monet_options.c
--- a/common/options/monet_options.c
+++ b/common/options/monet_options.c
@@ -199,7 +199,6 @@ mo_system_config(opt **Set, int setlen)
        return setlen;
 }
 
-
 int
 mo_builtin_settings(opt **Set)
 {
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1415,7 +1415,7 @@ gdk_export void OIDXdestroy(BAT *b);
  *
  */
 gdk_export gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
-gdk_export gdk_return BATprint(BAT *b);
+gdk_export gdk_return BATprint(stream *s, BAT *b);
 
 /*
  * @- BAT clustering
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -1014,7 +1014,7 @@ BATprintcolumns(stream *s, int argc, BAT
 }
 
 gdk_return
-BATprint(BAT *b)
+BATprint(stream *fdout, BAT *b)
 {
        BAT *argv[2];
        gdk_return ret = GDK_FAIL;
@@ -1024,7 +1024,7 @@ BATprint(BAT *b)
        if (argv[0] && argv[1]) {
                ret = BATroles(argv[0], "h");
                if (ret == GDK_SUCCEED)
-                       ret = BATprintcolumns(GDKstdout, 2, argv);
+                       ret = BATprintcolumns(fdout, 2, argv);
        }
        if (argv[0])
                BBPunfix(argv[0]->batCacheid);
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -1041,8 +1041,7 @@ doGDKaddbuf(const char *prefix, const ch
                }
                *dst = '\0';
        } else {
-               mnstr_printf(GDKout, "%s%.*s%s", prefix,
-                            (int) messagelen, message, suffix);
+               fprintf(stderr, "%s%.*s%s", prefix, (int) messagelen, message, 
suffix);
        }
        fprintf(stderr, "#%s:%s%.*s%s",
                MT_thread_getname(),
@@ -1068,6 +1067,9 @@ GDKaddbuf(const char *message)
 
        if (message == NULL || *message == '\0')        /* empty message, 
nothing to do */
                return;
+       /* filter out duplicate messages */
+       if (GDKerrbuf && strstr(GDKerrbuf , message))
+               return;
        p = message;
        strcpy(prefix, "!");    /* default prefix */
        while (p && *p) {
@@ -1131,8 +1133,10 @@ GDKerror(const char *format, ...)
                strcpy(message, GDKERROR);
        }
        va_start(ap, format);
-       if (vsnprintf(message + len, sizeof(message) - (len + 2), format, ap) < 
0)
+       if (vsnprintf(message + len, sizeof(message) - (len + 2), format, ap) < 
0){
+               fprintf(stderr,GDKERROR "an error occurred within GDKerror.\n");
                strcpy(message, GDKERROR "an error occurred within 
GDKerror.\n");
+       }
        va_end(ap);
 
        GDKaddbuf(message);
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -76,7 +76,7 @@ int mal_init(void){
 #ifndef NDEBUG
                mdbExit();
 #endif
-               dumpExceptionsToStream(NULL, err);
+               fprintf(stderr, "%s", err);
                freeException(err);
                return -1;
        }
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -69,7 +69,7 @@ MCinit(void)
        if (maxclients <= 0) {
                maxclients = 64;
                if (GDKsetenv("max_clients", "64") != GDK_SUCCEED) {
-                       fprintf(stderr,"#MCinit: GDKsetenv failed");
+                       fprintf(stderr, "!MCinit: GDKsetenv failed");
                        return false;
                }
        }
@@ -77,7 +77,7 @@ MCinit(void)
        MAL_MAXCLIENTS = /* client connections */ maxclients;
        mal_clients = GDKzalloc(sizeof(ClientRec) * MAL_MAXCLIENTS);
        if( mal_clients == NULL){
-               fprintf(stderr,"#MCinit:" MAL_MALLOC_FAIL);
+               fprintf(stderr,"!MCinit:" MAL_MALLOC_FAIL);
                return false;
        }
        return true;
@@ -223,7 +223,7 @@ MCinitClientRecord(Client c, oid user, b
                MT_lock_set(&mal_contextLock);
                c->mode = FREECLIENT;
                MT_lock_unset(&mal_contextLock);
-               showException(GDKout, MAL, "initClientRecord", MAL_MALLOC_FAIL);
+               fprintf(stderr,"!initClientRecord:" MAL_MALLOC_FAIL);
                return NULL;
        }
        c->yycur = 0;
@@ -257,7 +257,7 @@ MCinitClientRecord(Client c, oid user, b
                        c->mode = FREECLIENT;
                        MT_lock_unset(&mal_contextLock);
                }
-               showException(GDKout, MAL, "initClientRecord", MAL_MALLOC_FAIL);
+               fprintf(stderr, "!initClientRecord:" MAL_MALLOC_FAIL);
                return NULL;
        }
        c->promptlength = strlen(prompt);
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c
--- a/monetdb5/mal/mal_dataflow.c
+++ b/monetdb5/mal/mal_dataflow.c
@@ -415,7 +415,7 @@ DFLOWworker(void *T)
                        void *null = NULL;
                        /* only collect one error (from one thread, needed for 
stable testing) */
                        if (!ATOMIC_PTR_CAS(&flow->error, &null, error))
-                               GDKfree(error);
+                               freeException(error);
                        /* after an error we skip the rest of the block */
                        q_enqueue(flow->done, fe);
                        continue;
@@ -693,7 +693,7 @@ static void showFlowEvent(DataFlow flow,
        for (i = 0; i < flow->stop - flow->start; i++)
                if (fe[i].state != DFLOWwrapup && fe[i].pc >= 0) {
                        fprintf(stderr, "#missed pc %d status %d %d  blocks 
%d", fe[i].state, i, fe[i].pc, fe[i].blocks);
-                       printInstruction(GDKstdout, fe[i].flow->mb, 0, 
getInstrPtr(fe[i].flow->mb, fe[i].pc), LIST_MAL_MAPI);
+                       fprintInstruction(stderr, fe[i].flow->mb, 0, 
getInstrPtr(fe[i].flow->mb, fe[i].pc), LIST_MAL_MAPI);
                }
 }
 */
diff --git a/monetdb5/mal/mal_exception.c b/monetdb5/mal/mal_exception.c
--- a/monetdb5/mal/mal_exception.c
+++ b/monetdb5/mal/mal_exception.c
@@ -56,15 +56,20 @@ static str createExceptionInternal(enum 
 static str
 createExceptionInternal(enum malexception type, const char *fcn, const char 
*format, va_list ap)
 {
-       char *message;
+       char *message, local[GDKMAXERRLEN];
        int len;
        // if there is an error we allow memory allocation once again
 #ifndef NDEBUG
        GDKsetmallocsuccesscount(-1);
 #endif
        message = GDKmalloc(GDKMAXERRLEN);
-       if (message == NULL)
+       if (message == NULL){
+               /* Leave a message behind in the logging system */
+               len = snprintf(local, GDKMAXERRLEN, "%s:%s:", 
exceptionNames[type], fcn);
+               len = vsnprintf(local + len, GDKMAXERRLEN, format, ap);
+               fprintf(stderr, "%s", local);
                return M5OutOfMemory;   /* last resort */
+       }
        len = snprintf(message, GDKMAXERRLEN, "%s:%s:", exceptionNames[type], 
fcn);
        if (len >= GDKMAXERRLEN)        /* shouldn't happen */
                return message;
@@ -141,59 +146,6 @@ freeException(str msg)
                GDKfree(msg);
 }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to