Changeset: 9289cf701e82 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9289cf701e82
Modified Files:
        sql/server/rel_select.c
Branch: Dec2025
Log Message:

Fix casting from decimal to decimal without specfying precision and scale.
Fix #7943.


diffs (19 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -4228,8 +4228,13 @@ rel_cast(sql_query *query, sql_rel **rel
                sql_subtype *et = exp_subtype(e);
                if (e->type == e_atom && !tpe->digits) {
                        if (e->l && (et->type->eclass == EC_NUM || 
et->type->eclass == EC_DEC)) {
-                               tpe->digits = atom_num_digits(e->l) + 1;
-                               tpe->scale = 1;
+                               if (et->digits && et->scale) {
+                                       tpe->digits = et->digits;
+                                       tpe->scale = et->scale;
+                               } else {
+                                       tpe->digits = atom_num_digits(e->l) + 1;
+                                       tpe->scale = 1;
+                               }
                                tpe = sql_bind_subtype(sql->sa, "decimal", 
tpe->digits, tpe->scale);
                        } else if (EC_VARCHAR(et->type->eclass)) {
                                char *s = E_ATOM_STRING(e);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to