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