Changeset: bc01344b2d05 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bc01344b2d05
Branch: txtsim
Log Message:
merged with default
diffs (truncated from 948 to 300 lines):
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -787,6 +787,7 @@ 44e45c9a451f6afd933773094ec25723f713d3be
44e45c9a451f6afd933773094ec25723f713d3be Jan2022_SP5_release
43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_25
43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_SP6_release
+700e099bfee85318da09aabcd78ec7ea6e8fb6ef Jul2021_29
5c50a4071c86d1621e20a885a51cc36f2f23eec4 Sep2022_9
41ca60d96bd0198ca5d74937630a442a5fbaf1cd Sep2022_11
41ca60d96bd0198ca5d74937630a442a5fbaf1cd Sep2022_SP1_release
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3578,7 +3578,6 @@ main(int argc, char **argv)
} else {
if (mode == SQL) {
setFormatter("sql");
- mapi_set_size_header(mid, false);
} else {
setFormatter("raw");
mapi_set_size_header(mid, true);
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -546,17 +546,26 @@ runMALsequence(Client cntxt, MalBlkPtr m
ret= createException(MAL, "mal.interpreter",
"prematurely stopped client");
break;
}
-#ifndef NDEBUG
- if (cntxt->itrace || stk->status) {
- if (stk->status == 'p'){
- // execution is paused
+
+ if (stk->status) {
+ /* pause procedure from SYSMON */
+ if (stk->status == 'p') {
while (stk->status == 'p')
MT_sleep_ms(50);
continue;
}
- if (stk->status == 'q')
- stk->cmd = 'x';
+ /* stop procedure from SYSMON */
+ if (stk->status == 'q') {
+ stkpc = mb->stop;
+ ret = createException(MAL, "mal.interpreter",
+
"Query with tag "OIDFMT" received stop signal",
+
mb->tag);
+ break;
+ }
+ }
+#ifndef NDEBUG
+ if (cntxt->itrace) {
if (stk->cmd == 0)
stk->cmd = cntxt->itrace;
mdbStep(cntxt, mb, stk, stkpc);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -368,7 +368,7 @@ MSscheduleClient(str command, str challe
mnstr_printf(c->fdout, "!%s\n", s);
mnstr_flush(c->fdout, MNSTR_FLUSH_DATA);
GDKfree(s);
- c->mode = FINISHCLIENT;
+ MCcloseClient(c);
}
if (!GDKgetenv_isyes(mal_enableflag) &&
(strncasecmp("sql", lang, 3) != 0 && uid != 0))
{
diff --git a/monetdb5/modules/kernel/CMakeLists.txt
b/monetdb5/modules/kernel/CMakeLists.txt
--- a/monetdb5/modules/kernel/CMakeLists.txt
+++ b/monetdb5/modules/kernel/CMakeLists.txt
@@ -18,7 +18,7 @@ target_sources(kernel
bat5.c
algebra.c algebra.h
group.c group.h
- aggr.c
+ aggr.c aggr.h
batmmath.c
batstr.c
batcolor.c
diff --git a/monetdb5/modules/kernel/aggr.c b/monetdb5/modules/kernel/aggr.c
--- a/monetdb5/modules/kernel/aggr.c
+++ b/monetdb5/modules/kernel/aggr.c
@@ -11,6 +11,7 @@
#include "monetdb_config.h"
#include "mal.h"
#include "mal_exception.h"
+#include "aggr.h"
/*
* grouped aggregates
@@ -24,7 +25,7 @@ AGGRgrouped(bat *retval1, bat *retval2,
const bat *quantile,
const char *malfunc)
{
- BAT *b, *g, *e, *s, *bn = NULL, *cnts, *q = NULL;
+ BAT *b, *g, *e, *s, *bn = NULL, *cnts = NULL, *q = NULL;
double qvalue;
/* exactly one of grpfunc1, grpfunc2 and quantilefunc is non-NULL */
@@ -124,7 +125,7 @@ AGGRsum3_int(bat *retval, const bat *bid
BATgroupsum, NULL, NULL, NULL,
"aggr.sum");
}
-static str
+str
AGGRsum3_lng(bat *retval, const bat *bid, const bat *gid, const bat *eid)
{
return AGGRgrouped(retval, NULL, bid, gid, eid, NULL, true, 0, TYPE_lng,
@@ -132,7 +133,7 @@ AGGRsum3_lng(bat *retval, const bat *bid
}
#ifdef HAVE_HGE
-static str
+str
AGGRsum3_hge(bat *retval, const bat *bid, const bat *gid, const bat *eid)
{
return AGGRgrouped(retval, NULL, bid, gid, eid, NULL, true, 0, TYPE_hge,
diff --git a/monetdb5/modules/kernel/aggr.h b/monetdb5/modules/kernel/aggr.h
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/kernel/aggr.h
@@ -0,0 +1,17 @@
+/*
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V.
+ */
+
+#ifndef _AGGR_H_
+#define _AGGR_H_
+
+extern str AGGRsum3_lng(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
+extern str AGGRsum3_hge(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
+
+#endif /* _AGGR_H_ */
diff --git a/monetdb5/modules/kernel/group.c b/monetdb5/modules/kernel/group.c
--- a/monetdb5/modules/kernel/group.c
+++ b/monetdb5/modules/kernel/group.c
@@ -92,7 +92,7 @@ GRPsubgroup3(bat *ngid, bat *next, bat *
return GRPsubgroup5(ngid, next, nhis, bid, sid, gid, NULL, NULL);
}
-static str
+str
GRPsubgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat *gid)
{
return GRPsubgroup5(ngid, next, nhis, bid, NULL, gid, NULL, NULL);
@@ -104,7 +104,7 @@ GRPgroup4(bat *ngid, bat *next, const ba
return GRPsubgroup5(ngid, next, NULL, bid, sid, NULL, NULL, NULL);
}
-static str
+str
GRPgroup3(bat *ngid, bat *next, const bat *bid)
{
return GRPsubgroup5(ngid, next, NULL, bid, NULL, NULL, NULL, NULL);
diff --git a/monetdb5/modules/kernel/group.h b/monetdb5/modules/kernel/group.h
--- a/monetdb5/modules/kernel/group.h
+++ b/monetdb5/modules/kernel/group.h
@@ -17,4 +17,6 @@ mal_export str GRPsubgroup5(bat *ngid, b
const bat *bid, const
bat *sid,
const bat *gid, const
bat *eid, const bat *hid);
+extern str GRPsubgroup2(bat *ngid, bat *next, bat *nhis, const bat *bid, const
bat *gid);
+extern str GRPgroup3(bat *ngid, bat *next, const bat *bid);
#endif /* _GROUP_H_ */
diff --git a/monetdb5/optimizer/opt_pushselect.c
b/monetdb5/optimizer/opt_pushselect.c
--- a/monetdb5/optimizer/opt_pushselect.c
+++ b/monetdb5/optimizer/opt_pushselect.c
@@ -869,7 +869,11 @@ OPTpushselectImplementation(Client cntxt
getArg(u, 3) = getArg(q,2); /* update ids */
//getArg(u, 4) = getArg(s,0);
p = pushArgument(mb, u, getArg(s,0)); /* push
at end */
+ /* make sure to resolve again */
+ u->token = ASSIGNsymbol;
u->typechk = TYPE_UNKNOWN;
+ u->fcn = NULL;
+ u->blk = NULL;
pushInstruction(mb,u);
oclean[i] = true;
continue;
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -4380,7 +4380,7 @@ sql_insert_check_null(backend *be, sql_t
{
mvc *sql = be->mvc;
node *m, *n;
- sql_subfunc *cnt = sql_bind_func(sql, "sys", "count",
sql_bind_localtype("void"), NULL, F_AGGR, true);
+ sql_subfunc *cnt = NULL;
for (n = ol_first_node(t->columns), m = inserts->h; n && m;
n = n->next, m = m->next) {
@@ -4393,6 +4393,8 @@ sql_insert_check_null(backend *be, sql_t
if (!(s->key && s->nrcols == 0)) {
s = stmt_selectnil(be, column(be, i));
+ if (!cnt)
+ cnt = sql_bind_func(sql, "sys",
"count", sql_bind_localtype("void"), NULL, F_AGGR, true);
s = stmt_aggr(be, s, NULL, NULL, cnt, 1, 0, 1);
} else {
sql_subfunc *isnil = sql_bind_func(sql, "sys",
"isnull", &c->type, NULL, F_FUNC, true);
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -336,8 +336,9 @@ static int
sqlid table_id = prp->id;
node *n;
int i, q, v, res = 0, added_to_cache = 0, *lret, *rret;
- size_t len = 1024, nr;
- char *lname, *buf;
+ size_t len = 1024, nr, pwlen = 0;
+ char *lname = NULL, *buf = NULL, *mal_session_uuid, *err = NULL,
*pwhash = NULL;
+ str username = NULL, password = NULL, msg = NULL;
sql_rel *r = rel;
if (table_id == 0) {
@@ -387,17 +388,25 @@ static int
if( c->curprg == NULL) {
GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+ c->curprg = backup;
return -1;
}
lname[0] = 'l';
curBlk = c->curprg->def;
curInstr = getInstrPtr(curBlk, 0);
+ sql_table *rt = sql_trans_find_table(m->session->tr, table_id);
+ const char *uri = mapiuri_uri(rt->query, m->sa);
+ if (!rt) {
+ sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+ res = -1;
+ goto cleanup;
+ }
curInstr = relational_func_create_result_part2(curBlk, curInstr, rel2);
if( curInstr == NULL) {
- GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
- return -1;
+ res = -1;
+ goto cleanup;
}
/* ops */
@@ -412,9 +421,9 @@ static int
sprintf(nbuf, "A%d", i++);
if ((varid = newVariable(curBlk, nbuf, strlen(nbuf),
type)) < 0) {
- GDKfree(lname);
sql_error(m, 10, SQLSTATE(42000) "Internal
error while compiling statement: variable id too long");
- return -1;
+ res = -1;
+ goto cleanup;
}
curInstr = pushArgument(curBlk, curInstr, varid);
setVarType(curBlk, varid, type);
@@ -430,9 +439,9 @@ static int
type = newBatType(type);
p = newFcnCall(curBlk, batRef, newRef);
if (p == NULL) {
- GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013)
MAL_MALLOC_FAIL);
- return -1;
+ res = -1;
+ goto cleanup;
}
p = pushType(curBlk, p, getBatType(type));
setArgType(curBlk, p, 0, type);
@@ -442,34 +451,30 @@ static int
}
/* get username / password */
- sql_table *rt = sql_trans_find_table(m->session->tr, table_id);
- if (!rt) {
- sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
- return -1;
- }
- str username = NULL, password = NULL;
- str msg = remote_get(m, table_id, &username, &password);
+ msg = remote_get(m, table_id, &username, &password);
if (msg) {
sql_error(m, 10, "%s", msg);
GDKfree(msg);
- return -1;
+ msg = NULL;
+ res = -1;
+ goto cleanup;
}
/* q := remote.connect("uri", "username", "password", "msql"); */
p = newStmt(curBlk, remoteRef, connectRef);
if (p == NULL) {
- GDKfree(lname);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]