Hi Piotr,

Aggregate is not doing anything in #accept(RexShuttle) since it does not
contain row expressions (RexNode). If the node you introduce uses row
expressions then it makes sense to apply the shuttle to every expression.

Best,
Stamatis

Στις Πέμ, 31 Ιαν 2019 στις 5:39 μ.μ., ο/η Piotr Nowojski <
[email protected]> έγραψε:

> Hi!
>
> We are adding a new custom RelNode, that behaves a little bit like
> Aggregate node and we are wondering how we should implement
>
> RelNode#accept(org.apache.calcite.rex.RexShuttle)
>
> Our node has a similar feature as Aggregate node, that it’s keying by the
> incoming data. At first I thought that this #accept() method should be
> implemented by applying the RexShuttle to all of the expressions that node
> is using internally (in our case key fields “expressions”/“references"),
> like it’s done in Join, Sort, Filter, …. But then I noticed that this
> method is not implemented for Aggregate node. So can we leave this method
> with the default implementation `return this;` as Aggregate node does it?
>
> Thanks, Piotr Nowojski

Reply via email to