[
https://issues.apache.org/jira/browse/CALCITE-1166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15209402#comment-15209402
]
Julian Hyde commented on CALCITE-1166:
--------------------------------------
It's probably a wash: {{predicate.apply(rel)}} will be slower, while
{{RelOptRuleOperand.matches}} will cease to be a virtual call, so will be
faster, and it's called more often.
> Disallow sub-classes of RelOptRuleOperand
> -----------------------------------------
>
> Key: CALCITE-1166
> URL: https://issues.apache.org/jira/browse/CALCITE-1166
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Assignee: Julian Hyde
>
> Disallow sub-classes of {{RelOptRuleOperand}}. The only reason that people
> have sub-classed {{RelOptRuleOperand}} is to override the {{boolean
> matches(RelNode)}} method, and you can now achieve that by supplying a
> {{Predicate}} to the constructor.
> Next release, we will deprecate {{RelOptRuleOperand}}'s protected constructor
> and create a new private or package-protected one. Later we will remove that
> constructor.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)