// Find the query result columns ...
start = System.nanoTime();
// Determine the Columns object for specific nodes in the plan, and store them in the context ...
optimizedPlan.apply(Traversal.POST_ORDER, new PlanNode.Operation() {
@Override
public void apply( PlanNode node ) {
Columns columns = null;
switch (node.getType()) {