You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "zhen wang (JIRA)" <ji...@apache.org> on 2018/03/13 13:43:00 UTC

[jira] [Comment Edited] (CALCITE-1862) StackOverflowException in RelMdUtil.estimateFilteredRows

    [ https://issues.apache.org/jira/browse/CALCITE-1862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16396947#comment-16396947 ] 

zhen wang edited comment on CALCITE-1862 at 3/13/18 1:42 PM:
-------------------------------------------------------------

removing either  one of the two rules:

{code}
          ProjectFilterTransposeRule.INSTANCE, // removes this generates some new issue but no infinitely deep REL problem
          FilterProjectTransposeRule.INSTANCE, // removes this solves this problem. 
{code}

so I guess these two optimization rules are fighting against each other in this issue. 




was (Author: zhenw):
removing either  one of the two rules:

          ProjectFilterTransposeRule.INSTANCE, // removes this generates some new issue but no infinitely deep REL problem
          FilterProjectTransposeRule.INSTANCE, // removes this solves this problem. 


so I guess these two optimization rules are fighting against each other in this issue. 



> StackOverflowException in RelMdUtil.estimateFilteredRows
> --------------------------------------------------------
>
>                 Key: CALCITE-1862
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1862
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>            Priority: Major
>
> The query
> {code}select *
> from (
>   select *
>   from (
>     select cast(null as integer) as d
>     from "scott".emp)
>   where d is null and d is null)
> where d is null;{code}
> gives
> {noformat}
> java.lang.StackOverflowError
> > 	at org.apache.calcite.adapter.clone.ArrayTable.getStatistic(ArrayTable.java:76)
> > 	at org.apache.calcite.prepare.RelOptTableImpl.getRowCount(RelOptTableImpl.java:224)
> > 	at org.apache.calcite.rel.core.TableScan.estimateRowCount(TableScan.java:75)
> > 	at org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:206)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> > 	at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:236)
> > 	at org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:71)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> > 	at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:236)
> > 	at org.apache.calcite.rel.metadata.RelMdUtil.estimateFilteredRows(RelMdUtil.java:718)
> > 	at org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:123)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> > 	at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:236)
> > 	at org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:71)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source)
> > 	at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> > 	at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:236)
> > 	at org.apache.calcite.rel.metadata.RelMdUtil.estimateFilteredRows(RelMdUtil.java:718){noformat}
> For a test case, add the query to misc.iq and run QuidemTest.



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