Changeset: 1fe231029127 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1fe231029127
Modified Files:
        gdk/gdk_aggr.c
Branch: arrays
Log Message:

min and max for dimension


diffs (60 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -2478,9 +2478,27 @@ BATgroupmin(BAT *b, BAT *g, BAT *e, BAT 
                              do_groupmin, "BATgroupmin");
 }
 
+static void* BATdimensionMin(BAT* b, void* aggr) {
+       BATiter bi = bat_iterator(b);
+       void *res =  BUNtail(bi, 0);
+       int len = 0;       
+       if (aggr == NULL) {
+               len = ATOMlen(BATttype(b), res);       
+               aggr = GDKmalloc(len);
+       } else {
+               len = ATOMsize(ATOMtype(BATttype(b)));
+       }
+       if (aggr != NULL)   /* else: malloc error */
+               memcpy(aggr, res, len);
+               
+       return aggr;
+}
+
 void *
 BATmin(BAT *b, void *aggr)
 {
+       if(isBATarray(b))
+               return BATdimensionMin(b, aggr);
        return BATminmax(b, aggr, do_groupmin);
 }
 
@@ -2492,9 +2510,28 @@ BATgroupmax(BAT *b, BAT *g, BAT *e, BAT 
                              do_groupmax, "BATgroupmax");
 }
 
+static void* BATdimensionMax(BAT* b, void* aggr) {
+       BATiter bi = bat_iterator(b);
+       void *res =  BUNtail(bi, BATcount(b)-2);
+       int len = 0;       
+       if (aggr == NULL) {
+               len = ATOMlen(BATttype(b), res);       
+               aggr = GDKmalloc(len);
+       } else {
+               len = ATOMsize(ATOMtype(BATttype(b)));
+       }
+       if (aggr != NULL)   /* else: malloc error */
+               memcpy(aggr, res, len);
+               
+       return aggr;
+
+}
+
 void *
 BATmax(BAT *b, void *aggr)
 {
+       if(isBATarray(b))
+               return BATdimensionMax(b, aggr);
        return BATminmax(b, aggr, do_groupmax);
 }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to