Changeset: 09026f8fed39 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/09026f8fed39
Modified Files:
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        monetdb5/modules/mal/heapn.c
        sql/backends/monet5/rel_pptopn.c
Branch: pp_hashjoin
Log Message:

removed 'pipeline ptr' from heapn functions


diffs (174 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
@@ -47405,17 +47405,17 @@ HEAPorder2
 Order.
 heapn
 projection
-command heapn.projection(X_0:bat[:oid], X_1:bat[:oid], X_2:bat[:any_1], 
X_3:ptr):bat[:any_1]
+command heapn.projection(X_0:bat[:oid], X_1:bat[:oid], 
X_2:bat[:any_1]):bat[:any_1]
 HEAPproject
 Project.
 heapn
 topn
-pattern heapn.topn(X_0:lng, X_1:ptr) (X_2:bat[:oid], X_3:bat[:oid], 
X_4:bat[:oid])
+pattern heapn.topn(X_0:lng) (X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid])
 HEAPtopn
 Return table with heap based topn, and positions and candidate for any 
projections (without order by, with groups)
 heapn
 topn
-pattern heapn.topn(X_0:lng, X_1:ptr, X_2:any...) (X_3:bat[:oid], 
X_4:bat[:oid], X_5:bat[:any]...)
+pattern heapn.topn(X_0:lng, X_1:any...) (X_2:bat[:oid], X_3:bat[:oid], 
X_4:bat[:any]...)
 HEAPtopn
 Return table with heap based topn, and positions and candidate for any 
projections
 iaggr
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
@@ -35800,17 +35800,17 @@ HEAPorder2
 Order.
 heapn
 projection
-command heapn.projection(X_0:bat[:oid], X_1:bat[:oid], X_2:bat[:any_1], 
X_3:ptr):bat[:any_1]
+command heapn.projection(X_0:bat[:oid], X_1:bat[:oid], 
X_2:bat[:any_1]):bat[:any_1]
 HEAPproject
 Project.
 heapn
 topn
-pattern heapn.topn(X_0:lng, X_1:ptr) (X_2:bat[:oid], X_3:bat[:oid], 
X_4:bat[:oid])
+pattern heapn.topn(X_0:lng) (X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid])
 HEAPtopn
 Return table with heap based topn, and positions and candidate for any 
projections (without order by, with groups)
 heapn
 topn
-pattern heapn.topn(X_0:lng, X_1:ptr, X_2:any...) (X_3:bat[:oid], 
X_4:bat[:oid], X_5:bat[:any]...)
+pattern heapn.topn(X_0:lng, X_1:any...) (X_2:bat[:oid], X_3:bat[:oid], 
X_4:bat[:any]...)
 HEAPtopn
 Return table with heap based topn, and positions and candidate for any 
projections
 iaggr
diff --git a/monetdb5/modules/mal/heapn.c b/monetdb5/modules/mal/heapn.c
--- a/monetdb5/modules/mal/heapn.c
+++ b/monetdb5/modules/mal/heapn.c
@@ -1300,10 +1300,10 @@ extern void BATswap_heaps(BAT *u, BAT *b
        }
 
 static str
