Changeset: 761b89a96cbf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/761b89a96cbf
Modified Files:
        sql/server/rel_statistics_functions.c
Branch: Aug2024
Log Message:

use proper types for *_diff functions in statistics


diffs (35 lines):

diff --git a/sql/server/rel_statistics_functions.c 
b/sql/server/rel_statistics_functions.c
--- a/sql/server/rel_statistics_functions.c
+++ b/sql/server/rel_statistics_functions.c
@@ -132,16 +132,16 @@ sql_sub_propagate_statistics(mvc *sql, s
 
                                switch (t1->type->eclass) {
                                case EC_DATE: {
-                                       res1 = atom_int(sql->sa, 
sql_bind_localtype("int"), date_diff_imp((date)lmax->data.val.ival, 
(date)rmin->data.val.ival));
-                                       res2 = atom_int(sql->sa, 
sql_bind_localtype("int"), date_diff_imp((date)lmin->data.val.ival, 
(date)rmax->data.val.ival));
+                                       res1 = atom_int(sql->sa, 
exp_subtype(e), date_diff_imp((date)lmax->data.val.ival, 
(date)rmin->data.val.ival));
+                                       res2 = atom_int(sql->sa, 
exp_subtype(e), date_diff_imp((date)lmin->data.val.ival, 
(date)rmax->data.val.ival));
                                } break;
                                case EC_TIME: {
-                                       res1 = atom_int(sql->sa, 
sql_bind_localtype("lng"), daytime_diff((daytime)lmax->data.val.lval, 
(daytime)rmin->data.val.lval));
-                                       res2 = atom_int(sql->sa, 
sql_bind_localtype("lng"), daytime_diff((daytime)lmin->data.val.lval, 
(daytime)rmax->data.val.lval));
+                                       res1 = atom_int(sql->sa, 
exp_subtype(e), daytime_diff((daytime)lmax->data.val.lval, 
(daytime)rmin->data.val.lval));
+                                       res2 = atom_int(sql->sa, 
exp_subtype(e), daytime_diff((daytime)lmin->data.val.lval, 
(daytime)rmax->data.val.lval));
                                } break;
                                case EC_TIMESTAMP: {
-                                       res1 = atom_int(sql->sa, 
sql_bind_localtype("lng"), TSDIFF((timestamp)lmax->data.val.lval, 
(timestamp)rmin->data.val.lval));
-                                       res2 = atom_int(sql->sa, 
sql_bind_localtype("lng"), TSDIFF((timestamp)lmin->data.val.lval, 
(timestamp)rmax->data.val.lval));
+                                       res1 = atom_int(sql->sa, 
exp_subtype(e), TSDIFF((timestamp)lmax->data.val.lval, 
(timestamp)rmin->data.val.lval));
+                                       res2 = atom_int(sql->sa, 
exp_subtype(e), TSDIFF((timestamp)lmin->data.val.lval, 
(timestamp)rmax->data.val.lval));
                                } break;
                                default:
                                        break;
@@ -604,7 +604,7 @@ sql_day_propagate_statistics(mvc *sql, s
        set_minmax_property(sql, e, PROP_MAX, atom_int(sql->sa, 
sql_bind_localtype(localtype), nmax));
        set_minmax_property(sql, e, PROP_MIN, atom_int(sql->sa, 
sql_bind_localtype(localtype), nmin));
        prop *p = e->p = prop_create(sql->sa, PROP_NUNIQUES, e->p);
-       p->value.dval = 31;
+       p->value.dval = nmax - nmin + 1;
 }
 
 static void
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to