Changeset: e4f07401b117 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e4f07401b117
Modified Files:
        sql/backends/monet5/sql_rank.c
        sql/backends/monet5/sql_rank.mal
        sql/server/rel_select.c
Branch: analytics
Log Message:

also pass unit information (ie for now ROWS unit only)


diffs (65 lines):

diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -307,7 +307,7 @@ SQLanalytics_args(BAT **r, BAT **b, BAT 
        *r = *b = *p = *o = NULL;
 
        (void)cntxt;
-       if (pci->argc != 7 || 
+       if (pci->argc != 8 || 
                (getArgType(mb, pci, 2) != TYPE_bit && 
getBatType(getArgType(mb, pci, 2)) != TYPE_bit) || 
                (getArgType(mb, pci, 3) != TYPE_bit && 
getBatType(getArgType(mb, pci, 3)) != TYPE_bit)){
                throw(SQL, mod, "%s", err);
@@ -349,12 +349,13 @@ SQLmin(Client cntxt, MalBlkPtr mb, MalSt
        BAT *r, *b, *p, *o;
        str res = SQLanalytics_args( &r, &b, &p, &o, cntxt, mb, stk, pci, 
"sql.min", "min(:any_1,:bit,:bit)");
        int tpe = getArgType(mb, pci, 1); 
-       int start = *getArgReference_int(stk, pci, 4);
-       int end = *getArgReference_int(stk, pci, 5);
-       int excl = *getArgReference_int(stk, pci, 6);
+       int unit = *getArgReference_int(stk, pci, 4);
+       int start = *getArgReference_int(stk, pci, 5);
+       int end = *getArgReference_int(stk, pci, 6);
+       int excl = *getArgReference_int(stk, pci, 7);
 
-       if (excl != 0)
-               throw(SQL, "sql.min", "OVER currently only supports frame 
extends with unit ROWS");
+       if (unit != 0 || excl != 0)
+               throw(SQL, "sql.min", "OVER currently only supports frame 
extends with unit ROWS (and none of the excludes)");
        (void)start;
        (void)end;
 
diff --git a/sql/backends/monet5/sql_rank.mal b/sql/backends/monet5/sql_rank.mal
--- a/sql/backends/monet5/sql_rank.mal
+++ b/sql/backends/monet5/sql_rank.mal
@@ -47,11 +47,11 @@ pattern batsql.dense_rank(b:bat[:any_1],
 address SQLdense_rank
 comment "return the densely ranked groups";
 
-pattern sql.min(b:any_1, p:bit, o:bit, s:int, e:int, excl:int) :any_1 
+pattern sql.min(b:any_1, p:bit, o:bit, unit:int, s:int, e:int, excl:int) 
:any_1 
 address SQLmin
 comment "return the minimum of groups";
 
-pattern batsql.min(b:bat[:any_1], p:any_2, o:any_3, s:int, e:int, exl:int) 
:bat[:any_1] 
+pattern batsql.min(b:bat[:any_1], p:any_2, o:any_3, unit:int, s:int, e:int, 
exl:int) :bat[:any_1] 
 address SQLmin
 comment "return the minimum of groups";
 
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -4312,11 +4312,12 @@ rel_rankop(mvc *sql, sql_rel **rel, symb
        append(args, pe);
        append(args, oe);
        if (fbe) {
-               /* for now skip unit */
+               append(args, list_fetch(fbe, 0)); /*units */
                append(args, list_fetch(fbe, 1)); /*start */
                append(args, list_fetch(fbe, 2)); /*end */
                append(args, list_fetch(fbe, 3)); /*exclude */
        } else if (aggr) {
+               append(args, exp_atom_int(sql->sa, 0)); /*ROWS */
                append(args, exp_atom_int(sql->sa, -1)); /*start */
                append(args, exp_atom_int(sql->sa, -1)); /*end */
                append(args, exp_atom_int(sql->sa, 0)); /*exclude */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to