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]

Reply via email to