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

Reply via email to