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