Changeset: 4403095b33e8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4403095b33e8
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
monetdb5/modules/kernel/pp_aggr.c
monetdb5/modules/mal/pp_algebra.c
sql/backends/monet5/bin_partition_by_slice.c
Branch: pp_hashjoin
Log Message:
removed the 'pipeline ptr' parameter from some aggr functions
diffs (truncated from 422 to 300 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
@@ -48110,67 +48110,67 @@ MALpipelines
The current guarded block in Parallel Pipelines
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:any_1, X_2:lng) (X_3:bat[:any_1],
X_4:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:any_1, X_1:lng) (X_2:bat[:any_1],
X_3:bat[:lng])
LOCKEDAGGRavg
avg values into bat (bat has value, update), using the bat lock
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:any_1, X_2:lng, X_3:lng)
(X_4:bat[:any_1], X_5:bat[:lng], X_6:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:any_1, X_1:lng, X_2:lng) (X_3:bat[:any_1],
X_4:bat[:lng], X_5:bat[:lng])
LOCKEDAGGRavg
avg values into bat (bat has value, update), using the bat lock
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:dbl, X_2:dbl, X_3:lng)
(X_4:bat[:dbl], X_5:bat[:dbl], X_6:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:dbl, X_1:dbl, X_2:lng) (X_3:bat[:dbl],
X_4:bat[:dbl], X_5:bat[:lng])
LOCKEDAGGRavg
Kahan/neumaier summation, using the bat lock
lockedaggr
max
-unsafe pattern lockedaggr.max(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.max(X_0:any_1):bat[:any_1]
LOCKEDAGGRmax
max values into bat (bat has value, update), using the bat lock
lockedaggr
min
-unsafe pattern lockedaggr.min(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.min(X_0:any_1):bat[:any_1]
LOCKEDAGGRmin
min values into bat (bat has value, update), using the bat lock
lockedaggr
null
-unsafe command lockedaggr.null(X_0:ptr, X_1:bit):bat[:bit]
+unsafe command lockedaggr.null(X_0:bit):bat[:bit]
LOCKEDAGGRnull
Returns true or false if the input contains a NULL or not, nil if the input is
empty..
lockedaggr
prod
-unsafe pattern lockedaggr.prod(X_0:ptr, X_1:any_2):bat[:any_1]
+unsafe pattern lockedaggr.prod(X_0:any_2):bat[:any_1]
LOCKEDAGGRprod
product of all values, using the bat lock
lockedaggr
sum
-command lockedaggr.sum(X_0:ptr, X_1:bat[:hge], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:hge]
+command lockedaggr.sum(X_0:bat[:hge], X_1:bat[:oid], X_2:bat[:any_1]):bat[:hge]
LAGGRsum3_hge
Grouped tail sum on hge
lockedaggr
sum
-command lockedaggr.sum(X_0:ptr, X_1:bat[:lng], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:lng]
+command lockedaggr.sum(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]):bat[:lng]
LAGGRsum3_lng
Grouped tail sum on lng
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:dbl, X_2:dbl, X_3:lng)
(X_4:bat[:dbl], X_5:bat[:dbl], X_6:bat[:lng])
+unsafe pattern lockedaggr.sum(X_0:dbl, X_1:dbl, X_2:lng) (X_3:bat[:dbl],
X_4:bat[:dbl], X_5:bat[:lng])
LOCKEDAGGRsum
Kahan/neumaier summation, using the bat lock
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:flt, X_2:flt, X_3:lng)
(X_4:bat[:flt], X_5:bat[:flt], X_6:bat[:lng])
+unsafe pattern lockedaggr.sum(X_0:flt, X_1:flt, X_2:lng) (X_3:bat[:flt],
X_4:bat[:flt], X_5:bat[:lng])
LOCKEDAGGRsum
Kahan/neumaier summation, using the bat lock
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.sum(X_0:any_1):bat[:any_1]
LOCKEDAGGRsum1
sum values into bat (bat has value, update), using the bat lock
lockedaggr
sum_no_nil
-unsafe pattern lockedaggr.sum_no_nil(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.sum_no_nil(X_0:any_1):bat[:any_1]
LOCKEDAGGRsum_no_nil1
sum values into bat (bat has value, update), using the bat lock
lockedalgebra
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
@@ -36495,57 +36495,57 @@ MALpipelines
The current guarded block in Parallel Pipelines
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:any_1, X_2:lng) (X_3:bat[:any_1],
X_4:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:any_1, X_1:lng) (X_2:bat[:any_1],
X_3:bat[:lng])
LOCKEDAGGRavg
avg values into bat (bat has value, update), using the bat lock
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:any_1, X_2:lng, X_3:lng)
(X_4:bat[:any_1], X_5:bat[:lng], X_6:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:any_1, X_1:lng, X_2:lng) (X_3:bat[:any_1],
X_4:bat[:lng], X_5:bat[:lng])
LOCKEDAGGRavg
avg values into bat (bat has value, update), using the bat lock
lockedaggr
avg
-unsafe pattern lockedaggr.avg(X_0:ptr, X_1:dbl, X_2:dbl, X_3:lng)
(X_4:bat[:dbl], X_5:bat[:dbl], X_6:bat[:lng])
+unsafe pattern lockedaggr.avg(X_0:dbl, X_1:dbl, X_2:lng) (X_3:bat[:dbl],
X_4:bat[:dbl], X_5:bat[:lng])
LOCKEDAGGRavg
Kahan/neumaier summation, using the bat lock
lockedaggr
max
-unsafe pattern lockedaggr.max(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.max(X_0:any_1):bat[:any_1]
LOCKEDAGGRmax
max values into bat (bat has value, update), using the bat lock
lockedaggr
min
-unsafe pattern lockedaggr.min(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.min(X_0:any_1):bat[:any_1]
LOCKEDAGGRmin
min values into bat (bat has value, update), using the bat lock
lockedaggr
null
-unsafe command lockedaggr.null(X_0:ptr, X_1:bit):bat[:bit]
+unsafe command lockedaggr.null(X_0:bit):bat[:bit]
LOCKEDAGGRnull
Returns true or false if the input contains a NULL or not, nil if the input is
empty..
lockedaggr
prod
-unsafe pattern lockedaggr.prod(X_0:ptr, X_1:any_2):bat[:any_1]
+unsafe pattern lockedaggr.prod(X_0:any_2):bat[:any_1]
LOCKEDAGGRprod
product of all values, using the bat lock
lockedaggr
sum
-command lockedaggr.sum(X_0:ptr, X_1:bat[:lng], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:lng]
+command lockedaggr.sum(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]):bat[:lng]
LAGGRsum3_lng
Grouped tail sum on lng
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:dbl, X_2:dbl, X_3:lng)
(X_4:bat[:dbl], X_5:bat[:dbl], X_6:bat[:lng])
+unsafe pattern lockedaggr.sum(X_0:dbl, X_1:dbl, X_2:lng) (X_3:bat[:dbl],
X_4:bat[:dbl], X_5:bat[:lng])
LOCKEDAGGRsum
Kahan/neumaier summation, using the bat lock
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:flt, X_2:flt, X_3:lng)
(X_4:bat[:flt], X_5:bat[:flt], X_6:bat[:lng])
+unsafe pattern lockedaggr.sum(X_0:flt, X_1:flt, X_2:lng) (X_3:bat[:flt],
X_4:bat[:flt], X_5:bat[:lng])
LOCKEDAGGRsum
Kahan/neumaier summation, using the bat lock
lockedaggr
sum
-unsafe pattern lockedaggr.sum(X_0:ptr, X_1:any_1):bat[:any_1]
+unsafe pattern lockedaggr.sum(X_0:any_1):bat[:any_1]
LOCKEDAGGRsum1
sum values into bat (bat has value, update), using the bat lock
lockedalgebra
diff --git a/monetdb5/modules/kernel/pp_aggr.c
b/monetdb5/modules/kernel/pp_aggr.c
--- a/monetdb5/modules/kernel/pp_aggr.c
+++ b/monetdb5/modules/kernel/pp_aggr.c
@@ -13,11 +13,12 @@
#include "mal_exception.h"
#include "mal_pipelines.h"
#include "aggr.h"
+#include "pipeline.h"
static str
-LAGGRsum3_lng(Client ctx, bat *retval, const ptr *h, const bat *bid, const bat
*gid, const bat *eid)
+LAGGRsum3_lng(Client ctx, bat *retval, const bat *bid, const bat *gid, const
bat *eid)
{
- Pipeline *p = (Pipeline*)*h;
+ Pipeline *p = pipeline_get_thread_private_pipeline();
str res;
MT_lock_set(&p->p->l);
@@ -28,9 +29,9 @@ LAGGRsum3_lng(Client ctx, bat *retval, c
#ifdef HAVE_HGE
static str
-LAGGRsum3_hge(Client ctx, bat *retval, const ptr *h, const bat *bid, const bat
*gid, const bat *eid)
+LAGGRsum3_hge(Client ctx, bat *retval, const bat *bid, const bat *gid, const
bat *eid)
{
- Pipeline *p = (Pipeline*)*h;
+ Pipeline *p = pipeline_get_thread_private_pipeline();
str res;
MT_lock_set(&p->p->l);
@@ -42,9 +43,9 @@ LAGGRsum3_hge(Client ctx, bat *retval, c
#include "mel.h"
mel_func pp_aggr_init_funcs[] = {
- command("lockedaggr", "sum", LAGGRsum3_lng, false, "Grouped tail sum on lng",
args(1,5, batarg("",lng),arg("pipeline",
ptr),batarg("b",lng),batarg("g",oid),batargany("e",1))),
+ command("lockedaggr", "sum", LAGGRsum3_lng, false, "Grouped tail sum on lng",
args(1,4, batarg("",lng),batarg("b",lng),batarg("g",oid),batargany("e",1))),
#ifdef HAVE_HGE
- command("lockedaggr", "sum", LAGGRsum3_hge, false, "Grouped tail sum on hge",
args(1,5, batarg("",hge),arg("pipeline",
ptr),batarg("b",hge),batarg("g",oid),batargany("e",1))),
+ command("lockedaggr", "sum", LAGGRsum3_hge, false, "Grouped tail sum on hge",
args(1,4, batarg("",hge),batarg("b",hge),batarg("g",oid),batargany("e",1))),
#endif
{ .imp=NULL }
};
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
@@ -36,7 +36,7 @@
#define aggr(T,f)
\
if (type == TYPE_##T) {
\
- T val = *getArgReference_##T(stk, pci, 2);
\
+ T val = *getArgReference_##T(stk, pci, 1);
\
if (!is_##T##_nil(val) && BATcount(b)) {
\
T *t = Tloc(b, 0);
\
if (is_##T##_nil(t[0])) {
\
@@ -58,7 +58,7 @@
#define faggr(T,f)
\
if (type == TYPE_##T) {
\
- T val = *getArgReference_TYPE(stk, pci, 2, T);
\
+ T val = *getArgReference_TYPE(stk, pci, 1, T);
\
int (*cmp)(const void *v1,const void *v2) = ATOMcompare(type);
\
if (!is_##T##_nil(val) && BATcount(b)) {
\
T *t = Tloc(b, 0);
\
@@ -83,8 +83,8 @@ static str
LOCKEDAGGRsum1_(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, bool
no_nil)
{
bat *res = getArgReference_bat(stk, pci, 0);
- Pipeline *p = (Pipeline*)*getArgReference_ptr(stk, pci, 1);
- int type = getArgType(mb, pci, 2);
+ int type = getArgType(mb, pci, 1);
+ Pipeline *p = pipeline_get_thread_private_pipeline();
str err = NULL;
if (
@@ -160,7 +160,7 @@ LOCKEDAGGRsum_no_nil1(Client cntxt, MalB
#define paggr(T,OT,f)
\
if (type == TYPE_##T && b->ttype == TYPE_##OT) {
\
- T val = *getArgReference_##T(stk, pci, 2);
\
+ T val = *getArgReference_##T(stk, pci, 1);
\
if (!is_##T##_nil(val) && BATcount(b)) {
\
OT *t = Tloc(b, 0);
\
if (is_##OT##_nil(t[0])) {
\
@@ -183,8 +183,8 @@ static str
LOCKEDAGGRprod(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
bat *res = getArgReference_bat(stk, pci, 0);
- Pipeline *p = (Pipeline*)*getArgReference_ptr(stk, pci, 1);
- int type = getArgType(mb, pci, 2);
+ int type = getArgType(mb, pci, 1);
+ Pipeline *p = pipeline_get_thread_private_pipeline();
str err = NULL;
if (
@@ -239,8 +239,8 @@ LOCKEDAGGRprod(Client cntxt, MalBlkPtr m
#define avg_aggr(T)
\
if (type == TYPE_##T) {
\
- T val = *getArgReference_##T(stk, pci, pci->retc + 1);
\
- lng cnt = *getArgReference_lng(stk, pci, pci->retc + 2);
\
+ T val = *getArgReference_##T(stk, pci, pci->retc);
\
+ lng cnt = *getArgReference_lng(stk, pci, pci->retc + 1);
\
if (cnt > 0 && !is_##T##_nil(val) && BATcount(b)) {
\
T *t = Tloc(b, 0);
\
lng *tcnt = Tloc(c, 0);
\
@@ -482,9 +482,9 @@ mulmod(lng a, lng b, lng c)
#define avg_aggr_acc(T)
\
do {
\
- T a1 = *getArgReference_##T(stk, pci, pci->retc + 1);
\
- lng r1 = *getArgReference_lng(stk, pci, pci->retc + 2);
\
- lng n1 = *getArgReference_lng(stk, pci, pci->retc + 3);
\
+ T a1 = *getArgReference_##T(stk, pci, pci->retc);
\
+ lng r1 = *getArgReference_lng(stk, pci, pci->retc + 1);
\
+ lng n1 = *getArgReference_lng(stk, pci, pci->retc + 2);
\
T a2 = *(T*)Tloc(b, 0);
\
lng r2 = *(lng*)Tloc(r, 0);
\
lng n2 = *(lng*)Tloc(c, 0);
\
@@ -542,8 +542,8 @@ LOCKEDAGGRsum_avg(Client cntxt, MalBlkPt
bat *res = getArgReference_bat(stk, pci, 0);
bat *rcnt = getArgReference_bat(stk, pci, pci->retc - 1);
bat *rrem = pci->retc == 3 ? getArgReference_bat(stk, pci, 1) : NULL;
- Pipeline *p = (Pipeline*)*getArgReference_ptr(stk, pci, pci->retc);
- int type = getArgType(mb, pci, pci->retc + 1);
+ int type = getArgType(mb, pci, pci->retc);
+ Pipeline *p = pipeline_get_thread_private_pipeline();
str err = NULL;
BAT *b = NULL, *c = NULL, *r = NULL;
@@ -592,9 +592,9 @@ LOCKEDAGGRsum_avg(Client cntxt, MalBlkPt
#endif
case TYPE_flt: {
int overflow = 0;
- flt a1 = *getArgReference_flt(stk, pci,
pci->retc + 1);
- flt r1 = *getArgReference_flt(stk, pci,
pci->retc + 2);
- lng n1 = *getArgReference_lng(stk, pci,
pci->retc + 3);
+ flt a1 = *getArgReference_flt(stk, pci,
pci->retc);
+ flt r1 = *getArgReference_flt(stk, pci,
pci->retc + 1);
+ lng n1 = *getArgReference_lng(stk, pci,
pci->retc + 2);
flt a2 = *(flt*)Tloc(b, 0);
flt r2 = *(flt*)Tloc(r, 0);
lng n2 = *(lng*)Tloc(c, 0);
@@ -610,9 +610,9 @@ LOCKEDAGGRsum_avg(Client cntxt, MalBlkPt
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]