Changeset: 83d524eb45a6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/83d524eb45a6
Modified Files:
        gdk/gdk_sketch.c
        sql/storage/bat/bat_storage.c
Branch: pp_hashjoin
Log Message:

try using sketches in case of larger tables


diffs (34 lines):

diff --git a/gdk/gdk_sketch.c b/gdk/gdk_sketch.c
--- a/gdk/gdk_sketch.c
+++ b/gdk/gdk_sketch.c
@@ -216,7 +216,7 @@ sketch_populate(BAT *b, BATiter *bi, str
                canditer_reset(&n_bci);
        }
 
-       switch (n_bi.type) {
+       switch (ATOMstorage(n_bi.type)) {
        case TYPE_int:
                SKETCH_POPULATE(int);
                break;
@@ -259,5 +259,6 @@ bat_guess_uniques(BAT *b, BATiter *bi, s
        if (sketch_populate(b, bi, bci, cnting_sketch) == GDK_SUCCEED)
                unique_guess = sketch_estimate(cnting_sketch);
 
+       b->tunique_est = unique_guess;
        return unique_guess;
 }
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -3046,7 +3046,10 @@ col_stats(sql_trans *tr, sql_column *c, 
                                        *unique = bi.key;
                                        *unique_est = bi.unique_est;
                                        if (*unique_est == 0) {
-                                               *unique_est = 
(double)BATguess_uniques(b,NULL);
+                                               if (BATcount(b) > GDKL3_size)
+                                                       *unique_est = 
bat_guess_uniques(b, NULL, NULL);
+                                               else
+                                                       *unique_est = 
(double)BATguess_uniques(b,NULL);
                                                //printf("estimates %s %s 
%f\n", c->base.name, c->type.type->base.name, *unique_est);
                                        }
                                } else if (d->cs.st == ST_DICT && (off = 
bind_col_no_view(tr, c, QUICK))) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to