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

Reply via email to