Changeset: d0c5a2da45e9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d0c5a2da45e9
Modified Files:
gdk/gdk_select.c
Branch: Apr2019
Log Message:
Fix select on view when parent has order index.
diffs (40 lines):
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1216,6 +1216,7 @@ BATselect(BAT *b, BAT *s, const void *tl
BAT *bn, *tmp;
BUN estimate = BUN_NONE, maximum = BUN_NONE;
oid vwl = 0, vwh = 0;
+ lng vwo = 0;
bool use_orderidx = false;
union {
bte v_bte;
@@ -1533,7 +1534,9 @@ BATselect(BAT *b, BAT *s, const void *tl
if ((ORDERfnd(b, th) - ORDERfnd(b, tl)) < b->batCount/3) {
use_orderidx = true;
if (view) {
- vwl = view->hseqbase;
+ vwo = (lng) ((view->theap.base - b->theap.base)
>> b->tshift);
+ vwl = b->hseqbase + vwo;
+ vwo = (lng) view->hseqbase - (lng) b->hseqbase
- vwo;
vwh = vwl + view->batCount;
} else {
vwl = b->hseqbase;
@@ -1544,7 +1547,7 @@ BATselect(BAT *b, BAT *s, const void *tl
b = view;
}
}
- ALGODEBUG if (view && b != view) fprintf(stderr, "#BATselect:
switch from " ALGOBATFMT " to " ALGOBATFMT " " OIDFMT "-" OIDFMT "\n",
ALGOBATPAR(view), ALGOBATPAR(b), vwl, vwh);
+ ALGODEBUG if (view && b != view) fprintf(stderr, "#BATselect:
switch from " ALGOBATFMT " to " ALGOBATFMT " " OIDFMT "-" OIDFMT " off " LLFMT
"\n", ALGOBATPAR(view), ALGOBATPAR(b), vwl, vwh, vwo);
}
if (BATordered(b) || BATordered_rev(b) || use_orderidx) {
@@ -1714,7 +1717,7 @@ BATselect(BAT *b, BAT *s, const void *tl
for (i = low; i < high; i++) {
if (vwl <= *rs && *rs < vwh) {
- *rbn++ = *rs;
+ *rbn++ = (oid) ((lng) *rs +
vwo);
cnt++;
}
rs++;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list