Changeset: c089122bfc3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c089122bfc3f
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
        monetdb5/mal/mal_namespace.h
        monetdb5/modules/mal/pp_algebra.c
        monetdb5/optimizer/opt_costModel.c
        sql/backends/monet5/sql_pp_statement.c
        sql/backends/monet5/sql_pp_statement.h
Branch: pp_hashjoin
Log Message:

removed 'pipeline ptr' from group.group functions and renamed them into
igroup.group to distinguish them from the "normal" group functions


diffs (195 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -47154,16 +47154,6 @@ command group.group(X_0:bat[:any_1], X_1
 GRPgroup4
 (empty)
 group
-group
-command group.group(X_0:ptr, X_1:bat[:oid], X_2:bat[:any_2], X_3:bat[:any_1]) 
(X_4:bat[:oid], X_5:bat[:any_1])
-LALGderive
-Sub Group input.
-group
-group
-command group.group(X_0:ptr, X_1:bat[:any_1]) (X_2:bat[:oid], X_3:bat[:any_1])
-LALGgroup
-Group input.
-group
 groupdone
 command group.groupdone(X_0:bat[:any_1]) (X_1:bat[:oid], X_2:bat[:oid], 
X_3:bat[:lng])
 GRPgroup1
@@ -48538,6 +48528,16 @@ sum
 command iaggr.sum(X_0:bat[:flt], X_1:bit) (X_2:flt, X_3:flt, X_4:lng)
 IALGfsum_skipnil_flt
 Return the Kahan/Neumaier summation or nil.
+igroup
+group
+command igroup.group(X_0:bat[:oid], X_1:bat[:any_2], X_2:bat[:any_1]) 
(X_3:bat[:oid], X_4:bat[:any_1])
+LALGderive
+Sub Group input.
+igroup
+group
+command igroup.group(X_0:bat[:any_1]) (X_1:bat[:oid], X_2:bat[:any_1])
+LALGgroup
+Group input.
 inet
 !=
 command inet.!=(X_0:inet, X_1:inet):bit
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -35624,16 +35624,6 @@ command group.group(X_0:bat[:any_1], X_1
 GRPgroup4
 (empty)
 group
-group
-command group.group(X_0:ptr, X_1:bat[:oid], X_2:bat[:any_2], X_3:bat[:any_1]) 
(X_4:bat[:oid], X_5:bat[:any_1])
-LALGderive
-Sub Group input.
-group
-group
-command group.group(X_0:ptr, X_1:bat[:any_1]) (X_2:bat[:oid], X_3:bat[:any_1])
-LALGgroup
-Group input.
-group
 groupdone
 command group.groupdone(X_0:bat[:any_1]) (X_1:bat[:oid], X_2:bat[:oid], 
X_3:bat[:lng])
 GRPgroup1
@@ -36743,6 +36733,16 @@ sum
 command iaggr.sum(X_0:bat[:flt], X_1:bit) (X_2:flt, X_3:flt, X_4:lng)
 IALGfsum_skipnil_flt
 Return the Kahan/Neumaier summation or nil.
+igroup
+group
+command igroup.group(X_0:bat[:oid], X_1:bat[:any_2], X_2:bat[:any_1]) 
(X_3:bat[:oid], X_4:bat[:any_1])
+LALGderive
+Sub Group input.
+igroup
+group
+command igroup.group(X_0:bat[:any_1]) (X_1:bat[:oid], X_2:bat[:any_1])
+LALGgroup
+Group input.
 inet
 !=
 command inet.!=(X_0:inet, X_1:inet):bit
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1027,6 +1027,7 @@ int hasSideEffects(MalBlkPtr mb, InstrPt
 const char hgeRef[];
 const char identityRef[];
 const char ifthenelseRef[];
+const char igroupRef[];
 const char importColumnRef[];
 const char importNulTerminatedRef[];
 const char importRawRef[];
diff --git a/monetdb5/mal/mal_namespace.h b/monetdb5/mal/mal_namespace.h
--- a/monetdb5/mal/mal_namespace.h
+++ b/monetdb5/mal/mal_namespace.h
@@ -122,6 +122,7 @@
        FUNC(hge); \
        FUNC(identity); \
        FUNC(ifthenelse); \
+       FUNC(igroup); \
        FUNC(importColumn); \
        FUNC(importNulTerminated); \
        FUNC(importRaw); \
diff --git a/monetdb5/modules/mal/pp_algebra.c 
b/monetdb5/modules/mal/pp_algebra.c
--- a/monetdb5/modules/mal/pp_algebra.c
+++ b/monetdb5/modules/mal/pp_algebra.c
@@ -1613,10 +1613,10 @@ LALGgroup_unique(Client ctx, bat *rid, b
                ) \
 
 static str
-LALGgroup(Client ctx, bat *rid, bat *uid, const ptr *H, bat *bid/*, bat *sid*/)
+LALGgroup(Client ctx, bat *rid, bat *uid, bat *bid/*, bat *sid*/)
 {
        (void)ctx;
-       Pipeline *p = (Pipeline*)*H;
+       Pipeline *p = pipeline_get_thread_private_pipeline();
        /* private or not */
        bool private = (!*uid || is_bat_nil(*uid)), local_storage = false;
        str err = NULL;
@@ -1898,10 +1898,10 @@ LALGgroup(Client ctx, bat *rid, bat *uid
 
 
 static str
-LALGderive(Client ctx, bat *rid, bat *uid, const ptr *H, bat *Gid, bat *Ph, 
bat *bid /*, bat *sid*/)
+LALGderive(Client ctx, bat *rid, bat *uid, bat *Gid, bat *Ph, bat *bid /*, bat 
*sid*/)
 {
        (void)ctx;
-       Pipeline *p = (Pipeline*)*H;
+       Pipeline *p = pipeline_get_thread_private_pipeline();
        bool private = (!*uid || is_bat_nil(*uid)), local_storage = false;
        str err = NULL;
        BAT *u = NULL;
@@ -4914,8 +4914,8 @@ IALGfsum(Client ctx, dbl *result, dbl *c
 
 #include "mel.h"
 static mel_func pp_algebra_init_funcs[] = {
- command("group", "group", LALGgroup,  false, "Group input.",     args(2,4, 
batarg("gid", oid), batargany("sink",1), arg("pipeline", ptr), 
batargany("b",1))),
- command("group", "group", LALGderive, false, "Sub Group input.", args(2,6, 
batarg("gid", oid), batargany("sink",1), arg("pipeline", ptr), batarg("pgid", 
oid), batargany("phash", 2), batargany("b",1))),
+ command("igroup", "group", LALGgroup,  false, "Group input.",     args(2,3, 
batarg("gid", oid), batargany("sink",1), batargany("b",1))),
+ command("igroup", "group", LALGderive, false, "Sub Group input.", args(2,5, 
batarg("gid", oid), batargany("sink",1), batarg("pgid", oid), 
batargany("phash", 2), batargany("b",1))),
 
  pattern("algebra", "project",    LALGconstant, false, "Project a single 
value", args(1,4, batargany("",1), batarg("gid", oid), argany("val",1), 
arg("pipeline", ptr))),
  command("algebra", "projection", LALGproject,  false, "Project.",             
  args(1,4, batargany("",1), batarg("gid", oid), batargany("b",1), 
arg("pipeline", ptr))),
diff --git a/monetdb5/optimizer/opt_costModel.c 
b/monetdb5/optimizer/opt_costModel.c
--- a/monetdb5/optimizer/opt_costModel.c
+++ b/monetdb5/optimizer/opt_costModel.c
@@ -119,7 +119,7 @@ OPTcostModelImplementation(Client cntxt,
                                        newRows(1, 1, (c1 <= 1 ? 1 : c1 - 1), 
1);
                                }
                        }
-               } else if (getModuleId(p) == groupRef) {
+               } else if (getModuleId(p) == groupRef || getModuleId(p) == 
igroupRef) {
                        if (getFunctionId(p) == subgroupRef || getFunctionId(p) 
== groupRef) {
                                newRows(1, 1, (c1 / 10 + 1), 0);
                        } else {
diff --git a/sql/backends/monet5/sql_pp_statement.c 
b/sql/backends/monet5/sql_pp_statement.c
--- a/sql/backends/monet5/sql_pp_statement.c
+++ b/sql/backends/monet5/sql_pp_statement.c
@@ -193,7 +193,7 @@ stmt_pp_aggr(backend *be, stmt *op1, stm
 }
 
 stmt *
-stmt_group_locked(backend *be, stmt *s, stmt *grp, stmt *ext, stmt *cnt, stmt 
*pp)
+stmt_group_locked(backend *be, stmt *s, stmt *grp, stmt *ext, stmt *cnt)
 {
        MalBlkPtr mb = be->mb;
        InstrPtr q = NULL;
@@ -209,7 +209,6 @@ stmt_group_locked(backend *be, stmt *s, 
 
        /* output variables extent */
        q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-       q = pushArgument(mb, q, getArg(pp->q, 2));
        if (grp)
                q = pushArgument(mb, q, grp->nr);
        q = pushArgument(mb, q, s->nr);
@@ -249,13 +248,12 @@ stmt_group_partitioned(backend *be, stmt
        if (grp && (grp->nr < 0 || ext->nr < 0 || (cnt && cnt->nr < 0)))
                return NULL;
 
-       q = newStmt(mb, groupRef, groupRef);
+       q = newStmt(mb, igroupRef, groupRef);
        if(!q)
                return NULL;
 
        /* output variables extent and hist */
        q = pushReturn(mb, q, newTmpVariable(mb, newBatType(tt)));
-       q = pushArgument(mb, q, be->pipeline);
        if (grp) {
                q = pushArgument(mb, q, grp->nr);
                q = pushArgument(mb, q, ext->nr); /* needed for parent hash 
pointer */
diff --git a/sql/backends/monet5/sql_pp_statement.h 
b/sql/backends/monet5/sql_pp_statement.h
--- a/sql/backends/monet5/sql_pp_statement.h
+++ b/sql/backends/monet5/sql_pp_statement.h
@@ -39,7 +39,7 @@ extern InstrPtr stmt_sop_new(backend *be
 
 extern stmt *stmt_pp_aggr(backend *be, stmt *op1, stmt *grp, stmt *ext, 
sql_subfunc *op, int reduce, int no_nil, int nil_if_empty);
 
-extern stmt *stmt_group_locked(backend *be, stmt *op1, stmt *grp, stmt *ext, 
stmt *cnt, stmt *pp);
+extern stmt *stmt_group_locked(backend *be, stmt *op1, stmt *grp, stmt *ext, 
stmt *cnt);
 extern stmt *stmt_group_partitioned(backend *be, stmt *op1, stmt *grp, stmt 
*ext, stmt *cnt);
 
 extern stmt *stmt_limit_partitioned(backend *sa, stmt *c, stmt *piv, stmt 
*gid, stmt *offset, stmt *limit);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to