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