Changeset: e393d33849c0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e393d33849c0
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_exception.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mdb.h
        monetdb5/modules/mal/mdb.mal
        sql/backends/monet5/sql_gencode.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
Branch: grouping-analytics
Log Message:

Merge with default


diffs (215 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
@@ -1464,6 +1464,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);
@@ -1474,6 +1475,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);
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;
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;
diff --git a/monetdb5/modules/mal/mdb.c b/monetdb5/modules/mal/mdb.c
--- a/monetdb5/modules/mal/mdb.c
+++ b/monetdb5/modules/mal/mdb.c
@@ -131,6 +131,31 @@ MDBsetTrace(Client cntxt, MalBlkPtr mb, 
 }
 
 str
+MDBgetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
+{
+       lng *ret = getArgReference_lng(stk, p, 0);
+
+       (void) cntxt;
+       (void) mb;              /* still unused */
+       *ret = GDK_vm_maxsize / 1024/1024;
+       return MAL_SUCCEED;
+}
+
+/* Set the max VM in MBs */
+str
+MDBsetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
+{
+       lng *ret = getArgReference_lng(stk, p, 0);
+
+       (void) cntxt;
+       (void) mb;              /* still unused */
+       *ret = GDK_vm_maxsize;
+       if( *getArgReference_lng(stk, p, 1) > 1024 )
+               GDK_vm_maxsize = *getArgReference_lng(stk, p, 1) * 1024 * 1024;
+       return MAL_SUCCEED;
+}
+
+str
 MDBsetVarTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
        str v;
diff --git a/monetdb5/modules/mal/mdb.h b/monetdb5/modules/mal/mdb.h
--- a/monetdb5/modules/mal/mdb.h
+++ b/monetdb5/modules/mal/mdb.h
@@ -28,6 +28,8 @@ mal_export str MDBstartFactory(Client cn
 mal_export str MDBstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 mal_export str MDBinspect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
 mal_export str CMDmodules(bat *bid);
+mal_export str MDBsetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+mal_export str MDBgetVMsize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 mal_export str MDBsetTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
 mal_export str MDBsetVarTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 mal_export str MDBgetDebugFlags(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
diff --git a/monetdb5/modules/mal/mdb.mal b/monetdb5/modules/mal/mdb.mal
--- a/monetdb5/modules/mal/mdb.mal
+++ b/monetdb5/modules/mal/mdb.mal
@@ -28,6 +28,14 @@ command modules():bat[:str]
 address CMDmodules
 comment "List available modules";
 
+pattern getVMsize():lng
+address MDBgetVMsize
+comment "Retrieve the max VM size";
+
+pattern setVMsize(l:lng):lng
+address MDBsetVMsize
+comment "Manipulate the VM max size in MBs";
+
 pattern setTrace(b:bit):void
 address MDBsetTrace
 comment "Turn on/off tracing of current routine";
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1054,7 +1054,7 @@ backend_create_sql_func(backend *be, sql
                f->sql++;
        r = rel_parse(m, f->s, f->query, m_instantiate);
        if (r)
-               r = sql_processrelation(m, r, 0);
+               r = sql_processrelation(m, r, 1);
        if (r)
                r = rel_distribute(m, r);
        if (r)
diff --git 
a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
 
b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
--- 
a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
+++ 
b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
@@ -44,7 +44,7 @@ stdout of test 'crash_correlated_subquer
 [ "sys",       2000,   "querylog_catalog",     true,   8       ]
 [ "sys",       2000,   "querylog_calls",       true,   9       ]
 [ "sys",       2000,   "querylog_history",     true,   16      ]
-[ "sys",       2000,   "tracelog",     true,   13      ]
+[ "sys",       2000,   "tracelog",     true,   2       ]
 [ "sys",       2000,   "ids",  true,   7       ]
 [ "sys",       2000,   "dependencies_vw",      true,   8       ]
 [ "sys",       2000,   "dependency_owners_on_schemas", true,   4       ]
@@ -97,7 +97,7 @@ stdout of test 'crash_correlated_subquer
 [ "sys",       2000,   "querylog_catalog",     true,   8       ]
 [ "sys",       2000,   "querylog_calls",       true,   9       ]
 [ "sys",       2000,   "querylog_history",     true,   16      ]
-[ "sys",       2000,   "tracelog",     true,   13      ]
+[ "sys",       2000,   "tracelog",     true,   2       ]
 [ "sys",       2000,   "ids",  true,   7       ]
 [ "sys",       2000,   "dependencies_vw",      true,   8       ]
 [ "sys",       2000,   "dependency_owners_on_schemas", true,   4       ]
diff --git a/sql/test/BugTracker-2017/Tests/limit.Bug-6322.sql 
b/sql/test/BugTracker-2017/Tests/limit.Bug-6322.sql
--- a/sql/test/BugTracker-2017/Tests/limit.Bug-6322.sql
+++ b/sql/test/BugTracker-2017/Tests/limit.Bug-6322.sql
@@ -9,5 +9,5 @@ from
       where true
       limit 14) as subq_0
 where (true)
-  or ((select pc from sys.tracelog)
+  or ((select stmt from sys.tracelog)
        is not NULL);
diff --git a/sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql 
b/sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
--- a/sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
+++ b/sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
@@ -9,7 +9,7 @@ from
       where true
       limit 134) as subq_0
 where (true)
-  or ((select pc from sys.tracelog)
+  or ((select stmt from sys.tracelog)
        is not NULL);
 
 select
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to