Changeset: 7c7fef99fe52 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c7fef99fe52 Modified Files: gdk/gdk_search.c gdk/gdk_select.c Branch: leftmart Log Message:
Cosmetics. diffs (84 lines): diff --git a/gdk/gdk_search.c b/gdk/gdk_search.c --- a/gdk/gdk_search.c +++ b/gdk/gdk_search.c @@ -957,6 +957,7 @@ BATcheckorderidx(BAT *b) int ret; lng t; + assert(b->batCacheid > 0); t = GDKusec(); MT_lock_set(&GDKhashLock(abs(b->batCacheid)), "BATcheckorderidx"); t = GDKusec() - t; diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -1491,7 +1491,7 @@ BATsubselect(BAT *b, BAT *s, const void low = (BUN) l; if (low > high) low = high; - } else if (b->tsorted || use_orderidx) { + } else if (b->tsorted) { ALGODEBUG fprintf(stderr, "#BATsubselect(b=%s#" BUNFMT ",s=%s%s,anti=%d): sorted\n", BATgetId(b), BATcount(b), @@ -1500,22 +1500,22 @@ BATsubselect(BAT *b, BAT *s, const void anti); if (lval) { if (li) - low = use_orderidx?ORDERfndfirst(b, tl):SORTfndfirst(b, tl); + low = SORTfndfirst(b, tl); else - low = use_orderidx?ORDERfndlast(b, tl):SORTfndlast(b, tl); + low = SORTfndlast(b, tl); } else { /* skip over nils at start of column */ - low = use_orderidx?ORDERfndlast(b, nil):SORTfndlast(b, nil); + low = SORTfndlast(b, nil); } low -= BUNfirst(b); if (hval) { if (hi) - high = use_orderidx?ORDERfndlast(b, th):SORTfndlast(b, th); + high = SORTfndlast(b, th); else - high = use_orderidx?ORDERfndfirst(b, th):SORTfndfirst(b, th); + high = SORTfndfirst(b, th); high -= BUNfirst(b); } - } else { + } else if (b->trevsorted) { assert(b->trevsorted); ALGODEBUG fprintf(stderr, "#BATsubselect(b=%s#" BUNFMT ",s=%s%s,anti=%d): reverse sorted\n", @@ -1540,6 +1540,31 @@ BATsubselect(BAT *b, BAT *s, const void low = SORTfndlast(b, th); low -= BUNfirst(b); } + } else { + assert(use_orderidx); + ALGODEBUG fprintf(stderr, "#BATsubselect(b=%s#" BUNFMT + ",s=%s%s,anti=%d): orderidx\n", + BATgetId(b), BATcount(b), + s ? BATgetId(s) : "NULL", + s && BATtdense(s) ? "(dense)" : "", + anti); + if (lval) { + if (li) + low = ORDERfndfirst(b, tl); + else + low = ORDERfndlast(b, tl); + } else { + /* skip over nils at start of column */ + low = ORDERfndlast(b, nil); + } + low -= BUNfirst(b); + if (hval) { + if (hi) + high = ORDERfndlast(b, th); + else + high = ORDERfndfirst(b, th); + high -= BUNfirst(b); + } } if (anti) { if (b->tsorted) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list