Deveel.Data.Sql.Query.TablePlan.MergeJoin C# (CSharp) Method

MergeJoin() public method

public MergeJoin ( TablePlan left, TablePlan right ) : void
left TablePlan
right TablePlan
return void
        public void MergeJoin(TablePlan left, TablePlan right)
        {
            if (left.RightPlan != right) {
                if (left.RightPlan != null) {
                    RightJoin(left.RightPlan, left.RightJoinType, left.RightOnExpression);
                    RightPlan.LeftPlan = this;
                }
                if (right.LeftPlan != null) {
                    LeftJoin(right.LeftPlan, right.LeftJoinType, right.LeftOnExpression);
                    LeftPlan.RightPlan = this;
                }
            }

            if (left.LeftPlan != right) {
                if (LeftPlan == null && left.LeftPlan != null) {
                    LeftJoin(left.LeftPlan, left.LeftJoinType, left.LeftOnExpression);
                    LeftPlan.RightPlan = this;
                }
                if (RightPlan == null && right.RightPlan != null) {
                    RightJoin(right.RightPlan, right.RightJoinType, right.RightOnExpression);
                    RightPlan.LeftPlan = this;
                }
            }
        }