[
https://issues.apache.org/jira/browse/CALCITE-6147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated CALCITE-6147:
------------------------------------
Labels: pull-request-available (was: )
> CAST(CAST(EMPNO AS VARCHAR) AS INT) should be simplified to EMPNO
> -----------------------------------------------------------------
>
> Key: CALCITE-6147
> URL: https://issues.apache.org/jira/browse/CALCITE-6147
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.36.0
> Reporter: Benchao Li
> Assignee: Benchao Li
> Priority: Major
> Labels: pull-request-available
>
> Lossless cast removal has been introduced in CALCITE-3712.
> However, {{{}VARCHAR{}}}'s precision is {{{}-1{}}}, which will not meet the
> lossless condition
> {code:java}
> // 3) From NUMERIC family to CHARACTER family: it depends on the
> precision/scale
> if (sourceSqlTypeName.getFamily() == SqlTypeFamily.NUMERIC
> && targetSqlTypeName.getFamily() == SqlTypeFamily.CHARACTER) {
> int sourceLength = source.getPrecision() + 1; // include sign
> if (source.getScale() != -1 && source.getScale() != 0) {
> sourceLength += source.getScale() + 1; // include decimal mark
> }
> return target.getPrecision() >= sourceLength; // target.getPrecision()
> is -1, which will make the optimization fail.
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)