You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Ashutosh Chauhan (JIRA)" <ji...@apache.org> on 2014/09/05 01:47:23 UTC

[jira] [Commented] (OPTIQ-401) New SqlExplainLevel ALL_ATTRIBUTES_COST_IF_AVAILABLE

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

Ashutosh Chauhan commented on OPTIQ-401:
----------------------------------------

Request here is that this new mode (or modify existing ALL_ATTRIBUTES mode) to not throw exception in such cases and print stats NA in those cases.

> New SqlExplainLevel ALL_ATTRIBUTES_COST_IF_AVAILABLE
> ----------------------------------------------------
>
>                 Key: OPTIQ-401
>                 URL: https://issues.apache.org/jira/browse/OPTIQ-401
>             Project: Optiq
>          Issue Type: Improvement
>            Reporter: Ashutosh Chauhan
>            Assignee: Julian Hyde
>
> We want to use ALL_ATTRIBUTES because it prints cost, which is helpful in debugging. But in certain systems (eg Hive) stats are fetched only on demand. So, its possible that stats are not fetched and are thus not available for few columns because they were not referred in query. Now, if you do {{RelOptUtil.toString(optiqPlan, SqlExplainLevel.ALL_ATTRIBUTES)}} It results in following stack trace:
> {code}
>         at com.sun.proxy.$Proxy18.getRowCount(Unknown Source)
>         at org.eigenbase.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:95)
>         at org.eigenbase.rel.RelWriterImpl.explain_(RelWriterImpl.java:103)
>         at org.eigenbase.rel.RelWriterImpl.done(RelWriterImpl.java:171)
>         at org.eigenbase.rel.AbstractRelNode.explain(AbstractRelNode.java:280)
>         at org.eigenbase.relopt.RelOptUtil.toString(RelOptUtil.java:1694)
> Caused by: java.lang.AssertionError
>         at org.eigenbase.rel.metadata.RelMetadataQuery.isNonNegative(RelMetadataQuery.java:381)
>         at org.eigenbase.rel.metadata.RelMetadataQuery.validateResult(RelMetadataQuery.java:400)
>         at org.eigenbase.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:96)
>         at org.eigenbase.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:61)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)