Changeset: 57e878e3a9e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=57e878e3a9e7
Modified Files:
        monetdb5/mal/mal.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_runtime.c
        monetdb5/mal/mal_runtime.h
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/sysmon.c
        sql/backends/monet5/sql_upgrades.c
        
sql/test/BugTracker-2016/Tests/set-negative-querytimeout.Bug-6070.stable.err
        
sql/test/BugTracker-2016/Tests/set-negative-querytimeout.Bug-6070.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Merge with Nov2019 branch.


diffs (truncated from 1758 to 300 lines):

diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -175,7 +175,7 @@ typedef struct {
 typedef struct MALBLK {
        char binding[IDLENGTH]; /* related C-function */
        str help;                               /* supportive commentary */
-       lng tag;                                /* unique block tag */
+       oid tag;                                /* unique block tag */
        struct MALBLK *alternative;
        int vtop;                               /* next free slot */
        int vsize;                              /* size of variable arena */
@@ -229,7 +229,7 @@ typedef struct MALSTK {
        char cmd;               /* debugger and runtime communication */
        char status;            /* srunning 'R' suspended 'S', quiting 'Q' */
        int pcup;               /* saved pc upon a recursive all */
-       lng tag;                /* unique invocation call tag */
+       oid tag;                /* unique invocation call tag */
        struct MALSTK *up;      /* stack trace list */
        struct MALBLK *blk;     /* associated definition */
        ValRecord stk[FLEXIBLE_ARRAY_MEMBER];
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -165,14 +165,14 @@ renderProfilerEvent(MalBlkPtr mb, MalStk
 
        logadd("\"function\":\"%s.%s\",%s", getModuleId(getInstrPtr(mb, 0)), 
getFunctionId(getInstrPtr(mb, 0)), prettify);
        logadd("\"pc\":%d,%s", mb?getPC(mb,pci):0, prettify);
-       logadd("\"tag\":"LLFMT",%s", stk?stk->tag:0, prettify);
+       logadd("\"tag\":"OIDFMT",%s", stk?stk->tag:0, prettify);
        logadd("\"module\":\"%s\",%s", pci->modname ? pci->modname : "", 
prettify);
        if (pci->modname && strcmp(pci->modname, "user") == 0) {
-               lng caller_tag = 0;
+               oid caller_tag = 0;
                if(stk && stk->up) {
                        caller_tag = stk->up->tag;
                }
-               logadd("\"caller\":"LLFMT",%s", caller_tag, prettify);
+               logadd("\"caller\":"OIDFMT",%s", caller_tag, prettify);
        }
        logadd("\"instruction\":\"%s\",%s", pci->fcnname ? pci->fcnname : "", 
prettify);
        if (!GDKinmemory()) {
@@ -906,9 +906,9 @@ cachedProfilerEvent(MalBlkPtr mb, MalStk
                return;
 
        /* update the Trace tables */
-       snprintf(buf, BUFSIZ, "%s.%s[%d]"LLFMT,
-       getModuleId(getInstrPtr(mb, 0)),
-       getFunctionId(getInstrPtr(mb, 0)), getPC(mb, pci), stk->tag);
+       snprintf(buf, BUFSIZ, "%s.%s[%d]"OIDFMT,
+                        getModuleId(getInstrPtr(mb, 0)),
+                        getFunctionId(getInstrPtr(mb, 0)), getPC(mb, pci), 
stk->tag);
 
        /* generate actual call statement */
        stmt = instruction2str(mb, stk, pci, LIST_MAL_ALL);
diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c
--- a/monetdb5/mal/mal_runtime.c
+++ b/monetdb5/mal/mal_runtime.c
@@ -29,7 +29,8 @@
 // Keep a queue of running queries
 QueryQueue QRYqueue;
 lng qtop;
-static lng qsize, qtag= 1;
+static lng qsize;
+static oid qtag= 1;
 
 #define QRYreset(I)\
                if (QRYqueue[I].query) GDKfree(QRYqueue[I].query);\
@@ -75,9 +76,9 @@ runtimeProfileInit(Client cntxt, MalBlkP
        MT_lock_set(&mal_delayLock);
        tmp = QRYqueue;
        if ( QRYqueue == 0)
-               QRYqueue = (QueryQueue) GDKzalloc( sizeof (struct QRYQUEUE) * 
(qsize= 1024));
+               QRYqueue = (QueryQueue) GDKzalloc( sizeof (struct QRYQUEUE) * 
(size_t) (qsize= 1024));
        else if ( qtop + 1 == qsize )
-               QRYqueue = (QueryQueue) GDKrealloc( QRYqueue, sizeof (struct 
QRYQUEUE) * (qsize += 256));
+               QRYqueue = (QueryQueue) GDKrealloc( QRYqueue, sizeof (struct 
QRYQUEUE) * (size_t) (qsize += 256));
        if ( QRYqueue == NULL){
                addMalException(mb,"runtimeProfileInit" MAL_MALLOC_FAIL);
                GDKfree(tmp);                   /* may be NULL, but doesn't 
harm */
diff --git a/monetdb5/mal/mal_runtime.h b/monetdb5/mal/mal_runtime.h
--- a/monetdb5/mal/mal_runtime.h
+++ b/monetdb5/mal/mal_runtime.h
@@ -28,7 +28,7 @@ typedef struct QRYQUEUE{
        Client cntxt;
        MalBlkPtr mb;
        MalStkPtr stk;
-       lng tag;
+       oid tag;
        str query;
        str status;
        time_t start;
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -252,7 +252,7 @@ CLTwakeup(void *ret, int *id)
     return MCawakeClient(*id);
 }
 
-/* set session time out based in minutes */
+/* set session time out based in seconds */
 str
 CLTsetSessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -260,8 +260,8 @@ CLTsetSessionTimeout(Client cntxt, MalBl
        (void) mb;
        sto=  *getArgReference_lng(stk,pci,1);
        if( sto < 0)
-               throw(MAL,"timeout","Query time out should be >= 0");
-       cntxt->stimeout = sto * 60 * 1000 * 1000;
+               throw(MAL,"timeout","Session time out should be >= 0");
+       cntxt->stimeout = sto * 1000 * 1000;
     return MAL_SUCCEED;
 }
 
@@ -274,13 +274,13 @@ CLTsetTimeout(Client cntxt, MalBlkPtr mb
        qto=  *getArgReference_lng(stk,pci,1);
        if( qto < 0)
                throw(MAL,"timeout","Query time out should be >= 0");
-       cntxt->qtimeout = qto * 1000 * 1000;
        if ( pci->argc == 3){
                sto=  *getArgReference_lng(stk,pci,2);
                if( sto < 0)
                        throw(MAL,"timeout","Session time out should be >= 0");
                cntxt->stimeout = sto * 1000 * 1000;
        }
+       cntxt->qtimeout = qto * 1000 * 1000;
     return MAL_SUCCEED;
 }
 
diff --git a/monetdb5/modules/mal/sysmon.c b/monetdb5/modules/mal/sysmon.c
--- a/monetdb5/modules/mal/sysmon.c
+++ b/monetdb5/modules/mal/sysmon.c
@@ -66,7 +66,7 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb, 
                else
                        // calculate progress based on past observations
                        prog = (int) ((now- QRYqueue[i].start) / 
(QRYqueue[i].runtime/100.0));
-               if (BUNappend(tag, &QRYqueue[i].tag, false) != GDK_SUCCEED)
+               if (BUNappend(tag, &(lng){QRYqueue[i].tag}, false) != 
GDK_SUCCEED)
                        goto bailout;
                msg = AUTHgetUsername(&usr, QRYqueue[i].cntxt);
                if (msg != MAL_SUCCEED)
@@ -152,10 +152,10 @@ SYSMONpause(Client cntxt, MalBlkPtr mb, 
        }
        MT_lock_set(&mal_delayLock);
        for ( i = 0; QRYqueue[i].tag; i++)
-       if( QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == cntxt->user 
|| cntxt->user == MAL_ADMIN)){
-               QRYqueue[i].stk->status = 'p';
-               QRYqueue[i].status = "paused";
-       }
+               if( (lng) QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == 
cntxt->user || cntxt->user == MAL_ADMIN)){
+                       QRYqueue[i].stk->status = 'p';
+                       QRYqueue[i].status = "paused";
+               }
        MT_lock_unset(&mal_delayLock);
        return MAL_SUCCEED;
 }
@@ -182,10 +182,10 @@ SYSMONresume(Client cntxt, MalBlkPtr mb,
        }
        MT_lock_set(&mal_delayLock);
        for ( i = 0; QRYqueue[i].tag; i++)
-       if( QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == cntxt->user 
|| cntxt->user == MAL_ADMIN)){
-               QRYqueue[i].stk->status = 0;
-               QRYqueue[i].status = "running";
-       }
+               if( (lng)QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == 
cntxt->user || cntxt->user == MAL_ADMIN)){
+                       QRYqueue[i].stk->status = 0;
+                       QRYqueue[i].status = "running";
+               }
        MT_lock_unset(&mal_delayLock);
        return MAL_SUCCEED;
 }
@@ -212,10 +212,10 @@ SYSMONstop(Client cntxt, MalBlkPtr mb, M
        }
        MT_lock_set(&mal_delayLock);
        for ( i = 0; QRYqueue[i].tag; i++)
-       if( QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == cntxt->user 
|| cntxt->user == MAL_ADMIN)){
-               QRYqueue[i].stk->status = 'q';
-               QRYqueue[i].status = "stopping";
-       }
+               if( (lng) QRYqueue[i].tag == tag && (QRYqueue[i].cntxt->user == 
cntxt->user || cntxt->user == MAL_ADMIN)){
+                       QRYqueue[i].stk->status = 'q';
+                       QRYqueue[i].status = "stopping";
+               }
        MT_lock_unset(&mal_delayLock);
        return MAL_SUCCEED;
 }
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -1893,7 +1893,7 @@ sql_update_apr2019_sp1(Client c)
 static str
 sql_update_nov2019(Client c, mvc *sql, const char *prev_schema)
 {
-       size_t bufsize = 4096, pos = 0;
+       size_t bufsize = 8192, pos = 0;
        char *err = NULL, *buf = GDKmalloc(bufsize);
        res_table *output;
        BAT *b;
@@ -1986,47 +1986,66 @@ sql_update_nov2019(Client c, mvc *sql, c
 #endif
        /* 60/61_wlcr signatures migrations */
        pos += snprintf(buf + pos, bufsize - pos,
-               "drop procedure master();\n"
-               "drop procedure master(path string);\n"
-               "drop procedure stopmaster();\n"
-               "drop procedure masterbeat( duration int);\n"
-               "drop function masterClock() returns string;\n"
-               "drop function masterTick() returns bigint;\n"
-               "drop procedure replicate();\n"
-               "drop procedure replicate(pointintime timestamp);\n"
-               "drop procedure replicate(dbname string);\n"
-               "drop procedure replicate(dbname string, pointintime 
timestamp);\n"
-               "drop procedure replicate(dbname string, id tinyint);\n"
-               "drop procedure replicate(dbname string, id smallint);\n"
-               "drop procedure replicate(dbname string, id integer);\n"
-               "drop procedure replicate(dbname string, id bigint);\n"
-               "drop procedure replicabeat(duration integer);\n"
-               "drop function replicaClock() returns string;\n"
-               "drop function replicaTick() returns bigint;\n"
+                       "drop procedure master();\n"
+                       "drop procedure master(string);\n"
+                       "drop procedure stopmaster();\n"
+                       "drop procedure masterbeat(int);\n"
+                       "drop function masterClock();\n"
+                       "drop function masterTick();\n"
+                       "drop procedure replicate();\n"
+                       "drop procedure replicate(timestamp);\n"
+                       "drop procedure replicate(string);\n"
+                       "drop procedure replicate(string, timestamp);\n"
+                       "drop procedure replicate(string, tinyint);\n"
+                       "drop procedure replicate(string, smallint);\n"
+                       "drop procedure replicate(string, integer);\n"
+                       "drop procedure replicate(string, bigint);\n"
+                       "drop procedure replicabeat(integer);\n"
+                       "drop function replicaClock();\n"
+                       "drop function replicaTick();\n"
 
-               "create schema wlc;\n"
-               "create procedure wlc.master();\n"
-               "create procedure wlc.master(path string);\n"
-               "create procedure wlc.stop();\n"
-               "create procedure wlc.flush();\n"
-               "create procedure wlc.beat( duration int);\n"
-               "create function wlc.clock() returns string;\n"
-               "create function wlc.tick() returns bigint;\n"
+                       "create schema wlc;\n"
+                       "create procedure wlc.master()\n"
+                       "external name wlc.master;\n"
+                       "create procedure wlc.master(path string)\n"
+                       "external name wlc.master;\n"
+                       "create procedure wlc.stop()\n"
+                       "external name wlc.stop;\n"
+                       "create procedure wlc.flush()\n"
+                       "external name wlc.flush;\n"
+                       "create procedure wlc.beat( duration int)\n"
+                       "external name wlc.\"setbeat\";\n"
+                       "create function wlc.clock() returns string\n"
+                       "external name wlc.\"getclock\";\n"
+                       "create function wlc.tick() returns bigint\n"
+                       "external name wlc.\"gettick\";\n"
 
-               "create schema wlr;\n"
-               "create procedure wlr.master(dbname string);\n"
-               "create procedure wlr.stop();\n"
-               "create procedure wlr.accept();\n"
-               "create procedure wlr.replicate();\n"
-               "create procedure wlr.replicate(pointintime timestamp);\n"
-               "create procedure wlr.replicate(id tinyint);\n"
-               "create procedure wlr.replicate(id smallint);\n"
-               "create procedure wlr.replicate(id integer);\n"
-               "create procedure wlr.replicate(id bigint);\n"
-               "create procedure wlr.beat(duration integer);\n"
-               "create function wlr.clock() returns string;\n"
-               "create function wlr.tick() returns bigint;\n"
-       );
+                       "create schema wlr;\n"
+                       "create procedure wlr.master(dbname string)\n"
+                       "external name wlr.master;\n"
+                       "create procedure wlr.stop()\n"
+                       "external name wlr.stop;\n"
+                       "create procedure wlr.accept()\n"
+                       "external name wlr.accept;\n"
+                       "create procedure wlr.replicate()\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.replicate(pointintime 
timestamp)\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.replicate(id tinyint)\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.replicate(id smallint)\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.replicate(id integer)\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.replicate(id bigint)\n"
+                       "external name wlr.replicate;\n"
+                       "create procedure wlr.beat(duration integer)\n"
+                       "external name wlr.\"setbeat\";\n"
+                       "create function wlr.clock() returns string\n"
+                       "external name wlr.\"getclock\";\n"
+                       "create function wlr.tick() returns bigint\n"
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to