[
https://issues.apache.org/jira/browse/BEAM-4439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16684359#comment-16684359
]
Mohamed Elqdusy commented on BEAM-4439:
---------------------------------------
Hi Dr.[~kenn], I have approached the solution by:
Extending *RelOptRule,* return false from *matches()* if It's *JoinRelType.FULL*
when running the test [ *BeamSqlDslJoinTest*.+testFullOuterJoin ]+, It fails
with the exception
{code:java}
org.apache.beam.repackaged.beam_sdks_java_extensions_sql.org.apache.calcite.plan.RelOptPlanner$CannotPlanException:
Node [rel#15:Subset#3.BEAM_LOGICAL] could not be implemented;{code}
Is it guaranteed to make the logical optimizer to choose non-full joins? or why
the planner stuck?
> Do not convert a join that we cannot support
> --------------------------------------------
>
> Key: BEAM-4439
> URL: https://issues.apache.org/jira/browse/BEAM-4439
> Project: Beam
> Issue Type: Sub-task
> Components: dsl-sql
> Reporter: Kenneth Knowles
> Priority: Major
> Labels: starter
>
> The BeamJoinRule matches all LogicalJoin operators. If we make it not match a
> full join then Calcite should look for a different plan when it converts to
> BeamLogicalConvention. That is a good step to make sure we can support things
> and also force the logical optimizer to choose non-full joins.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)