private FindPlan ( ObjectName reference ) : |
||
reference | ObjectName | |
return |
private TablePlan FindPlan(ObjectName reference)
{
// If there is only 1 plan then assume the variable is in there.
if (tablePlans.Count == 1)
return tablePlans[0];
foreach (var source in tablePlans) {
if (source.ContainsColumn(reference))
return source;
}
throw new ArgumentException("Unable to find table with variable reference: " + reference);
}
public override void AddToPlanTree() { var op = expression.ExpressionType; var columnName = expression.Left.AsReferenceName(); var queryPlan = expression.Right.AsQueryPlan(); var tablePlan = planner.FindPlan(columnName); var leftPlan = tablePlan.Plan; tablePlan.UpdatePlan(new NonCorrelatedAnyAllNode(leftPlan, queryPlan, new [] { columnName }, op)); }