You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/01/10 19:35:00 UTC

[jira] [Created] (CALCITE-3723) Following the change to add hints to RelNode, deprecate the old constructors

Julian Hyde created CALCITE-3723:
------------------------------------

             Summary: 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


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)