Shuo Cheng created CALCITE-4118: ----------------------------------- Summary: RexSimplify might remove CAST from RexNode incorrectly Key: CALCITE-4118 URL: https://issues.apache.org/jira/browse/CALCITE-4118 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.23.0 Reporter: Shuo Cheng Fix For: 1.24.0
{code:java} @Test void testCastError() { final String sql = "select cast(cast(count(distinct empno) as varchar(65536)) as varbinary)\n" + "from emp group by deptno"; sql(sql).ok(); } {code} Consider the above test case, we get the following plan after SqlToRel. {code:java} LogicalProject(EXPR$0=[CAST($1):VARBINARY NOT NULL]) LogicalAggregate(group=[{0}], agg#0=[COUNT(DISTINCT $1)]) LogicalProject(DEPTNO=[$7], EMPNO=[$0]) LogicalTableScan(table=[[CATALOG, SALES, EMP]]) {code} As it is shown, `cast(* as varchar)` is removed (by RexSimplify#SimplifyCast), which is obviously wrong, because BIGINT can not cast to VARBINARY. -- This message was sent by Atlassian Jira (v8.3.4#803005)