Exemple #1
0
        // <summary>
        // Given the results returned for the left and right inputs to a union, propagates changes
        // through the union.
        // Propagation rule (U = union node, L = left input, R = right input, D(x) = deleted rows
        // in x, I(x) = inserted rows in x)
        // U = L union R
        // D(U) = D(L) union D(R)
        // I(U) = I(L) union I(R)
        // </summary>
        // <param name="node"> Union expression node in the update mapping view. </param>
        // <returns> Result of propagating changes to this union all node. </returns>
        public override ChangeNode Visit(DbUnionAllExpression node)
        {
            Check.NotNull(node, "node");

            // Initialize an empty change node result for the union all node
            var result = BuildChangeNode(node);

            // Retrieve result of propagating changes to the left and right children.
            var left  = Visit(node.Left);
            var right = Visit(node.Right);

            // Implement insertion propagation rule I(U) = I(L) union I(R)
            result.Inserted.AddRange(left.Inserted);
            result.Inserted.AddRange(right.Inserted);

            // Implement deletion progation rule D(U) = D(L) union D(R)
            result.Deleted.AddRange(left.Deleted);
            result.Deleted.AddRange(right.Deleted);

            // The choice of side for the placeholder is arbitrary, since CQTs enforce type compatibility
            // for the left and right hand sides of the union.
            result.Placeholder = left.Placeholder;

            return(result);
        }
Exemple #2
0
        public override object Visit(DbUnionAllExpression expression)
        {
            this.Visit(expression.Left);
            this.Visit(expression.Right);

            return(null);
        }
Exemple #3
0
        public override LegacyCommandTrees.DbExpression Visit(DbUnionAllExpression expression)
        {
            Debug.Assert(expression != null, "expression != null");

            return
                (expression.Left.Accept(this).UnionAll(expression.Right.Accept(this)));
        }
Exemple #4
0
        public override void Visit(DbUnionAllExpression e)
        {
            Check.NotNull(e, "e");

            BeginBinary(e);
            End(e);
        }
Exemple #5
0
 public override void Visit(DbUnionAllExpression expression)
 {
     Write(expression);
     _depth++;
     Write("Left", expression.Left);
     Write("Right", expression.Right);
     _depth--;
 }
        /// <summary>
        /// Implements the visitor pattern for <see cref="T:System.Data.Common.CommandTrees.DbUnionAllExpression"/>.
        /// </summary>
        /// <param name="expression">The <see cref="T:System.Data.Common.CommandTrees.DbUnionAllExpression"/> that is visited.</param>
        public override void Visit(DbUnionAllExpression expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

            expression.Left.Accept(this);
            expression.Right.Accept(this);
        }
Exemple #7
0
        /// <summary>
        /// Implements the visitor pattern for <see cref="T:System.Data.Common.CommandTrees.DbUnionAllExpression"/>.
        /// </summary>
        /// <param name="expression">The <see cref="T:System.Data.Common.CommandTrees.DbUnionAllExpression"/> that is visited.</param>
        public override void Visit(DbUnionAllExpression expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

            expression.Left.Accept(this);
            expression.Right.Accept(this);
        }
        public override Expression Visit(DbUnionAllExpression expression)
        {
            Type resultType = edmTypeConverter.Convert(expression.ResultType);

            Expression left = this.Visit(expression.Left);
            Expression right = this.Visit(expression.Right);

            var resultElemType = TypeHelper.GetElementType(resultType);
            this.UnifyCollections(resultElemType, ref left, ref right);

            return queryMethodExpressionBuilder.Concat(left, right);
        }
        public override Expression Visit(DbUnionAllExpression expression)
        {
            Type resultType = edmTypeConverter.Convert(expression.ResultType);

            Expression left  = this.Visit(expression.Left);
            Expression right = this.Visit(expression.Right);

            var resultElemType = TypeHelper.GetElementType(resultType);

            this.UnifyCollections(resultElemType, ref left, ref right);

            return(queryMethodExpressionBuilder.Concat(left, right));
        }
        public override SqlFragment Visit(DbUnionAllExpression expression)
        {
            UnionFragment f = new UnionFragment();

            Debug.Assert(expression.Left is DbProjectExpression);
            Debug.Assert(expression.Right is DbProjectExpression);

            SelectStatement left = VisitInputExpressionEnsureSelect(expression.Left, null, null);

            Debug.Assert(left.Name == null);
            left.Wrap(null);

            SelectStatement right = VisitInputExpressionEnsureSelect(expression.Right, null, null);

            Debug.Assert(right.Name == null);
            right.Wrap(null);

            f.Left  = left;
            f.Right = right;
            return(f);
        }
 /// <summary>
 ///     Visitor pattern method for DbUnionAllExpression.
 /// </summary>
 /// <param name="expression"> The DbUnionAllExpression that is being visited. </param>
 public abstract void Visit(DbUnionAllExpression expression);
 public override TreeNode Visit(DbUnionAllExpression e)
 {
     return(this.VisitBinary(e));
 }
