26 throw new ArgumentNullException(
"plan");
27 if (columnNames == null)
28 throw new ArgumentNullException(
"columnNames");
31 ColumnNames = columnNames;
32 UniqueNames = uniqueNames;
46 public bool IsUpdated {
get;
private set; }
57 public string[] UniqueNames {
get;
private set; }
63 public JoinType LeftJoinType {
get;
private set; }
65 public JoinType RightJoinType {
get;
private set; }
73 Plan =
new CachePointNode(Plan);
82 LeftJoinType = joinType;
83 LeftOnExpression = onExpression;
88 RightJoinType = joinType;
89 RightOnExpression = onExpression;
96 RightPlan.LeftPlan =
this;
100 LeftPlan.RightPlan =
this;
105 if (LeftPlan == null && left.
LeftPlan != null) {
107 LeftPlan.RightPlan =
this;
109 if (RightPlan == null && right.
RightPlan != null) {
111 RightPlan.LeftPlan =
this;
117 return ColumnNames.Contains(columnName);
121 if (UniqueNames == null || UniqueNames.Length == 0)
124 return UniqueNames.Contains(name);
128 return new TablePlan(Plan, ColumnNames, UniqueNames);
SqlExpression LeftOnExpression
void MergeJoin(TablePlan left, TablePlan right)
JoinType
Enumerates the kind of group join in a selection query.
A query to the database to select data from a set of tables and columns.
bool ContainsColumn(ObjectName columnName)
void RightJoin(TablePlan right, JoinType joinType, SqlExpression onExpression)
Describes the name of an object within a database.
A node element of a query plan tree. /summary>
TablePlan(IQueryPlanNode plan, ObjectName[] columnNames, string[] uniqueNames)
void UpdatePlan(IQueryPlanNode queryPlan)
bool ContainsName(string name)
SqlExpression RightOnExpression
void LeftJoin(TablePlan left, JoinType joinType, SqlExpression onExpression)
Defines the base class for instances that represent SQL expression tree nodes.