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