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