Changeset: 8b3c7c0550b3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8b3c7c0550b3
Modified Files:
        sql/common/sql_types.c
        sql/include/sql_catalog.h
Branch: default
Log Message:

make sure we only introduce a result scale for types which have a scale.
(fixes issue with sum(decimal)/count(decimal)


diffs (23 lines):

diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -460,6 +460,8 @@ static sql_subfunc *
                /* same type as the input */
                if (r->type->eclass == EC_ANY && member)
                        r = member;
+               if (!EC_SCALE(r->type->eclass))
+                       scale = 0;
                res = sql_create_subtype(sa, r->type, digits, scale);
                list_append(ares->res, res);
        }
diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -311,6 +311,7 @@ typedef enum sql_class {
 #define EC_TEMP(e)                     
(e==EC_TIME||e==EC_DATE||e==EC_TIMESTAMP||EC_TEMP_TZ(e))
 #define EC_TEMP_FRAC(e)                
(e==EC_TIME||e==EC_TIMESTAMP||EC_TEMP_TZ(e))
 #define EC_TEMP_NOFRAC(e)      (e==EC_TIME||e==EC_TIMESTAMP)
+#define EC_SCALE(e)                    (e==EC_DEC||EC_TEMP_FRAC(e)||e==EC_SEC)
 #define EC_BACKEND_FIXED(e)    (EC_NUMBER(e)||e==EC_BIT||EC_TEMP(e))
 
 typedef struct sql_type {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to