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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list