Exemple #13
0
 public override void Visit(DbUnionAllExpression e)
 {
     VisitBinary(e);
 }
		public override void Visit(DbUnionAllExpression expression)
		{
			throw new NotSupportedException("Visit(\"UnionAllExpression\") is not supported.");
		}
        /// <summary>
        ///     Visitor pattern method for <see cref="DbUnionAllExpression" />.
        /// </summary>
        /// <param name="expression"> The DbUnionAllExpression that is being visited. </param>
        /// <exception cref="ArgumentNullException">
        ///     <paramref name="expression" />
        ///     is null
        /// </exception>
        public override void Visit(DbUnionAllExpression expression)
        {
            Check.NotNull(expression, "expression");

            VisitBinaryExpression(expression);
        }
        public override TReturn Visit(DbUnionAllExpression expression)
        {
            Check.NotNull(expression, "expression");

            throw ConstructNotSupportedException(expression);
        }
Exemple #17
0
 public override DbExpression Visit(DbUnionAllExpression expression)
 {
     System.Diagnostics.Debug.Print("Visit(DbUnionAllExpression): {0}", expression);
     return(base.Visit(expression));
 }
Exemple #18
0
 public override VfpExpression Visit(DbUnionAllExpression expression)
 {
     return(new VfpUnionAllExpression(expression.ResultType, expression.Left.Accept(this), expression.Right.Accept(this)));
 }
Exemple #19
0
 /// <summary>
 ///     Typed visitor pattern method for DbUnionAllExpression.
 /// </summary>
 /// <param name="expression"> The DbUnionAllExpression that is being visited. </param>
 /// <returns> An instance of TResultType. </returns>
 public abstract TResultType Visit(DbUnionAllExpression expression);
Exemple #20
0
        /// <summary>
        ///     <see cref="VisitBinaryExpression" />
        /// </summary>
        /// <param name="expression"> The DbUnionAllExpression that is being visited. </param>
        /// <returns> </returns>
        public override bool Visit(DbUnionAllExpression expression)
        {
            Check.NotNull(expression, "expression");

            return(VisitBinaryExpression(expression));
        }
Exemple #21
0
 public override void Visit(DbUnionAllExpression expression)
 {
     this.VisitBinaryExpression((DbBinaryExpression)expression);
 }
Exemple #22
0
 public override void Visit(DbUnionAllExpression e)
 {
     Check.NotNull <DbUnionAllExpression>(e, nameof(e));
     this.VisitBinary((DbBinaryExpression)e);
 }
 public override void Visit(DbUnionAllExpression expression) { }
 public override void Visit(DbUnionAllExpression expression)
 {
     Contract.Requires(expression != null);
 }
Exemple #25
0
 public override bool Visit(DbUnionAllExpression expression)
 {
     Check.NotNull <DbUnionAllExpression>(expression, nameof(expression));
     return(this.VisitBinaryExpression((DbBinaryExpression)expression));
 }
