Changeset: 5fea409a9091 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5fea409a9091
Added Files:
        sql/test/BugTracker-2024/Tests/7538-reduce-cast.test
Modified Files:
        sql/server/rel_optimize_exps.c
        sql/server/rel_optimize_proj.c
        sql/test/BugTracker-2024/Tests/All
Branch: Aug2024
Log Message:

fixed issue #7538, ie only reduce cast (ie reduce scale handling) if the type 
has a scale


diffs (47 lines):

diff --git a/sql/server/rel_optimize_exps.c b/sql/server/rel_optimize_exps.c
--- a/sql/server/rel_optimize_exps.c
+++ b/sql/server/rel_optimize_exps.c
@@ -422,6 +422,8 @@ reduce_scale(mvc *sql, atom *a)
                na = atom_int(sql->sa, &a->tpe, nval);
                if (na->tpe.scale)
                        na->tpe.scale -= i;
+               else
+                       return NULL;
        }
        return na;
 }
diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -950,7 +950,7 @@ rel_project_reduce_casts(visitor *v, glo
                                                atom *a = ha ? ha : ta;
                                                atom *na = reduce_scale(v->sql, 
a);
 
-                                               if (na != a) {
+                                               if (na && na != a) {
                                                        int rs = a->tpe.scale - 
na->tpe.scale;
                                                        res->scale -= rs;
                                                        if (ha) {
diff --git a/sql/test/BugTracker-2024/Tests/7538-reduce-cast.test 
b/sql/test/BugTracker-2024/Tests/7538-reduce-cast.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/7538-reduce-cast.test
@@ -0,0 +1,10 @@
+query R
+select 37.000 /(37.0+65)*100 c1
+-----
+36.200
+
+
+query R
+select 37.000 /(37.0+65)*100 c1 limit 2
+-----
+36.200
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -64,3 +64,4 @@ 7528-jarowinkler-null
 7534-is-distinct-from
 7535-create-view-groupby-func
 7536-mclient-forgets-to-flush
+7538-reduce-cast
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to