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