@@ -13,19 +13,20 @@ use crate::{
1313 DimensionName , EmptyRelationDerivedSourceTableName , EmptyRelationIsWrappable ,
1414 EmptyRelationProduceOneRow , FilterMemberMember , FilterMemberOp , FilterMemberValues ,
1515 FilterOpOp , GroupingSetExprType , GroupingSetType , InListExprNegated ,
16- InSubqueryExprNegated , JoinJoinConstraint , JoinJoinType , JoinLeftOn , JoinRightOn ,
17- LikeExprEscapeChar , LikeExprLikeType , LikeExprNegated , LikeType , LimitFetch , LimitSkip ,
18- LiteralExprValue , LiteralMemberRelation , LiteralMemberValue , LogicalPlanLanguage ,
19- MeasureName , MemberErrorError , OrderAsc , OrderMember , OuterColumnExprColumn ,
20- OuterColumnExprDataType , ProjectionAlias , ProjectionSplit , QueryParamIndex ,
21- ScalarFunctionExprFun , ScalarUDFExprFun , ScalarVariableExprDataType ,
22- ScalarVariableExprVariable , SegmentMemberMember , SortExprAsc , SortExprNullsFirst ,
23- SubqueryTypes , TableScanFetch , TableScanProjection , TableScanSourceTableName ,
24- TableScanTableName , TableUDFExprFun , TimeDimensionDateRange , TimeDimensionGranularity ,
25- TimeDimensionName , TryCastExprDataType , UnionAlias , WindowFunctionExprFun ,
26- WindowFunctionExprWindowFrame , WrappedSelectAlias , WrappedSelectDistinct ,
27- WrappedSelectJoinJoinType , WrappedSelectLimit , WrappedSelectOffset ,
28- WrappedSelectSelectType , WrappedSelectType , WrappedSelectUngrouped ,
16+ InSubqueryExprNegated , JoinJoinConstraint , JoinJoinType , JoinLeftOn ,
17+ JoinNullEqualsNull , JoinRightOn , LikeExprEscapeChar , LikeExprLikeType , LikeExprNegated ,
18+ LikeType , LimitFetch , LimitSkip , LiteralExprValue , LiteralMemberRelation ,
19+ LiteralMemberValue , LogicalPlanLanguage , MeasureName , MemberErrorError , OrderAsc ,
20+ OrderMember , OuterColumnExprColumn , OuterColumnExprDataType , ProjectionAlias ,
21+ ProjectionSplit , QueryParamIndex , ScalarFunctionExprFun , ScalarUDFExprFun ,
22+ ScalarVariableExprDataType , ScalarVariableExprVariable , SegmentMemberMember ,
23+ SortExprAsc , SortExprNullsFirst , SubqueryTypes , TableScanFetch , TableScanProjection ,
24+ TableScanSourceTableName , TableScanTableName , TableUDFExprFun , TimeDimensionDateRange ,
25+ TimeDimensionGranularity , TimeDimensionName , TryCastExprDataType , UnionAlias ,
26+ WindowFunctionExprFun , WindowFunctionExprWindowFrame , WrappedSelectAlias ,
27+ WrappedSelectDistinct , WrappedSelectJoinJoinType , WrappedSelectLimit ,
28+ WrappedSelectOffset , WrappedSelectSelectType , WrappedSelectType ,
29+ WrappedSelectUngrouped ,
2930 } ,
3031 CubeContext ,
3132 } ,
@@ -662,13 +663,16 @@ impl LogicalPlanToLanguageConverter {
662663 let join_type = add_data_node ! ( self , node. join_type, JoinJoinType ) ;
663664 let join_constraint =
664665 add_data_node ! ( self , node. join_constraint, JoinJoinConstraint ) ;
666+ let null_equals_null =
667+ add_data_node ! ( self , node. null_equals_null, JoinNullEqualsNull ) ;
665668 self . graph . add ( LogicalPlanLanguage :: Join ( [
666669 left,
667670 right,
668671 left_on,
669672 right_on,
670673 join_type,
671674 join_constraint,
675+ null_equals_null,
672676 ] ) )
673677 }
674678 LogicalPlan :: CrossJoin ( node) => {
@@ -1390,15 +1394,16 @@ impl LanguageToLogicalPlanConverter {
13901394 & join_type,
13911395 ) ?) ;
13921396
1397+ let null_equals_null = match_data_node ! ( node_by_id, params[ 6 ] , JoinNullEqualsNull ) ;
1398+
13931399 LogicalPlan :: Join ( Join {
13941400 left,
13951401 right,
13961402 on : left_on. into_iter ( ) . zip_eq ( right_on. into_iter ( ) ) . collect ( ) ,
13971403 join_type,
13981404 join_constraint,
13991405 schema,
1400- // TODO: Pass to Graph
1401- null_equals_null : true ,
1406+ null_equals_null,
14021407 } )
14031408 }
14041409 LogicalPlanLanguage :: CrossJoin ( params) => {
0 commit comments