예제 #1
0
 protected virtual BoundRelation RewriteJoinRelation(BoundJoinRelation node)
 {
     return(node.Update(node.JoinType,
                        RewriteRelation(node.Left),
                        RewriteRelation(node.Right),
                        RewriteExpression(node.Condition),
                        RewriteValueSlot(node.Probe),
                        RewriteExpression(node.PassthruPredicate)));
 }
        protected override void VisitJoinRelation(BoundJoinRelation node)
        {
            if (node.JoinType == BoundJoinType.FullOuter ||
                node.JoinType == BoundJoinType.LeftOuter ||
                node.JoinType == BoundJoinType.RightOuter)
            {
                _diagnostics.ReportCteContainsOuterJoin(_syntax.Name);
            }

            base.VisitJoinRelation(node);
        }
        protected virtual void VisitJoinRelation(BoundJoinRelation node)
        {
            VisitRelation(node.Left);
            VisitRelation(node.Right);

            if (node.Condition != null)
            {
                VisitExpression(node.Condition);
            }

            if (node.PassthruPredicate != null)
            {
                VisitExpression(node.PassthruPredicate);
            }
        }
 private static void GetDeclaredTableInstances(List <TableInstanceSymbol> receiver, BoundJoinRelation node)
 {
     GetDeclaredTableInstances(receiver, node.Left);
     GetDeclaredTableInstances(receiver, node.Right);
 }