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