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)