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]

Reply via email to