Changeset: aae65ac894b2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aae65ac894b2
Modified Files:
monetdb5/modules/mal/sysmon.c
Branch: default
Log Message:
Minor patches.
diffs (86 lines):
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
@@ -9,6 +9,7 @@
#include "monetdb_config.h"
#include "sysmon.h"
#include "mal_authorize.h"
+#include "mal_client.h"
#include "mal_runtime.h"
#include "mtime.h"
@@ -30,22 +31,23 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb,
bat *w = getArgReference_bat(stk,pci,7);
bat *m = getArgReference_bat(stk,pci,8);
lng i, qtag;
- int wrk, mem;
- str usr;
+ int wrk, mem, sz;
+ str usr = 0;
timestamp tsn;
str msg = MAL_SUCCEED;
(void) cntxt;
(void) mb;
- tag = COLnew(0, TYPE_lng, 256, TRANSIENT);
- sessionid = COLnew(0, TYPE_int, 256, TRANSIENT);
- user = COLnew(0, TYPE_str, 256, TRANSIENT);
- started = COLnew(0, TYPE_timestamp, 256, TRANSIENT);
- status = COLnew(0, TYPE_str, 256, TRANSIENT);
- query = COLnew(0, TYPE_str, 256, TRANSIENT);
- progress = COLnew(0, TYPE_int, 256, TRANSIENT);
- workers = COLnew(0, TYPE_int, 256, TRANSIENT);
- memory = COLnew(0, TYPE_int, 256, TRANSIENT);
+ sz = MAL_MAXCLIENTS; // reserve space for all possible clients.
+ tag = COLnew(0, TYPE_lng, sz, TRANSIENT);
+ sessionid = COLnew(0, TYPE_int, sz, TRANSIENT);
+ user = COLnew(0, TYPE_str, sz, TRANSIENT);
+ started = COLnew(0, TYPE_timestamp, sz, TRANSIENT);
+ status = COLnew(0, TYPE_str, sz, TRANSIENT);
+ query = COLnew(0, TYPE_str, sz, TRANSIENT);
+ progress = COLnew(0, TYPE_int, sz, TRANSIENT);
+ workers = COLnew(0, TYPE_int, sz, TRANSIENT);
+ memory = COLnew(0, TYPE_int, sz, TRANSIENT);
if ( tag == NULL || sessionid == NULL || user == NULL || query == NULL
|| started == NULL || progress == NULL || workers == NULL || memory == NULL){
BBPreclaim(tag);
BBPreclaim(sessionid);
@@ -56,7 +58,7 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb,
BBPreclaim(progress);
BBPreclaim(workers);
BBPreclaim(memory);
- throw(MAL, "SYSMONqueue", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+ throw(MAL, "SYSMONqueue", SQLSTATE(HY001) MAL_MALLOC_FAIL);
}
MT_lock_set(&mal_delayLock);
@@ -69,16 +71,16 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb,
if (msg != MAL_SUCCEED)
goto bailout;
- if (BUNappend(sessionid, &(QRYqueue[i].cntxt->idx), false) !=
GDK_SUCCEED) {
- GDKfree(usr);
- goto bailout;
- }
-
if (BUNappend(user, usr, false) != GDK_SUCCEED) {
GDKfree(usr);
goto bailout;
}
GDKfree(usr);
+
+ if (BUNappend(sessionid, &(QRYqueue[i].cntxt->idx), false) !=
GDK_SUCCEED) {
+ goto bailout;
+ }
+
if (BUNappend(query, QRYqueue[i].query, false) != GDK_SUCCEED ||
BUNappend(status, QRYqueue[i].status, false) !=
GDK_SUCCEED)
goto bailout;
@@ -122,7 +124,7 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb,
BBPunfix(progress->batCacheid);
BBPunfix(workers->batCacheid);
BBPunfix(memory->batCacheid);
- return msg ? msg : createException(MAL, "SYSMONqueue", SQLSTATE(HY013)
MAL_MALLOC_FAIL);
+ return msg ? msg : createException(MAL, "SYSMONqueue", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
}
str
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list