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]