Changeset: ca0de6080968 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ca0de6080968
Modified Files:
        sql/server/rel_statistics.c
        sql/storage/bat/bat_storage.c
Branch: default
Log Message:

small fixes to statistics


diffs (39 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -251,8 +251,10 @@ sql_column_get_statistics(mvc *sql, sql_
 
        if (has_nil(e) && nonil)
                set_has_no_nil(e);
-       if (!is_unique(e) && unique)
+       if (!is_unique(e) && unique) {
                set_unique(e);
+               c->unique=true;
+       }
        if (unique_est != 0.0) {
                prop *p = e->p = prop_create(sql->sa, PROP_NUNIQUES, e->p);
                p->value.dval = unique_est;
@@ -1033,8 +1035,8 @@ rel_get_statistics_(visitor *v, sql_rel 
                                                                e->p = sp;
                                                        } else {
                                                                dbl u = 
(dbl)MAX(lu, ru);
-                                                               //dbl s = 
u/(lv*rv);
-                                                               dbl s = 1/u;
+                                                               dbl s = 
u/(lv*rv);
+                                                               //dbl s = 1/u;
                                                                prop *sp = 
prop_create(v->sql->sa, PROP_SELECTIVITY, (prop *) e->p);
                                                                sp->value.dval 
= s;
                                                                e->p = sp;
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
@@ -2817,6 +2817,9 @@ set_stats_col(sql_trans *tr, sql_column 
                        if ((b = bind_col_no_view(tr, c, RDONLY))) {
                                MT_lock_set(&b->theaplock);
                                b->tunique_est = *unique_est;
+                               BUN ucnt = (BUN)(*unique_est);
+                               if (ucnt == BATcount(b))
+                                       b->tkey = true;
                                MT_lock_unset(&b->theaplock);
                                bat_destroy(b);
                        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to