[
https://issues.apache.org/jira/browse/CALCITE-2201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16758214#comment-16758214
]
Vladimir Sitnikov commented on CALCITE-2201:
--------------------------------------------
{quote}Julian: Are there any external reasons to pass a RelBuilderFactory
rather than RelBuilder? I don't think so.{quote}
[~julianhyde], I think there's a reason to pass RelBuilderFactory to
RelDecorrelator.
The thing is RelDecorrelator is using rules like
{{FilterProjectTransposeRule(Filter.class, Project.class,}}, and it basically
matches any filter and produces noone knows which relation. For instance, it
could produce LogicalFilter(input=EnumerableProject) which is just odd.
So RelDecorrelator should get not just RelBuilder, but an additional
information that would configure the rules to match proper relations (==match
logical ones in case Builder is going to create logical rels).
> Allow passing custom RelBuilder into RelDecorrelator and
> RelStructuredTypeFlattener
> -----------------------------------------------------------------------------------
>
> Key: CALCITE-2201
> URL: https://issues.apache.org/jira/browse/CALCITE-2201
> Project: Calcite
> Issue Type: Task
> Reporter: Volodymyr Vysotskyi
> Assignee: Julian Hyde
> Priority: Major
> Fix For: 1.17.0
>
>
> When {{RelDecorrelator.decorrelateQuery()}} method is called,
> {{RelDecorrelator}} instance with {{RelFactories.LOGICAL_BUILDER}} is
> created. We should modify this method to allow usage of custom {{RelBuilder}}.
> Also, {{RelStructuredTypeFlattener}} class should be modified in a similar
> way.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)