[
https://issues.apache.org/jira/browse/CALCITE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17013953#comment-17013953
]
Danny Chen commented on CALCITE-3723:
-------------------------------------
bq. By the way, we need to add hints to RelBuilder. Is there a way to do it in
a backwards-compatible way?
RelBuilder is so widely used, as a tool class, people always pass the
parameters that are really needed, like we already do for many methods(same
name but different params), so i think we can add new interface to have
explicit hints as argument for every kind of RelNode.
This is another big change i think.
> Following the change to add hints to RelNode, deprecate the old constructors
> ----------------------------------------------------------------------------
>
> Key: CALCITE-3723
> URL: https://issues.apache.org/jira/browse/CALCITE-3723
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Priority: Major
>
> In CALCITE-482 and CALCITE-3590 we added constructors for various sub-classes
> RelNode ({{LogicalProject}}, {{LogicalAggregate}}, and others) that take a
> list of hints. But now those classes have two constructors. Our practice has
> been to have only one (public, non-deprecated) constructor in each RelNode
> class. (Otherwise we would have dozens.) So, please deprecate the old
> constructors and change code that uses them.
> Can we do this before 1.22?
> Also note that the new and old constructors have exactly the same comment.
> You should avoid that. But in this case, just remove the comment of the
> deprecated constructor.
> The non-hints constructor does {{new ArrayList<>()}}. Please change to use
> {{ImmutableList.of()}}, which saves a malloc.
> cc [~danny0405] and [~icshuo].
--
This message was sent by Atlassian Jira
(v8.3.4#803005)