2.5.16 decimal与varchar类型进行比较问题

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】
从2.3.16版本升级到2.5.16版本后,发现decimal类型与字符串的比较上逻辑有点问题,如以下查询在2.3.16版本查询时结果集是正常,但是2.5.16版本下查询无结果集

去掉最后条件后查询结果正常
and
(case
when concat(tt.busid, tt.txnid) in (‘N009’, ‘N003’, ‘N011’) then 0
else tt.txnamt / 100
end) >=‘450’

查看查询计划,发现是先进行转换为字符串再进行比较,从而逻辑不正确
PREDICATES: 2: txndate >= ‘2023-11-08’, 2: txndate <= ‘2023-12-07’, 3: termlogid = ‘fd5e8f’, CAST(if(concat(9: busid, 10: txnid) IN (‘N009’, ‘N003’, ‘N011’), 0, CAST(12: txnamt AS DECIMAL128(38,2)) / 100) AS VARCHAR) >= ‘450’

经过咨询官方老师,修改了以下参数得以解决
set cbo_decimal_cast_string_strict=false;

【背景】
【业务影响】
【是否存算分离】否
【StarRocks版本】2.5.16
【集群规模】3fe+12be(fe/be混布)
【机器信息】40C/128G/万兆
【联系方式】StarRocks社区群5 -思变 1412195108@qq.com
【附件】

set cbo_decimal_cast_string_strict=false;