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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list