[
https://issues.apache.org/jira/browse/CALCITE-7243?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18032815#comment-18032815
]
Steve Carlin commented on CALCITE-7243:
---------------------------------------
Yeah, but I guess my point is that the RelDecorrelator just has a wrong feel to
it...
The RelDecorrelator constructor is protected, but it uses factory creation and
the factory creators take a RelBuilder as a parameter:
[https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java#L219C1-L222C4]
So it would seem to me that this "RelBuilder" should be used throughout the
RelDecorrelator. But it's awkward because while it looks like the rules want
to use this RelBuilder (because it passes it as a parameter into the
relBuilderFactory() method), it actually does not use the RelBuilder passed in.
It creates its own RelBuilder and passes in the RelBuilder as a "Context".
But I didn't see any code in RelBuilder that unwraps the RelBuilder as a
context, so it seems buggy to me.
> Rules in RelDecorrelator not using config of RelBuilder passed in
> -----------------------------------------------------------------
>
> Key: CALCITE-7243
> URL: https://issues.apache.org/jira/browse/CALCITE-7243
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Steve Carlin
> Priority: Major
>
> So I think this is a bug, but I'm not sure I have a complete understanding of
> the code.
> One rule used in RelDecorrelator is on this line:
> [https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java#L296]
> Here, it uses the rule with what seemingly is the RelBuilder that is passed
> into the RelDecorrelator as shown in this line:
> [https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java#L281]
> I think the problem is that the RelBuilder needs a Context or a Factory
> passed in. It doesn't seem meant to handle a RelBuilder itself?
> Not sure how to fix this, but I hit this problem when I needed to use my own
> RelBuilder containing a value within my RelBuilder.Config, and it was not
> using my RelBuilder in this rule.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)