[
https://issues.apache.org/jira/browse/CALCITE-628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde updated CALCITE-628:
--------------------------------
Fix Version/s: next
> Calcite hit Assertion Error when calling Frameworks.planner or
> RelOptRule.convert(), if the target trait is composite
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: CALCITE-628
> URL: https://issues.apache.org/jira/browse/CALCITE-628
> Project: Calcite
> Issue Type: Bug
> Reporter: Jinfeng Ni
> Assignee: Julian Hyde
> Fix For: next
>
>
> CALCITE-88 introduces the concept of RelCompositeTrait. As such, Calcite
> seems to require that each new RelSubSet should only have simple trait, in
> stead of composite traits. If that condition is not meet, an assertion will
> be thrown.
> However, when we use Frameworks.planner to call transform(), or use
> RelOptRule to call convert() method, there is no guarantee that the target
> traits are simple. If the target traits happened to be composite, then
> Calcite will hit Assertion at RelSubset.java:108.
> There seems to be two options to fix this Assertion and ensure RelSubset only
> have simple traitsets :
> 1) Follow the way Prepare.optimize(), and call simplify() for the target
> traitset, in both PlannerImpl.transform() or RelOptRule.convert().
> 2) Each callers of transform(), or convert() method should make sure the
> target traits are simple.
> The patch I'm going to submit uses the 1st option, using the same logic in
> Prepare.optimize().
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)