Yingyu Wang created CALCITE-5145:
------------------------------------
Summary: AssertionError: "Conversion to relational algebra failed
to preserve datatypes" when use derived column ing Grouping Sets
Key: CALCITE-5145
URL: https://issues.apache.org/jira/browse/CALCITE-5145
Project: Calcite
Issue Type: Bug
Reporter: Yingyu Wang
Adding filling test in SqlToRelConverterTest.java can reproduce the problem
{code:java}
//core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@Test public void testGroupingSetsDerivedCol() { sql("SELECT empno,\n"
+ "CASE\n" + "when ename in ('Fred','Eric') then 'CEO'\n" +
"else 'Other'\n" + "END AS derived_col\n" + "from emp\n" +
"group by grouping sets ((empno, derived_col),(empno))")
.withConformance(SqlConformanceEnum.LENIENT).ok(); } {code}
The error:
{code:java}
Conversion to relational algebra failed to preserve datatypes:validated
type:RecordType(INTEGER NOT NULL EMPNO, CHAR(5) NOT NULL DERIVED_COL) NOT
NULLconverted type:RecordType(INTEGER NOT NULL EMPNO, CHAR(5) DERIVED_COL) NOT
NULLrel:LogicalAggregate(group=[{0, 1}], groups=[[{0, 1}, {0}]])
LogicalProject(EMPNO=[$0], DERIVED_COL=[CASE(SEARCH($1, Sarg['Eric',
'Fred']:CHAR(4)), 'CEO ', 'Other')]) LogicalTableScan(table=[[CATALOG,
SALES, EMP]])
java.lang.AssertionError: Conversion to relational algebra failed to preserve
datatypes:validated type:RecordType(INTEGER NOT NULL EMPNO, CHAR(5) NOT NULL
DERIVED_COL) NOT NULLconverted type:RecordType(INTEGER NOT NULL EMPNO, CHAR(5)
DERIVED_COL) NOT NULLrel:LogicalAggregate(group=[{0, 1}], groups=[[{0, 1},
{0}]]) LogicalProject(EMPNO=[$0], DERIVED_COL=[CASE(SEARCH($1, Sarg['Eric',
'Fred']:CHAR(4)), 'CEO ', 'Other')]) LogicalTableScan(table=[[CATALOG,
SALES, EMP]])
at
org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:487)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:602)
at
org.apache.calcite.sql.test.AbstractSqlTester.convertSqlToRel2(AbstractSqlTester.java:536)
at
org.apache.calcite.sql.test.AbstractSqlTester.assertSqlConvertsTo(AbstractSqlTester.java:477)
at
org.apache.calcite.sql.test.AbstractSqlTester.assertConvertsTo(AbstractSqlTester.java:455)
at
org.apache.calcite.test.SqlToRelFixture.convertsTo(SqlToRelFixture.java:106)
at org.apache.calcite.test.SqlToRelFixture.ok(SqlToRelFixture.java:94) at
org.apache.calcite.test.SqlToRelConverterTest.testGroupingSetsDerivedCol(SqlToRelConverterTest.java:344)
{code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)