Changeset: c148c15ea3e0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c148c15ea3e0
Modified Files:
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/modules/kernel/aggr.c
monetdb5/modules/mal/manifold.c
sql/backends/monet5/sql.c
Branch: resource_management
Log Message:
revert previous pattern to command api change
diffs (221 lines):
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -59,7 +59,7 @@ newSymbol(const char *nme, int kind)
return NULL;
}
if (kind == FUNCTIONsymbol) {
- cur->def = newMalBlk(STMT_INCREMENT);
+ cur->def = newMalBlk(STMT_INCREMENT, NULL);
if (cur->def == NULL) {
GDKfree(cur);
return NULL;
@@ -114,11 +114,11 @@ newMalBlkStmt(MalBlkPtr mb, int maxstmts
}
MalBlkPtr
-newMalBlk(int elements)
+newMalBlk(int elements, allocator *pa)
{
MalBlkPtr mb;
VarRecord *v;
- allocator *ma = ma_create(NULL);
+ allocator *ma = ma_create(pa);
allocator *instr_allocator = ma_create(ma);
if (!ma)
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
@@ -158,7 +158,7 @@ mal_export void freeSymbol(Symbol s);
mal_export void freeSymbolList(Symbol s);
mal_export void printSignature(stream *fd, Symbol s, int flg);
-mal_export MalBlkPtr newMalBlk(int elements);
+mal_export MalBlkPtr newMalBlk(int elements, allocator *pa);
mal_export void resetMalBlk(MalBlkPtr mb);
mal_export void resetMalTypes(MalBlkPtr mb, int stop);
mal_export int newMalBlkStmt(MalBlkPtr mb, int elements);
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
@@ -1240,97 +1240,58 @@ AGGRgroup_str_concat(allocator *alloc, b
#define DEFAULT_SEPARATOR ","
static str
-AGGRstr_group_concat(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+AGGRstr_group_concat(Client ctx, bat *retval, const bat *bid, const bat *gid,
+ const bat *eid)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *gid = getArgReference_bat(stk, pci, 2);
- bat *eid = getArgReference_bat(stk, pci, 3);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, NULL, true,
NULL,
DEFAULT_SEPARATOR, "aggr.str_group_concat");
}
static str
-AGGRsubstr_group_concat(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci)
-//(bat *retval, const bat *bid, const bat *gid,const bat *eid, const bit
*skip_nils)
+AGGRsubstr_group_concat(Client ctx, bat *retval, const bat *bid, const bat
*gid,
+ const bat *eid, const bit
*skip_nils)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *gid = getArgReference_bat(stk, pci, 2);
- bat *eid = getArgReference_bat(stk, pci, 3);
- bit *skip_nils = getArgReference_bit(stk, pci, 4);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, NULL,
*skip_nils, NULL,
DEFAULT_SEPARATOR, "aggr.substr_group_concat");
}
static str
-AGGRsubstr_group_concatcand(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci)
-//(bat *retval, const bat *bid, const bat *gid, const bat *eid, const bat
*sid,const bit *skip_nils)
+AGGRsubstr_group_concatcand(Client ctx, bat *retval, const bat *bid, const bat
*gid,
+ const bat *eid, const
bat *sid,
+ const bit *skip_nils)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *gid = getArgReference_bat(stk, pci, 2);
- bat *eid = getArgReference_bat(stk, pci, 3);
- bat *sid = getArgReference_bat(stk, pci, 4);
- bit *skip_nils = getArgReference_bit(stk, pci, 5);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, sid,
*skip_nils, NULL,
DEFAULT_SEPARATOR, "aggr.substr_group_concat");
}
static str
-AGGRstr_group_concat_sep(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci)
-//(bat *retval, const bat *bid, const bat *sep, const bat *gid, const bat *eid)
+AGGRstr_group_concat_sep(Client ctx, bat *retval, const bat *bid, const bat
*sep,
+ const bat *gid, const bat *eid)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *sep = getArgReference_bat(stk, pci, 2);
- bat *gid = getArgReference_bat(stk, pci, 3);
- bat *eid = getArgReference_bat(stk, pci, 4);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, NULL, true,
sep, NULL,
"aggr.str_group_concat_sep");
}
static str
-AGGRsubstr_group_concat_sep(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci)
-//(bat *retval, const bat *bid, const bat *sep,
-// const bat *gid, const
bat *eid,
-// const bit *skip_nils)
+AGGRsubstr_group_concat_sep(Client ctx, bat *retval, const bat *bid, const bat
*sep,
+ const bat *gid, const
bat *eid,
+ const bit *skip_nils)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *sep = getArgReference_bat(stk, pci, 2);
- bat *gid = getArgReference_bat(stk, pci, 3);
- bat *eid = getArgReference_bat(stk, pci, 4);
- bit *skip_nils = getArgReference_bit(stk, pci, 5);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, NULL,
*skip_nils, sep,
NULL,
"aggr.substr_group_concat_sep");
}
static str
-AGGRsubstr_group_concatcand_sep(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci)
-//(bat *retval, const bat *bid, const bat *sep,
-// const bat *gid,
const bat *eid, const bat *sid,
-// const bit
*skip_nils)
+AGGRsubstr_group_concatcand_sep(Client ctx, bat *retval, const bat *bid, const
bat *sep,
+ const bat *gid,
const bat *eid, const bat *sid,
+ const bit
*skip_nils)
{
- (void) cntxt;
- bat *retval = getArgReference_bat(stk, pci, 0);
- bat *bid = getArgReference_bat(stk, pci, 1);
- bat *sep = getArgReference_bat(stk, pci, 2);
- bat *gid = getArgReference_bat(stk, pci, 3);
- bat *eid = getArgReference_bat(stk, pci, 4);
- bat *sid = getArgReference_bat(stk, pci, 5);
- bit *skip_nils = getArgReference_bit(stk, pci, 6);
- allocator *alloc = mb->ma;
+ allocator *alloc = ctx->curprg->def->ma;
return AGGRgroup_str_concat(alloc, retval, bid, gid, eid, sid,
*skip_nils, sep,
NULL,
"aggr.substr_group_concat_sep");
}
@@ -1779,12 +1740,12 @@ mel_func aggr_init_funcs[] = {
command("aggr", "quantile_avg", AGGRquantile_avg_cst, false, "Quantile
aggregate", args(1,3, arg("",dbl),batargany("b",1),arg("q",dbl))),
command("aggr", "subquantile_avg", AGGRsubquantile_avg, false, "Grouped
quantile aggregate", args(1,6,
batarg("",dbl),batargany("b",1),batarg("q",dbl),batarg("g",oid),batargany("e",2),arg("skip_nils",bit))),
command("aggr", "subquantile_avg", AGGRsubquantilecand_avg, false, "Grouped
quantile aggregate with candidate list", args(1,7,
batarg("",dbl),batargany("b",1),batarg("q",dbl),batarg("g",oid),batargany("e",2),batarg("s",oid),arg("skip_nils",bit))),
- pattern("aggr", "str_group_concat", AGGRstr_group_concat, false, "Grouped
string tail concat", args(1,4,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1))),
- pattern("aggr", "substr_group_concat", AGGRsubstr_group_concat, false,
"Grouped string concat", args(1,5,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1),arg("skip_nils",bit))),
- pattern("aggr", "substr_group_concat", AGGRsubstr_group_concatcand, false,
"Grouped string concat with candidates list", args(1,6,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
- pattern("aggr", "str_group_concat", AGGRstr_group_concat_sep, false, "Grouped
string tail concat with custom separator", args(1,5,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1))),
- pattern("aggr", "substr_group_concat", AGGRsubstr_group_concat_sep, false,
"Grouped string concat with custom separator", args(1,6,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1),arg("skip_nils",bit))),
- pattern("aggr", "substr_group_concat", AGGRsubstr_group_concatcand_sep,
false, "Grouped string concat with candidates list with custom separator",
args(1,7,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
+ command("aggr", "str_group_concat", AGGRstr_group_concat, false, "Grouped
string tail concat", args(1,4,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1))),
+ command("aggr", "substr_group_concat", AGGRsubstr_group_concat, false,
"Grouped string concat", args(1,5,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1),arg("skip_nils",bit))),
+ command("aggr", "substr_group_concat", AGGRsubstr_group_concatcand, false,
"Grouped string concat with candidates list", args(1,6,
batarg("",str),batarg("b",str),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
+ command("aggr", "str_group_concat", AGGRstr_group_concat_sep, false, "Grouped
string tail concat with custom separator", args(1,5,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1))),
+ command("aggr", "substr_group_concat", AGGRsubstr_group_concat_sep, false,
"Grouped string concat with custom separator", args(1,6,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1),arg("skip_nils",bit))),
+ command("aggr", "substr_group_concat", AGGRsubstr_group_concatcand_sep,
false, "Grouped string concat with candidates list with custom separator",
args(1,7,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
command("aggr", "subavg", AGGRavg3, false, "Grouped average aggregation",
args(3,8,
batarg("",bte),batarg("",lng),batarg("",lng),batarg("b",bte),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
command("aggr", "subavg", AGGRavg3, false, "Grouped average aggregation",
args(3,8,
batarg("",sht),batarg("",lng),batarg("",lng),batarg("b",sht),batarg("g",oid),batargany("e",1),batarg("s",oid),arg("skip_nils",bit))),
diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c
--- a/monetdb5/modules/mal/manifold.c
+++ b/monetdb5/modules/mal/manifold.c
@@ -234,7 +234,7 @@ MANIFOLDtypecheck(Client cntxt, MalBlkPt
if (pci->retc > 1 || pci->argc > 8 || getModuleId(pci) == NULL) //
limitation on MANIFOLDjob
return NULL;
// We need a private MAL context to resolve the function call
- nmb = newMalBlk(2);
+ nmb = newMalBlk(2, mb->ma);
if (nmb == NULL) {
mb->errors = createException(MAL, "mal.manifold",
SQLSTATE(HY013) MAL_MALLOC_FAIL);
return NULL;
@@ -320,7 +320,7 @@ MANIFOLDevaluate(Client cntxt, MalBlkPtr
throw(MAL, "mal.manifold", "Illegal manifold function call");
}
- mat = (MULTIarg *) GDKzalloc(sizeof(MULTIarg) * pci->argc);
+ mat = (MULTIarg *) ma_zalloc(mb->ma, sizeof(MULTIarg) * pci->argc);
if (mat == NULL)
throw(MAL, "mal.manifold", SQLSTATE(HY013) MAL_MALLOC_FAIL);
@@ -422,7 +422,7 @@ MANIFOLDevaluate(Client cntxt, MalBlkPtr
*getArgReference_bat(stk, pci, 0) = mat[0].b->batCacheid;
BBPkeepref(mat[0].b);
}
- GDKfree(mat);
+ //GDKfree(mat);
return msg;
}
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -4958,7 +4958,7 @@ SQLunionfunc(Client cntxt, MalBlkPtr mb,
int arg = pci->retc;
str mod, fcn, ret = MAL_SUCCEED;
InstrPtr npci;
- MalBlkPtr nmb = newMalBlk(1), omb = NULL;
+ MalBlkPtr nmb = newMalBlk(1, NULL), omb = NULL;
if (!nmb)
return createException(MAL, "sql.unionfunc", SQLSTATE(HY013)
MAL_MALLOC_FAIL);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]