Haisheng Yuan created CALCITE-3917:
--------------------------------------
Summary: Revive pruned node when a rule generates RelNode that is
already pruned
Key: CALCITE-3917
URL: https://issues.apache.org/jira/browse/CALCITE-3917
Project: Calcite
Issue Type: Improvement
Components: core
Reporter: Haisheng Yuan
Manually pruning nodes in rule can be dangerous. e.g.:
Logical transformation rule X matches RelNode A and generates RelNode B. Rule X
thinks B is always better than A, prunes A in the rule. But if B is already in
the MEMO, matched and pruned by another rule Y before X, and rule Y generates
A. At the end, we may see CannotPlanException, because there is no available
RelNode in the RelSet.
In this case, we'd better revive the node that is already pruned out by
planner, even this can bring additional rule apply and overhead, but better
than failure to plan.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)