コード例 #1
0
        private BoundRelation BindOuterJoinedTableReference(OuterJoinedTableReferenceSyntax node)
        {
            var joinType = node.TypeKeyword.Kind == SyntaxKind.LeftKeyword
                               ? BoundJoinType.LeftOuter
                               : node.TypeKeyword.Kind == SyntaxKind.RightKeyword
                                     ? BoundJoinType.RightOuter
                                     : BoundJoinType.FullOuter;

            var left  = BindTableReference(node.Left);
            var right = BindTableReference(node.Right);

            var binder    = CreateJoinConditionBinder(left, right);
            var condition = binder.BindExpression(node.Condition);

            if (condition.Type.IsNonBoolean())
            {
                Diagnostics.ReportOnClauseMustEvaluateToBool(node.Condition.Span);
            }

            return(new BoundJoinRelation(joinType, left, right, condition, null, null));
        }
コード例 #2
0
 public virtual void VisitOuterJoinedTableReference(OuterJoinedTableReferenceSyntax node)
 {
     DefaultVisit(node);
 }
コード例 #3
0
 public virtual TResult VisitOuterJoinedTableReference(OuterJoinedTableReferenceSyntax node)
 {
     return(DefaultVisit(node));
 }