Hi Danny, >From the initial discussion, I was leaning more towards the idea of having a separate component (something like what is described in CALCITE-4073) that people can use if they really need to. >From my experience so far I can confirm that different projects have different needs in terms of normalization. Putting this logic in the constructor forces people to follow a specific pattern so it would be nice if we could avoid that.
I am not sure I understand what you mean when you say disabling it by default. Are you talking about features that are already released or the things currently in progress for 1.24.0? Best, Stamatis On Wed, Jul 8, 2020 at 10:39 AM Danny Chan <yuzhao....@gmail.com> wrote: > In CALCITE-2450, we proposed a change to normalize the RexNode, and there > is a discussion[1], the change is in very early phrase and the > normalization pattern is unstable. > > There is actually no common consensus about what a form (or pattern) a > desired normalization should be: > > • People may have different requests in different contexts. > • Different downstream projects may also have different requests > > The problem becomes critical after CALCITE-3786 because there are more > cases be normalized (about 50+ plan changes). In CALCITE-3786, we move the > normalization to constructor because the digest equals and object equals > should be equivalent for the RexCalls. > > The downstream project like Apache Flink would have much more cases with > normalized plans. But actually, the normalization gains little. I think > other downstream projects have similar situation. > > I would suggest to default disable the normalization until it is “stable” > enough, at least, after we have a consensus about what is a normalized > pattern should be, there is an issue [3] already and we can have more > discussion based on that. > > Appreciate for your suggestions, thanks in advance ~ > > [1] > https://lists.apache.org/x/thread.html/54bf3ed733eb7e725ce3ea397334aad8f1323ead13e450b1753b1521@%3Cdev.calcite.apache.org%3E > [2] https://issues.apache.org/jira/browse/CALCITE-2450 > [3] https://issues.apache.org/jira/browse/CALCITE-4073 > > Best, > Danny Chan >