public void VisitEachStatement(Action <SelectStmt> action) { if (IsLeaf()) { action(stmt_); } else { left_.VisitEachStatement(action); right_.VisitEachStatement(action); } }
internal void ResolveOrdinals() { if (setops_ is null) { if (shallExpandSelection_) { selection_ = selectionRemoveSubquery(selection_); } logicPlan_.ResolveColumnOrdinal(selection_, parent_ != null); } else { // resolve each and use the first one to resolve ordinal since all are compatible var first = setops_.first_; setops_.VisitEachStatement(x => { x.logicPlan_.ResolveColumnOrdinal(x.selection_, false); }); logicPlan_.ResolveColumnOrdinal(first.selection_, parent_ != null); } }