// <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); }
public override object Visit(DbUnionAllExpression expression) { this.Visit(expression.Left); this.Visit(expression.Right); return(null); }
public override LegacyCommandTrees.DbExpression Visit(DbUnionAllExpression expression) { Debug.Assert(expression != null, "expression != null"); return (expression.Left.Accept(this).UnionAll(expression.Right.Accept(this))); }
public override void Visit(DbUnionAllExpression e) { Check.NotNull(e, "e"); BeginBinary(e); End(e); }
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); }
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)); }
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); }
public override DbExpression Visit(DbUnionAllExpression expression) { System.Diagnostics.Debug.Print("Visit(DbUnionAllExpression): {0}", expression); return(base.Visit(expression)); }
public override VfpExpression Visit(DbUnionAllExpression expression) { return(new VfpUnionAllExpression(expression.ResultType, expression.Left.Accept(this), expression.Right.Accept(this))); }
/// <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);
/// <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)); }
public override void Visit(DbUnionAllExpression expression) { this.VisitBinaryExpression((DbBinaryExpression)expression); }
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); }
public override bool Visit(DbUnionAllExpression expression) { Check.NotNull <DbUnionAllExpression>(expression, nameof(expression)); return(this.VisitBinaryExpression((DbBinaryExpression)expression)); }
public override DbExpressionEntitySetInfo Visit(DbUnionAllExpression expression) { Check.NotNull(expression, "expression"); return(null); }
/// <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); }
public override void Visit(DbUnionAllExpression expression) { throw new NotSupportedException("Visit(\"DbUnionAllExpression\") is not supported."); }
public override bool Visit(DbUnionAllExpression expression) { return(VisitBinaryExpression(expression)); }
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); }
public override TreeNode Visit(DbUnionAllExpression e) { Check.NotNull <DbUnionAllExpression>(e, nameof(e)); return(this.VisitBinary((DbBinaryExpression)e)); }
public override TreeNode Visit(DbUnionAllExpression e) { Check.NotNull(e, "e"); return(VisitBinary(e)); }
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); }
public override DbExpressionEntitySetInfo Visit(DbUnionAllExpression expression) { return(null); }
public override TReturn Visit(DbUnionAllExpression expression) { throw ConstructNotSupportedException(expression); }