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:46:23 UTC

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

Ashutosh Chauhan created OPTIQ-401:
--------------------------------------

             Summary: 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)