[
https://issues.apache.org/jira/browse/OPTIQ-396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14119007#comment-14119007
]
Julian Hyde commented on OPTIQ-396:
-----------------------------------
This patch makes createJoin more specific (from RelNode to JoinRelBase) and
createSemiJoin less specific (from SemiJoinRel to JoinRelBase). The problem
with making factories too specific is that you can no longer use a novel
implementation. So we should be careful.
Also, I am considering making SemiJoin not inherit from JoinRelBase. In many
ways (such as its output row type) it behaves more like a filter. As part of
the same change I would create a new interface SemiJoinFactory.
Net net... please justify why these changes are necessary, given that they
might create compatibility issues in future.
> Change return type of JoinFactory::create*Join()
> ------------------------------------------------
>
> Key: OPTIQ-396
> URL: https://issues.apache.org/jira/browse/OPTIQ-396
> Project: Optiq
> Issue Type: Task
> Reporter: Ashutosh Chauhan
> Assignee: Ashutosh Chauhan
> Attachments: OPTIQ-396.patch
>
>
> This provides tighter type checking than RelNode and is consistent with
> RelFieldTrimmer, only consumer of this factory which assumes these nodes to
> be of type {{JoinRelBase}}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)