[ https://issues.apache.org/jira/browse/CALCITE-3137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Haisheng Yuan updated CALCITE-3137: ----------------------------------- Description: Add the following test to SqlToRelConverterTest.java. {code:java} @Test public void testRecontructStructFields() { final String sql = "select HOME_ADDRESS from EMP_ADDRESS "; sql(sql).convertsTo( "LogicalProject(HOME_ADDRESS=[NEW($1.CITY, $1.ZIP, $1.STATE, $2.STREET):ObjectSqlType(ADDRESS) NOT NULL])\n" + " LogicalTableScan(table=[[CATALOG, SALES, EMP_ADDRESS]])" ); } {code} Error: {code:java} java.lang.AssertionError: wrong operand count 4 for NEW at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31) at org.apache.calcite.sql.SqlPrefixOperator.validRexOperands(SqlPrefixOperator.java:100) at org.apache.calcite.rex.RexCall.<init>(RexCall.java:86) at org.apache.calcite.rex.RexBuilder.makeNewInvocation(RexBuilder.java:494) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructure(RelStructuredTypeFlattener.java:249) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructureFields(RelStructuredTypeFlattener.java:227) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.rewrite(RelStructuredTypeFlattener.java:206) at org.apache.calcite.sql2rel.SqlToRelConverter.flattenTypes(SqlToRelConverter.java:468) at org.apache.calcite.test.SqlToRelTestBase$TesterImpl.convertSqlToRel(SqlToRelTestBase.java:614) {code} was: Add the following test to SqlToRelConverterTest.java. {code:java} @Test public void testRecontructStructFields() { final String sql = "select HOME_ADDRESS from EMP_ADDRESS "; sql(sql).convertsTo( "LogicalProject(HOME_ADDRESS=[NEW($1.CITY, $1.ZIP, $1.STATE, $2.STREET):ObjectSqlType(ADDRESS) NOT NULL])\n" + " LogicalTableScan(table=[[CATALOG, SALES, EMP_ADDRESS]])" ); } {code} Error: {code:java} java.lang.AssertionError: wrong operand count 4 for NEW at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31) at org.apache.calcite.sql.SqlPrefixOperator.validRexOperands(SqlPrefixOperator.java:100) at org.apache.calcite.rex.RexCall.<init>(RexCall.java:86) at org.apache.calcite.rex.RexBuilder.makeNewInvocation(RexBuilder.java:494) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructure(RelStructuredTypeFlattener.java:249) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructureFields(RelStructuredTypeFlattener.java:227) at org.apache.calcite.sql2rel.RelStructuredTypeFlattener.rewrite(RelStructuredTypeFlattener.java:206) at org.apache.calcite.sql2rel.SqlToRelConverter.flattenTypes(SqlToRelConverter.java:468) at org.apache.calcite.test.SqlToRelTestBase$TesterImpl.convertSqlToRel(SqlToRelTestBase.java:614) {code} The assertion should be removed. > AssertionError when reconstructing STRUCTURED type fields > --------------------------------------------------------- > > Key: CALCITE-3137 > URL: https://issues.apache.org/jira/browse/CALCITE-3137 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Haisheng Yuan > Priority: Major > > Add the following test to SqlToRelConverterTest.java. > {code:java} > @Test > public void testRecontructStructFields() { > final String sql = "select HOME_ADDRESS from EMP_ADDRESS "; > sql(sql).convertsTo( > "LogicalProject(HOME_ADDRESS=[NEW($1.CITY, $1.ZIP, $1.STATE, > $2.STREET):ObjectSqlType(ADDRESS) NOT NULL])\n" > + " LogicalTableScan(table=[[CATALOG, SALES, EMP_ADDRESS]])" > ); > } > {code} > Error: > {code:java} > java.lang.AssertionError: wrong operand count 4 for NEW > at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31) > at > org.apache.calcite.sql.SqlPrefixOperator.validRexOperands(SqlPrefixOperator.java:100) > at org.apache.calcite.rex.RexCall.<init>(RexCall.java:86) > at > org.apache.calcite.rex.RexBuilder.makeNewInvocation(RexBuilder.java:494) > at > org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructure(RelStructuredTypeFlattener.java:249) > at > org.apache.calcite.sql2rel.RelStructuredTypeFlattener.restructureFields(RelStructuredTypeFlattener.java:227) > at > org.apache.calcite.sql2rel.RelStructuredTypeFlattener.rewrite(RelStructuredTypeFlattener.java:206) > at > org.apache.calcite.sql2rel.SqlToRelConverter.flattenTypes(SqlToRelConverter.java:468) > at > org.apache.calcite.test.SqlToRelTestBase$TesterImpl.convertSqlToRel(SqlToRelTestBase.java:614) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)