[
https://issues.apache.org/jira/browse/CALCITE-4461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262952#comment-17262952
]
Julian Hyde commented on CALCITE-4461:
--------------------------------------
There might be unintended consequences if a rule that used to match only, say,
{{EnumerableFilter}} now also matches {{LogicalFilter}} and {{JdbcFilter}}.
Rather than modifying existing rule instances, how about creating new instances
with more lenient criteria?
Can someone please review whether current rule instances are consistent? It
would be nice if there were some consistent convention. Although I know that
may directly conflict with the goal of not changing existing instances.
> Do not cast to logical node inside Enumerable rules
> ---------------------------------------------------
>
> Key: CALCITE-4461
> URL: https://issues.apache.org/jira/browse/CALCITE-4461
> Project: Calcite
> Issue Type: Task
> Components: core
> Affects Versions: 1.26.0
> Reporter: Vladimir Ozerov
> Assignee: Vladimir Ozerov
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.27.0
>
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> Currently, some `Enumerable` rules work with the base operator classes, such
> as `Join`, while others cast to `Logical` counterparts, such as
> `LogicalJoin`, `LogicalProject`, etc.
> This makes it impossible to convert custom non-logical nodes into
> `Enumerable` using the built-in rules.
> The proposal is to change all existing rules so that they work with the base
> `RelNode` classes.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)