[ 
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)

Reply via email to