Changeset: 5a3529cad91b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5a3529cad91b
Added Files:
        sql/test/BugTracker-2016/Tests/querylog.stable.err
        sql/test/BugTracker-2016/Tests/querylog.stable.out
Modified Files:
        monetdb5/mal/mal_listing.c
        sql/test/BugTracker-2016/Tests/All
Branch: default
Log Message:

Test for query logging


diffs (264 lines):

diff --git a/monetdb5/mal/mal_listing.c b/monetdb5/mal/mal_listing.c
--- a/monetdb5/mal/mal_listing.c
+++ b/monetdb5/mal/mal_listing.c
@@ -162,42 +162,42 @@ fcnDefinition(MalBlkPtr mb, InstrPtr p, 
        }
 
        advance(t,base,len);
-       if (p->varargs & VARARGS)
+       if (p->varargs & VARARGS && t < base + len -3)
                sprintf(t, "...");
        advance(t,base,len);
 
-       if (p->retc == 1) {
+       if (p->retc == 1 && t < base +len) {
                *t++ = ')';
                tpe = getTypeName(getVarType(mb, getArg(p,0)));
                snprintf(t,(len-(t-base)),":%s", tpe);
                advance(t,base,len);
                GDKfree(tpe);
-               if (p->varargs & VARRETS)
+               if (p->varargs & VARRETS && t < base + len -3)
                        sprintf(t, "...");
                advance(t,base,len);
        } else {
-               sprintf(t, ") (");
+               if( t < base +len -3) sprintf(t, ") (");
                t += 3;
                for (i = 0; i < p->retc; i++) {
                        arg = renderTerm(mb, 0, p, i, (LIST_MAL_NAME | 
LIST_MAL_TYPE | LIST_MAL_PROPS));
                        snprintf(t,(len-(t-base)),"%s", arg);
                        advance(t,base,len);
                        GDKfree(arg);
-                       if( i<p->retc-1) {
+                       if( i<p->retc-1 && t < base + len) {
                                sprintf(t,",");
                                advance(t,base,len);
                        }
                }
-               if (p->varargs & VARRETS)
+               if (p->varargs & VARRETS && t < base +len -3)
                        sprintf(t, "...");
                advance(t,base,len);
-               *t++ = ')';
+               if(t < base + len) *t++ = ')';
        }
 
        if (mb->binding)
                snprintf(t,(len-(t-base))," address %s;", mb->binding);
        else
-               sprintf(t, ";");
+               if( t <base + len) sprintf(t, ";");
        return s;
 }
 
@@ -290,22 +290,24 @@ instruction2str(MalBlkPtr mb, MalStkPtr 
 
                /* display multi-assignment list */
                if (p->retc > 1)
-                       *t++ = '(';
+                       if( t< base+len) *t++ = '(';
 
                for (i = 0; i < p->retc; i++) {
                        arg= renderTerm(mb, stk, p, i, flg);
                        snprintf(t,(len-(t-base)), "%s", arg);
                        GDKfree(arg);
                        advance(t,base,len);
-                       if (i < p->retc - 1)
+                       if ( t < base+len && i < p->retc - 1)
                                *t++ = ',';
                }
                if (p->retc > 1)
-                       *t++ = ')';
+                       if( t< base+len) *t++ = ')';
 
                if (p->argc > p->retc || getFunctionId(p)) {
-                       sprintf(t, " := ");
-                       t += 4;
+                       if( t< base+len-4) {
+                               sprintf(t, " := ");
+                               t += 4;
+                       }
                }
                *t = 0;
                break;
@@ -350,7 +352,7 @@ instruction2str(MalBlkPtr mb, MalStkPtr 
                GDKfree(arg);
                advance(t,base,len);
 
-               if (i < p->argc -1){
+               if (i < p->argc -1 && t < base + len){
                        snprintf(t, (len-(t-base)), ",");
                        advance(t,base,len);
                }
@@ -451,7 +453,7 @@ shortStmtRendering(MalBlkPtr mb, MalStkP
 
        /* display optional multi-assignment list */
        if( getArgType(mb,p,0) != TYPE_void){
-               if (p->retc > 1){
+               if (p->retc > 1 && t < base + len-1){
                        *t++ = '(';
                        *t=0;
                }
@@ -462,11 +464,11 @@ shortStmtRendering(MalBlkPtr mb, MalStkP
                        GDKfree(nme);
                        advance(t,base,len);
                }
-               if (p->retc > 1)
+               if (p->retc > 1 && t< base+len)
                        *t++ = ')';
-               *t++ = ':';
-               *t++ = '=';
-               *t++ = ' ';
+               if( t < base +len) *t++ = ':';
+               if( t < base +len) *t++ = '=';
+               if( t < base +len) *t++ = ' ';
        }
        *t =0;
 
@@ -479,17 +481,17 @@ shortStmtRendering(MalBlkPtr mb, MalStkP
 
        // handle the arguments, constants should  be shown including their 
non-default type
        /* display optional multi-assignment list */
-       *t++ = '(';
+       if( t< base + len) *t++ = '(';
        for (i = p->retc; i < p->argc; i++) {
                nme = shortRenderingTerm(mb, stk, p,i);
                snprintf(t,(len-(t-base)), "%c%s", (i!= p->retc? ',':' '), nme);
                GDKfree(nme);
                advance(t,base,len);
-               if (i < p->retc - 1)
+               if (i < p->retc - 1 && t < base+len)
                        *t++ = ',';
        }
-       *t++ = ' ';
-       *t++ = ')';
+       if( t < base + len) *t++ = ' ';
+       if( t < base + len) *t++ = ')';
        *t=0;
 
        if (t >= s + len)
diff --git a/sql/test/BugTracker-2016/Tests/All 
b/sql/test/BugTracker-2016/Tests/All
--- a/sql/test/BugTracker-2016/Tests/All
+++ b/sql/test/BugTracker-2016/Tests/All
@@ -39,3 +39,4 @@ RELEASE_SAVEPOINT_after_UPDATE_crash.Bug
 analyze-quotes-incorrectly.Bug-4021
 boolean-evaluation.Bug-4025
 HAVE_GEOM?nested-mal-with-multiplex.Bug-4035
+querylog
diff --git a/sql/test/BugTracker-2016/Tests/querylog.stable.err 
b/sql/test/BugTracker-2016/Tests/querylog.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2016/Tests/querylog.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'querylog` in directory 'sql/test/BugTracker-2016` itself:
+
+
+# 15:31:52 >  
+# 15:31:52 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30257" "--set" 
"mapi_usock=/var/tmp/mtest-19785/.s.monetdb.30257" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch1/mk/default//Linux/var/MonetDB/mTests_sql_test_BugTracker-2016"
+# 15:31:52 >  
+
+# builtin opt  gdk_dbpath = 
/export/scratch1/mk/default//Linux/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 30257
+# cmdline opt  mapi_usock = /var/tmp/mtest-19785/.s.monetdb.30257
+# cmdline opt  monet_prompt = 
+# cmdline opt  gdk_dbpath = 
/export/scratch1/mk/default//Linux/var/MonetDB/mTests_sql_test_BugTracker-2016
+# cmdline opt  gdk_debug = 536870922
+
+# 15:31:52 >  
+# 15:31:52 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19785" "--port=30257"
+# 15:31:52 >  
+
+MAPI  = (monetdb) /var/tmp/mtest-19785/.s.monetdb.30257
+QUERY = call sys.querylog_threshold(0);
+
+
+# 15:31:52 >  
+# 15:31:52 >  "Done."
+# 15:31:52 >  
+
diff --git a/sql/test/BugTracker-2016/Tests/querylog.stable.out 
b/sql/test/BugTracker-2016/Tests/querylog.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2016/Tests/querylog.stable.out
@@ -0,0 +1,69 @@
+stdout of test 'querylog` in directory 'sql/test/BugTracker-2016` itself:
+
+
+# 15:31:52 >  
+# 15:31:52 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30257" "--set" 
"mapi_usock=/var/tmp/mtest-19785/.s.monetdb.30257" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch1/mk/default//Linux/var/MonetDB/mTests_sql_test_BugTracker-2016"
+# 15:31:52 >  
+
+# MonetDB 5 server v11.24.0
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2016', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
+# Found 15.589 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://vienna.da.cwi.nl:30257/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-19785/.s.monetdb.30257
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+
+# 15:31:52 >  
+# 15:31:52 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19785" "--port=30257"
+# 15:31:52 >  
+
+#select * from querylog_catalog;
+% .querylog_catalog,   .querylog_catalog,      .querylog_catalog,      
.querylog_catalog,      .querylog_catalog,      .querylog_catalog,      
.querylog_catalog,      .querylog_catalog # table_name
+% id,  owner,  defined,        query,  pipe,   plan,   mal,    optimize # name
+% oid, clob,   timestamp,      clob,   clob,   clob,   int,    bigint # type
+% 3,   0,      26,     0,      0,      0,      1,      1 # length
+#select * from querylog_calls;
+% .querylog_calls,     .querylog_calls,        .querylog_calls,        
.querylog_calls,        .querylog_calls,        .querylog_calls,        
.querylog_calls,        .querylog_calls,        .querylog_calls # table_name
+% id,  start,  stop,   arguments,      tuples, run,    ship,   cpu,    io # 
name
+% oid, timestamp,      timestamp,      clob,   bigint, bigint, bigint, int,    
int # type
+% 3,   26,     26,     0,      1,      1,      1,      1,      1 # length
+#select 1;
+% .L # table_name
+% single_value # name
+% tinyint # type
+% 1 # length
+[ 1    ]
+#select count(*) from tables;
+% .L3 # table_name
+% L3 # name
+% bigint # type
+% 2 # length
+[ 56   ]
+#select id, owner,query,plan,mal from querylog_catalog;
+% .querylog_catalog,   .querylog_catalog,      .querylog_catalog,      
.querylog_catalog,      .querylog_catalog # table_name
+% id,  owner,  query,  plan,   mal # name
+% oid, clob,   clob,   clob,   int # type
+% 3,   7,      54,     9,      3 # length
+[ 7@0, "monetdb",      "select 1;",    "user.s4_1",    43      ]
+[ 8@0, "monetdb",      "select count(*) from tables;", "user.s5_1",    151     
]
+[ 9@0, "monetdb",      "select id, owner,query,plan,mal from 
querylog_catalog;",       "user.s6_1",    76      ]
+#select id, arguments, tuples,ship,cpu from querylog_calls;
+% .querylog_calls,     .querylog_calls,        .querylog_calls,        
.querylog_calls,        .querylog_calls # table_name
+% id,  arguments,      tuples, ship,   cpu # name
+% oid, clob,   bigint, bigint, int # type
+% 3,   23,     1,      1,      2 # length
+[ 7@0, "user.s4_1(A0:bte):void;",      1,      1,      50      ]
+[ 8@0, "user.s5_1():void;",    1,      0,      0       ]
+[ 9@0, "user.s6_1():void;",    5,      1,      0       ]
+
+# 15:31:52 >  
+# 15:31:52 >  "Done."
+# 15:31:52 >  
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to