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 -- [email protected]
To unsubscribe send an email to [email protected]