-HEAPproject(Client ctx, bat *rid, bat *pos, bat *sel, bat *in, const ptr *H)
+HEAPproject(Client ctx, bat *rid, bat *pos, bat *sel, bat *in)
 {
        (void)ctx;
-       Pipeline *p = (Pipeline*)*H; /* last arg should move to first argument 
.. */
+       Pipeline *p = pipeline_get_thread_private_pipeline(); /* last arg 
should move to first argument .. */
        BAT *r = NULL, *P = BATdescriptor(*pos), *S = BATdescriptor(*sel), *b = 
BATdescriptor(*in);
        int err = 0;
     char *errmsg = NULL;
@@ -1468,10 +1468,10 @@ HEAPtopn(Client cntxt, MalBlkPtr m, MalS
 {
        (void)cntxt; (void)m;
 
-       bool grouped = ((pci->argc - 5)%4);
+       bool grouped = ((pci->argc - 4)%4);
        int retc = 0;
-       int nr_cols = (pci->argc - (grouped?2:0) - 5)/4;
-       assert((nr_cols * 4 + (grouped?2:0) + 5) == pci->argc);
+       int nr_cols = (pci->argc - (grouped?2:0) - 4)/4;
+       assert((nr_cols * 4 + (grouped?2:0) + 4) == pci->argc);
        bat *pos = getArgReference_bat(s, pci, retc++);
        bat *sel = getArgReference_bat(s, pci, retc++);
        bat *rgrp = (grouped)?getArgReference_bat(s, pci, retc++):NULL;
@@ -1481,8 +1481,8 @@ HEAPtopn(Client cntxt, MalBlkPtr m, MalS
 
        assert(retc + nr_cols + 1 == pci->retc);
        lng n = *getArgReference_lng(s, pci, pci->retc + 0);
-       Pipeline *pp = *(Pipeline**)getArgReference_ptr(s, pci, pci->retc + 1);
-       int args = pci->retc + 2 + (grouped?1:0);
+       Pipeline *pp = pipeline_get_thread_private_pipeline();
+       int args = pci->retc + 1 + (grouped?1:0);
        bat *in = nr_cols?getArgReference_bat(s, pci, args++) : NULL;
        BAT *hps, *b = nr_cols?BATdescriptor(*in):NULL;
        BAT *gps = NULL;
@@ -1490,7 +1490,7 @@ HEAPtopn(Client cntxt, MalBlkPtr m, MalS
        if (nr_cols && !b)
                return createException(SQL, "heapn.topn",  SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
        if (grouped) {
-               bat *in = getArgReference_bat(s, pci, pci->retc + 2);
+               bat *in = getArgReference_bat(s, pci, pci->retc + 1);
                gps = BATdescriptor(*in);
                if (!gps) {
                        BBPreclaim(b);
@@ -1608,7 +1608,7 @@ HEAPtopn(Client cntxt, MalBlkPtr m, MalS
        oid *p = Tloc(P, 0);
        oid *sl = Tloc(S, 0);
        subheap *nsh = NULL;
-       int cur = pci->retc+2+ (hp->grouped?1:0) + 3, err = 0;
+       int cur = pci->retc+1+ (hp->grouped?1:0) + 3, err = 0;
        if (sh) {
                for(nsh = sh->sub; cur < pci->argc; nsh = nsh->sub, cur += 3) {
                        bat *in = getArgReference_bat(s, pci, cur);
@@ -1966,34 +1966,31 @@ static mel_func heapn_init_funcs[] = {
                                */
                                )
                   ),
-       pattern("heapn", "topn", HEAPtopn, false, "Return table with heap based 
topn, and positions and candidate for any projections (without order by, with 
groups)", args(3,5,
+       pattern("heapn", "topn", HEAPtopn, false, "Return table with heap based 
topn, and positions and candidate for any projections (without order by, with 
groups)", args(3,4,
                                batarg("pos", oid),
                                batarg("sel", oid),
                                /*sharedbatarg("rgrp", oid),*/
                                sharedbatarg("heap", oid),
-                               arg("n",lng),
-                               arg("pipeline", ptr)
+                               arg("n",lng)
                                )
                        ),
-       pattern("heapn", "topn", HEAPtopn, false, "Return table with heap based 
topn, and positions and candidate for any projections", args(3,6,
+       pattern("heapn", "topn", HEAPtopn, false, "Return table with heap based 
topn, and positions and candidate for any projections", args(3,5,
                                batarg("pos", oid),
                                batarg("sel", oid),
                                sharedbatvararg("res", any),
                                //sharedbatarg("heap", oid),
                                arg("n",lng),
-                               arg("pipeline", ptr),
                                vararg("in", any)/*,
                                vararg("min", bit),
                                vararg("nulls_last", bit)
                                */
                                )
                        ),
-       command("heapn", "projection", HEAPproject, false, "Project.", args(1,5,
+       command("heapn", "projection", HEAPproject, false, "Project.", args(1,4,
                                batargany("",1),
                                batarg("pos", oid),
                                batarg("sel", oid),
-                               batargany("b",1),
-                               arg("pipeline", ptr)
+                               batargany("b",1)
                                )
                        ),
        command("heapn", "order", HEAPorder1, false, "Order.", args(1,2,
diff --git a/sql/backends/monet5/rel_pptopn.c b/sql/backends/monet5/rel_pptopn.c
--- a/sql/backends/monet5/rel_pptopn.c
+++ b/sql/backends/monet5/rel_pptopn.c
@@ -46,7 +46,6 @@ stmt_heapn_projection(backend *be, int p
        q = pushArgument(be->mb, q, pos);
        q = pushArgument(be->mb, q, sel);
        q = pushArgument(be->mb, q, c->nr);
-       q = pushArgument(be->mb, q, be->pipeline);
        pushInstruction(be->mb, q);
 
        if (q) {
@@ -381,7 +380,6 @@ rel2bin_ordered_topn(backend *be, sql_re
                q = pushReturn(be->mb, q, heap = newTmpVariable(be->mb, 
oidbat)); /* heapn bat */
                q->inout = 2;
                q = pushArgument(be->mb, q, all->nr);
-               q = pushArgument(be->mb, q, getArg(pp->q, 2));
 
                if (grouped)
                        q = pushArgument(be->mb, q, gids);
@@ -459,7 +457,6 @@ rel2bin_ordered_topn(backend *be, sql_re
        q = pushReturn(be->mb, q, heap);
        q->inout = 2;
        q = pushArgument(be->mb, q, all->nr);
-       q = pushArgument(be->mb, q, getArg(pp->q, 2));
        n = osl->h;
        if (grouped) {
                stmt *s = n->data;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to