Changeset: 7288aadb8dc8 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7288aadb8dc8 Modified Files: Branch: default Log Message:
merge with Oct2010 diffs (21 lines): diff -r c366f15c5921 -r 7288aadb8dc8 MonetDB/src/gdk/gdk_batop.mx --- a/MonetDB/src/gdk/gdk_batop.mx Sat Oct 02 12:31:05 2010 +0200 +++ b/MonetDB/src/gdk/gdk_batop.mx Sat Oct 02 12:56:15 2010 +0200 @@ -1226,6 +1226,17 @@ ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): BAT_hashselect(b=%s, bn=%s, tl); (using existing hash-table)\n", BATgetId(b), BATgetId(b), BATgetId(bn)); bn = BAT_hashselect(b, bn, tl); + } else if (!preserve_order + && equi + && b->batPersistence == PERSISTENT + && (size_t) ATOMsize(b->ttype) > sizeof(BUN) / 4 + && estimate < batcnt / 100 + && batcnt * (ATOMsize(b->ttype) + 2 * sizeof(BUN)) < (GDK_mem_maxsize / 2) /* MT_npages() * MT_pagesize() / GDKnr_threads */ ) { + /* Build a hash-table on the fly for equi-select on persistent BAT + * if tail-type is large (wide) and selectivity is low and BAT + hash-table fit in memory */ + ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): BAT_hashselect(b=%s, bn=%s, tl); (building hash-table on the fly)\n", BATgetId(b), BATgetId(b), BATgetId(bn)); + + bn = BAT_hashselect(b, bn, tl); } else { ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): BAT_scanselect(b=%s, bn=%s, tl, th, equi=%d, nequi=%d, lval=%d, hval=%d, nocheck=%d);\n", BATgetId(b), BATgetId(b), BATgetId(bn), equi, nequi, lval, hval, nocheck); _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list