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]