Changeset: b2699e9f1e17 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b2699e9f1e17
Modified Files:
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_group.c
        gdk/gdk_join.c
        gdk/gdk_select.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/group.c
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/tablet.c
        sql/backends/monet5/sql_result.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/res_table.c
Branch: arrays
Log Message:

cleaning previous implementation


diffs (truncated from 416 to 300 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -964,10 +964,6 @@ typedef int (*GDKfcn) ();
 #define batMaphheap    S->map_hheap
 #define batMaptheap    S->map_theap
 
-#define batArray S->array
-#define BATsetArray(X, n) X->batArray=n
-#define isBATarray(X) X->batArray>0
-
 /*
  * @- Heap Management
  * Heaps are the low-level entities of mass storage in
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -73,7 +73,7 @@ BATgroupaggrinit(BAT *b, BAT *g, BAT *e,
 
        if (b == NULL || !BAThdense(b))
                return "b must be dense-headed";
-       if (g && !isBATarray(g)) {
+       if (g) {
                if (!BAThdense(g) || BATcount(b) != BATcount(g) ||
                    (BATcount(b) != 0 && b->hseqbase != g->hseqbase))
                        return "b and g must be aligned";
@@ -1426,9 +1426,6 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
        const oid *cand = NULL, *candend = NULL;
        const char *err;
 
-       if(isBATarray(g))
-               return dimensionBATgroupavg(bnp, cntsp, b, g, e, s, tp, 
skip_nils, abort_on_error);
-
        assert(tp == TYPE_dbl);
        (void) tp;              /* compatibility (with other BATgroup*
                                 * functions) argument */
@@ -2454,8 +2451,6 @@ static void* BATdimensionMin(BAT* b, voi
 void *
 BATmin(BAT *b, void *aggr)
 {
-       if(isBATarray(b))
-               return BATdimensionMin(b, aggr);
        return BATminmax(b, aggr, do_groupmin);
 }
 
@@ -2487,8 +2482,6 @@ static void* BATdimensionMax(BAT* b, voi
 void *
 BATmax(BAT *b, void *aggr)
 {
-       if(isBATarray(b))
-               return BATdimensionMax(b, aggr);
        return BATminmax(b, aggr, do_groupmax);
 }
 
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1702,9 +1702,6 @@ void_replace_bat(BAT *b, BAT *p, BAT *u,
        BATiter uii = bat_iterator(p);
        BATiter uvi = bat_iterator(u);
 
-       if(isBATarray(u))
-               return dimension_void_replace_bat(b, p, u, force);
-
        BATloop(u, r, s) {
                oid updid = *(oid *) BUNtail(uii, r);
                const void *val = BUNtail(uvi, r);
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1765,10 +1765,7 @@ BATconst(BAT *b, int tailtype, const voi
        BUN batSize;
 
        BATcheck(b, "BATconst", NULL);
-       if(b->batArray)
-               batSize = dimensionBATsize(b);
-       else            
-               batSize = BATcount(b);
+       batSize = BATcount(b);
        bn = BATconstant(tailtype, v, batSize, role);
 
        if (bn == NULL)
diff --git a/gdk/gdk_group.c b/gdk/gdk_group.c
--- a/gdk/gdk_group.c
+++ b/gdk/gdk_group.c
@@ -393,7 +393,7 @@ BATgroup_internal(BAT **groups, BAT **ex
                GDKerror("BATgroup_internal: g tail not of type oid\n");
                return GDK_FAIL;
        }
-       if(g && BATcount(b) != BATcount(g) && !isBATarray(b)) {
+       if(g && BATcount(b) != BATcount(g)) {
                GDKerror("BATgroup_internal: g and b have different size\n");
                return GDK_FAIL;
        }
@@ -991,7 +991,5 @@ gdk_return
 BATgroup(BAT **groups, BAT **extents, BAT **histo,
         BAT *b, BAT *g, BAT *e, BAT *h)
 {
-       if(isBATarray(b))
-               return dimensionBATgroup(groups, extents, histo, b, g, e, h);
        return BATgroup_internal(groups, extents, histo, b, g, e, h, 0);
 }
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2892,12 +2892,6 @@ BATsubjoin(BAT **r1p, BAT **r2p, BAT *l,
                *r2p = r2;
                return GDK_SUCCEED;
        }
-       if(isBATarray(l) && isBATarray(r))
-               return dimensionBATsubjoin(r1p, r2p, l, r, sl, sr, nil_matches, 
estimate);
-       if(isBATarray(l) || isBATarray(r)) {
-               GDKerror("BATsubjoin: One of the BATs is an array and the othes 
is not. Case not handled");
-               return GDK_FAIL;
-       }
 
        if (joininitresults(&r1, &r2, estimate != BUN_NONE ? estimate : sl ? 
BATcount(sl) : BATcount(l), "BATsubjoin") != GDK_SUCCEED)
                return GDK_FAIL;
@@ -3234,16 +3228,7 @@ BATproject(BAT *l, BAT *r)
        assert(BAThdense(l));
        assert(BAThdense(r));
        assert(ATOMtype(l->ttype) == TYPE_oid);
-#if 0
-       if(isBATarray(r)) {
-               if(dimensionBATproject(&bn, l, r) != GDK_SUCCEED)
-                       return NULL;
-               if(bn)
-                       return bn;
-               //otherwise it is cannot be expressed as an array and we 
proceed as if it is any other BAT
-               r = materialiseDimensionBAT(r);
-       }
-#endif
+
        if (BATtdense(l) && BATcount(l) > 0) {
                lo = l->tseqbase;
                hi = l->tseqbase + BATcount(l);
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1234,13 +1234,6 @@ BATsubselect(BAT *b, BAT *s, const void 
                return NULL;
        }
 
-       if(isBATarray(b)) {
-               BAT *resBAT = NULL;
-               if(dimensionBATsubselect(&resBAT, b, s, tl, th, li, hi, anti) 
== GDK_SUCCEED)
-                       return resBAT;
-               return NULL;
-       }
-
        if (b->batCount == 0 ||
            (s && (s->batCount == 0 ||
                   (BATtdense(s) &&
@@ -1727,9 +1720,6 @@ BATthetasubselect(BAT *b, BAT *s, const 
        BATcheck(val, "BATthetasubselect", NULL);
        BATcheck(op, "BATthetasubselect", NULL);
 
-//     if(isBATarray(b))
-//             return dimensionBATthetasubselect(b, s, val, op);
-
        nil = ATOMnilptr(b->ttype);
        if (ATOMcmp(b->ttype, val, nil) == 0)
                return newempty("BATthetasubselect");
diff --git a/monetdb5/modules/kernel/algebra.c 
b/monetdb5/modules/kernel/algebra.c
--- a/monetdb5/modules/kernel/algebra.c
+++ b/monetdb5/modules/kernel/algebra.c
@@ -1485,10 +1485,7 @@ ALGcount_bat(wrd *result, const bat *bid
        if ((b = BATdescriptor(*bid)) == NULL) {
                throw(MAL, "aggr.count", RUNTIME_OBJECT_MISSING);
        }
-       if(isBATarray(b))
-               *result = dimensionBATsize(b);
-       else
-               *result = (wrd) BATcount(b);
+       *result = (wrd) BATcount(b);
        BBPunfix(b->batCacheid);
        return MAL_SUCCEED;
 }
diff --git a/monetdb5/modules/kernel/group.c b/monetdb5/modules/kernel/group.c
--- a/monetdb5/modules/kernel/group.c
+++ b/monetdb5/modules/kernel/group.c
@@ -39,13 +39,9 @@ GRPsubgroup4(bat *ngid, bat *next, bat *
                *next = en->batCacheid;
                BBPkeepref(*ngid);
                BBPkeepref(*next);
-               if(isBATarray(b)) {//when array histograms are not used
-                       *nhis = 0;
-               } else {
-                       *nhis = hn->batCacheid;
-                       BBPkeepref(*nhis);
-               }
-
+                       
+               *nhis = hn->batCacheid;
+               BBPkeepref(*nhis);
        }
        BBPunfix(b->batCacheid);
        if (g)
diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c
--- a/monetdb5/modules/mal/batcalc.c
+++ b/monetdb5/modules/mal/batcalc.c
@@ -314,7 +314,6 @@ CMDbatBINARY2(MalBlkPtr mb, MalStkPtr st
        bat *bid;
        BAT *bn, *b, *s = NULL;
        int tp1, tp2, tp3;
-       int isArray = 0;
 
        tp1 = stk->stk[getArg(pci, 1)].vtype;
        tp2 = stk->stk[getArg(pci, 2)].vtype;
@@ -337,7 +336,6 @@ CMDbatBINARY2(MalBlkPtr mb, MalStkPtr st
                        throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                }
                assert(BAThdense(b));
-               isArray = isBATarray(b);
                if (tp2 == TYPE_bat || isaBatType(tp2)) {
                        bid = getArgReference_bat(stk, pci, 2);
                        b2 = BATdescriptor(*bid);
@@ -347,11 +345,6 @@ CMDbatBINARY2(MalBlkPtr mb, MalStkPtr st
                                        BBPunfix(s->batCacheid);
                                throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                        }
-                       if(isBATarray(b))
-                               b = materialiseDimensionBAT(b);
-                       if(isBATarray(b2))
-                               b2 = materialiseDimensionBAT(b2);
-                       isArray = 0;
                        assert(BAThdense(b2));
                }
                if (b2) {
@@ -376,7 +369,6 @@ CMDbatBINARY2(MalBlkPtr mb, MalStkPtr st
                        throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                }
                assert(BAThdense(b));
-               isArray = isBATarray(b);
                if (tp3 == TYPE_any)
                        tp3 = (*typefunc)(tp1, b->T->type);
                bn = (*batfunc2)(&stk->stk[getArg(pci, 1)], b, s, tp3, 
abort_on_error);
@@ -386,13 +378,6 @@ CMDbatBINARY2(MalBlkPtr mb, MalStkPtr st
                return mythrow(MAL, malfunc, OPERATION_FAILED);
        }
        bid = getArgReference_bat(stk, pci, 0);
-       BATsetArray(bn, isArray);
-       if(isBATarray(bn) && (strchr(malfunc, '+') || strchr(malfunc, '-'))) {
-               //the step has changed and we should put it back to its correct 
value
-               BATiter b_iter = bat_iterator(b);
-               oid lastOid = BUNlast(b)-1;
-               BUNreplace(bn, &lastOid, BUNtail(b_iter, lastOid), 1); 
-       }
        BBPkeepref(*bid = bn->batCacheid);
        BBPunfix(b->batCacheid);
        return MAL_SUCCEED;
@@ -409,7 +394,6 @@ CMDbatBINARY1(MalStkPtr stk, InstrPtr pc
        bat *bid;
        BAT *bn, *b, *s = NULL;
        int tp1, tp2;
-       int isArray =0 ;
 
        tp1 = stk->stk[getArg(pci, 1)].vtype;
        tp2 = stk->stk[getArg(pci, 2)].vtype;
@@ -429,7 +413,6 @@ CMDbatBINARY1(MalStkPtr stk, InstrPtr pc
                        throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                }
                assert(BAThdense(b));
-               isArray = isBATarray(b);
                if (tp2 == TYPE_bat || isaBatType(tp2)) {
                        bid = getArgReference_bat(stk, pci, 2);
                        b2 = BATdescriptor(*bid);
@@ -439,11 +422,6 @@ CMDbatBINARY1(MalStkPtr stk, InstrPtr pc
                                        BBPunfix(s->batCacheid);
                                throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                        }
-                       if(isBATarray(b))
-                               b = materialiseDimensionBAT(b);
-                       if(isBATarray(b2))
-                               b2 = materialiseDimensionBAT(b2);
-                       isArray = 0;
                        assert(BAThdense(b2));
                }
                if (b2) {
@@ -463,7 +441,6 @@ CMDbatBINARY1(MalStkPtr stk, InstrPtr pc
                        throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                }
                assert(BAThdense(b));
-               isArray = isBATarray(b);
                bn = (*batfunc2)(&stk->stk[getArg(pci, 1)], b, s, 
abort_on_error);
        }
        if (bn == NULL) {
@@ -473,13 +450,7 @@ CMDbatBINARY1(MalStkPtr stk, InstrPtr pc
                return mythrow(MAL, malfunc, OPERATION_FAILED);
        }
        bid = getArgReference_bat(stk, pci, 0);
-       BATsetArray(bn, isArray);
-       if(isBATarray(bn) && (strchr(malfunc, '+') || strchr(malfunc, '-'))) {
-               //the step has changed and we should put it back to its correct 
value
-               BATiter b_iter = bat_iterator(b);
-               oid lastOid = BUNlast(b)-1;
-               BUNreplace(bn, &lastOid, BUNtail(b_iter, lastOid), 1); 
-       }       BBPkeepref(*bid = bn->batCacheid);
+       BBPkeepref(*bid = bn->batCacheid);
        BBPunfix(b->batCacheid);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to