Changeset: d28cb4da2f3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d28cb4da2f3f
Modified Files:
        gdk/gdk_join.c
        gdk/gdk_sketch.c
        sql/backends/monet5/sql_statistics.c
Branch: pp_hashjoin
Log Message:

Use getentropy instead of getrandom. Don't use sketches for cnt dist on-the-fly.


diffs (52 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -3635,8 +3635,7 @@ BATguess_uniques(BAT *b, struct canditer
                canditer_init(&lci, b, NULL);
                ci = &lci;
        }
-       /* double uniques = guess_uniques(b, ci); */
-       double uniques = bat_guess_uniques(b, NULL, ci);
+       double uniques = guess_uniques(b, ci);
        return uniques < 0 ? 0 : (BUN) uniques;
 }
 
diff --git a/gdk/gdk_sketch.c b/gdk/gdk_sketch.c
--- a/gdk/gdk_sketch.c
+++ b/gdk/gdk_sketch.c
@@ -132,7 +132,7 @@ sketch_populate(BAT* b, BATiter *bi, str
                } else {
                        uint8_t k = cnting_sketch[bucket][clz] - 128;
                        uint64_t rng;
-                       getrandom(&rng, sizeof(rng), 0);
+                       getentropy(&rng, sizeof(rng));
                        if ((rng & ((1ULL << k) - 1)) == 0)
                                cnting_sketch[bucket][clz]++;
                }
@@ -157,8 +157,11 @@ bat_guess_uniques(BAT *b, BATiter *bi, s
        uint8_t cnting_sketch[BUCKETS][CLZ_BUCKETS] = {0};
 
        BATiter nbi = bi ? *bi : bat_iterator(b);
+       struct canditer nbci;
+       if (bci == NULL)
+               canditer_init(&nbci, b, NULL);
 
-       sketch_populate(b, &nbi, bci, cnting_sketch);
+       sketch_populate(b, &nbi, &nbci, cnting_sketch);
        double unique_guess = sketch_estimate(cnting_sketch);
 
        if (bi == NULL)
diff --git a/sql/backends/monet5/sql_statistics.c 
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -203,8 +203,8 @@ sql_analyze(Client cntxt, MalBlkPtr mb, 
                                                BBPunfix(unq->batCacheid);
 
                                        /* Guess number of uniques if not 
entirely unique */
-                                       unique_est = 
(double)BATguess_uniques(b, NULL);
-
+                                       /* unique_est = 
(double)BATguess_uniques(b, NULL); */
+                                       unique_est = 
(double)bat_guess_uniques(b, NULL, NULL);
 
                                        /* Collect min and max values */
                                        mn = BATmin(b, NULL);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to