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)