[ 
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)

Reply via email to