[ 
https://issues.apache.org/jira/browse/CALCITE-2903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Haisheng Yuan updated CALCITE-2903:
-----------------------------------
    Summary: Exception thrown when decorrelating query with TEMPORAL TABLE  
(was: Exception thrown when decorrelating streaming query)

> Exception thrown when decorrelating query with TEMPORAL TABLE
> -------------------------------------------------------------
>
>                 Key: CALCITE-2903
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2903
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Haisheng Yuan
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Repro:
> In SqlToRelConverterTest.java, add the following case:
> {code:java}
> @Test public void testStreamLateralJoin() {
>     final String sql = "select stream *\n"
>         + "from orders\n"
>         + "cross join lateral ("
>         + "  select * from products_temporal for system_time as of 
> orders.rowtime\n"
>         + "  where orders.productid = products_temporal.productid)\n";
>     sql(sql).ok();
>   }
> {code}
> We will see the exception:
> {code:java}
> java.lang.RuntimeException: While invoking method 'public 
> org.apache.calcite.sql2rel.RelDecorrelator$Frame 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.RelNode)'
>       at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:527)
>       at 
> org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:613)
>       at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelate(RelDecorrelator.java:254)
>       at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:214)
>       at 
> org.apache.calcite.sql2rel.SqlToRelConverter.decorrelateQuery(SqlToRelConverter.java:3073)
>       at 
> org.apache.calcite.sql2rel.SqlToRelConverter.decorrelate(SqlToRelConverter.java:483)
>       at 
> org.apache.calcite.test.SqlToRelTestBase$TesterImpl.convertSqlToRel(SqlToRelTestBase.java:616)
>       at 
> org.apache.calcite.test.SqlToRelTestBase$TesterImpl.assertConvertsTo(SqlToRelTestBase.java:723)
>       at 
> org.apache.calcite.test.SqlToRelConverterTest$Sql.convertsTo(SqlToRelConverterTest.java:3096)
>       at 
> org.apache.calcite.test.SqlToRelConverterTest$Sql.ok(SqlToRelConverterTest.java:3088)
> .........
> Caused by: java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
>       ... 32 more
> Caused by: java.lang.RuntimeException: While invoking method 'public 
> org.apache.calcite.sql2rel.RelDecorrelator$Frame 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalProject)'
>       at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:527)
>       at 
> org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:613)
>       at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:369)
> {code}
> Inside 
> {noformat}
> public Frame decorrelateRel(LogicalCorrelate rel)
> {noformat}
> , assertion failure happened:
> {code:java}
> assert rel.getRequiredColumns().cardinality()
>         <= rightFrame.corDefOutputs.keySet().size();
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to