[
https://issues.apache.org/jira/browse/CALCITE-628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14366491#comment-14366491
]
Julian Hyde commented on CALCITE-628:
-------------------------------------
Did you review my fix
https://github.com/julianhyde/incubator-calcite/commit/fb203dc4b9aea89bfed839c22ae3e285044df400
and in particular the change I made to VolcanoPlanner?
> 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
>
> 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)