You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vladimir Sitnikov (JIRA)" <ji...@apache.org> on 2014/11/24 10:51:12 UTC

[jira] [Created] (CALCITE-479) Migrate RelNode.getChildExps to RelNode.acept(RexShuttle)

Vladimir Sitnikov created CALCITE-479:
-----------------------------------------

             Summary: Migrate RelNode.getChildExps to RelNode.acept(RexShuttle)
                 Key: CALCITE-479
                 URL: https://issues.apache.org/jira/browse/CALCITE-479
             Project: Calcite
          Issue Type: Bug
    Affects Versions: 1.0.0-incubating
            Reporter: Vladimir Sitnikov
            Assignee: Julian Hyde


> What if we kill RelNode.getChildExps and add RelNode
> RelNode.accept(RexShuttle shuttle) instead?

{quote}[~julianhyde]
+1 That method is very general-purpose. I like it.

It should respect the immutability of RelNodes and return a new
RelNode iff there are changes. Most RelNodes, except sub-classes of
project, filter, join, will just 'return this' right away.

The shuttle must make only very limited changes. Even changing the
output type of an expression should not be allowed. We can relax these
restrictions later, if justified.
{quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)