You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vladimir Sitnikov (JIRA)" <ji...@apache.org> on 2019/02/01 10:57:00 UTC
[jira] [Commented] (CALCITE-2201) Allow passing custom RelBuilder
into RelDecorrelator and RelStructuredTypeFlattener
[ 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)