Changeset: 338c9959bd30 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/338c9959bd30
Modified Files:
        sql/server/rel_select.c
        sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
Branch: cleanup_types
Log Message:

cleanup some more commented out code
fix scaling issue.


diffs (74 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
@@ -404,44 +404,15 @@ exp_fix_scale(mvc *sql, sql_subtype *ct,
                int scale_diff = ((int) ct->scale - (int) et->scale);
 
                if (scale_diff) {
-                       sql_subtype *it = sql_bind_localtype(et->type->impl);
-                       sql_subfunc *c = NULL;
-                       bool swapped = false;
-
                        if (scale_diff < 0) {
                                if (!both)
                                        return e;
-                               sql_subtype st;
-                               int scale = ct->scale;
-                               int digits = et->digits+scale;
-                               (void)sql_find_subtype(&st, 
ct->type->base.name, digits, scale);
-                               return exp_convert(sql->sa, e, et, &st);
-                               c = sql_bind_func(sql, "sys", "scale_down", et, 
it, F_FUNC, true, true);
-                       } else {
-                               sql_subtype st;
-                               int scale = ct->scale;
-                               int digits = et->digits+scale;
-                               (void)sql_find_subtype(&st, 
ct->type->base.name, digits, scale);
-                               return exp_convert(sql->sa, e, et, &st);
-                               if (!(c = sql_bind_func(sql, "sys", "scale_up", 
et, it, F_FUNC, true, true))) {
-                                       if ((c = sql_bind_func(sql, "sys", 
"scale_up", it, et, F_FUNC, true, true)))
-                                               swapped = true;
-                               }
                        }
-                       if (c) {
-#ifdef HAVE_HGE
-                               hge val = scale2value(scale_diff);
-#else
-                               lng val = scale2value(scale_diff);
-#endif
-                               sql_exp *atom_exp = exp_atom(sql->sa, 
atom_int(sql->sa, it, val));
-                               sql_subtype *res = c->res->h->data;
-
-                               res->scale = (et->scale + scale_diff);
-                               return exp_binop(sql->sa, swapped ? atom_exp : 
e, swapped ? e : atom_exp, c);
-                       } else {
-                               TRC_CRITICAL(SQL_PARSER, "scale_down/up missing 
(%s)\n", et->type->base.name);
-                       }
+                       sql_subtype st;
+                       int scale = ct->scale;
+                       int digits = et->digits-et->scale+scale;
+                       (void)sql_find_subtype(&st, ct->type->base.name, 
digits, scale);
+                       return exp_convert(sql->sa, e, et, &st);
                }
        } else if (always && et->scale) {       /* scale down */
                int scale_diff = -(int) et->scale;
@@ -523,7 +494,7 @@ check_arguments_and_find_largest_any_typ
                        ntp = res;
                } else if (t && ntp->scale == 0 && ntp->type->eclass == EC_DEC) 
{
                        ntp = sql_create_subtype(sql->sa, a->type.type, 
t->type->eclass == EC_NUM?bits2digits(t->digits):t->digits, t->scale);
-               } else if (sf->func->fix_scale != SCALE_EQ && t->type == 
ntp->type) {
+               } else if (t->type == ntp->type) {
                        ntp = t;
                }
                if (!(e = exp_check_type(sql, ntp, rel, e, type_equal)))
diff --git a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test 
b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
--- a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
+++ b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.test
@@ -64,7 +64,7 @@ project (
 | | | | ) [ "sys"."st_point"("tmp_2"."a2", "tmp_3"."a2") as "a1" ]
 | | | ) [  ]
 | | ) [ "v"."a1", "v"."a2", "a1" as "p"."a1" ]
-| ) [ "v"."a1" as "a1", geometry["v"."a2"] as "%1"."%1", 
"sys"."st_distance"("%1"."%1", "p"."a1") as "prob" ]
+| ) [ "v"."a1" as "a1", "sys"."st_distance"("v"."a2", "p"."a1") as "prob" ]
 ) [ "a1" as "r"."a1", "prob" as "r"."prob" ]
 
 statement ok
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to