Exemple #26
0
            public override DbExpressionEntitySetInfo Visit(DbUnionAllExpression expression)
            {
                Check.NotNull(expression, "expression");

                return(null);
            }
Exemple #27
0
 /// <summary>
 /// This code is shared by <see cref="Visit(DbExceptExpression)"/>
 /// and <see cref="Visit(DbIntersectExpression)"/>
 ///
 /// <see cref="VisitSetOpExpression"/>
 /// Since the left and right expression may not be Sql select statements,
 /// we must wrap them up to look like SQL select statements.
 /// </summary>
 /// <param name="e"></param>
 /// <returns></returns>
 public override ISqlFragment Visit(DbUnionAllExpression e)
 {
     return(VisitSetOpExpression(e.Left, e.Right, "UNION ALL"));
 }
 public override DbExpression Visit(DbUnionAllExpression expression)
 {
     System.Diagnostics.Debug.Print("Visit(DbUnionAllExpression): {0}", expression);
     return base.Visit(expression);
 }
Exemple #29
0
 public override void Visit(DbUnionAllExpression expression)
 {
     throw new NotSupportedException("Visit(\"DbUnionAllExpression\") is not supported.");
 }
Exemple #30
0
 public override bool Visit(DbUnionAllExpression expression)
 {
     return(VisitBinaryExpression(expression));
 }
Exemple #31
0
 public override SqlFragment Visit(DbUnionAllExpression expression)
 {
     throw new NotImplementedException();
 }
 public override ViewValidator.DbExpressionEntitySetInfo Visit(
     DbUnionAllExpression expression)
 {
     Check.NotNull <DbUnionAllExpression>(expression, nameof(expression));
     return((ViewValidator.DbExpressionEntitySetInfo)null);
 }
Exemple #33
0
 public override TreeNode Visit(DbUnionAllExpression e)
 {
     Check.NotNull <DbUnionAllExpression>(e, nameof(e));
     return(this.VisitBinary((DbBinaryExpression)e));
 }
Exemple #34
0
            public override TreeNode Visit(DbUnionAllExpression e)
            {
                Check.NotNull(e, "e");

                return(VisitBinary(e));
            }
 /// <summary>
 ///     Visitor pattern method for DbUnionAllExpression.
 /// </summary>
 /// <param name="expression"> The DbUnionAllExpression that is being visited. </param>
 public abstract void Visit(DbUnionAllExpression expression);
Exemple #36
0
 public override TReturn Visit(DbUnionAllExpression expression)
 {
     Check.NotNull <DbUnionAllExpression>(expression, nameof(expression));
     throw this.ConstructNotSupportedException((DbExpression)expression);
 }
        public override SqlFragment Visit(DbUnionAllExpression expression)
        {
            UnionFragment f = new UnionFragment();
            Debug.Assert(expression.Left is DbProjectExpression);
            Debug.Assert(expression.Right is DbProjectExpression);

            SelectStatement left = VisitInputExpressionEnsureSelect(expression.Left, null, null);
            Debug.Assert(left.Name == null);
            left.Wrap(null);

            SelectStatement right = VisitInputExpressionEnsureSelect(expression.Right, null, null);
            Debug.Assert(right.Name == null);
            right.Wrap(null);

            f.Left = left;
            f.Right = right;
            return f;
        }
 public override void Visit(DbUnionAllExpression e)
 {
     BeginBinary(e);
     End(e);
 }
 public override void Visit(DbUnionAllExpression expression)
 {
   VisitBinary(expression);
 }
        public override void Visit(DbUnionAllExpression e)
        {
            Check.NotNull(e, "e");

            VisitBinary(e);
        }
Exemple #41
0
 public override DbExpressionEntitySetInfo Visit(DbUnionAllExpression expression)
 {
     return(null);
 }
 public override TReturn Visit(DbUnionAllExpression expression)
 {
     throw ConstructNotSupportedException(expression);
 }