// Look for any SELECT nodes above this but below an ACCESS node, because all of the SELECT define
// criteria that are all ANDed together ...
final List<Constraint> constraints = new LinkedList<>();
final List<JoinCondition> joinConditions = new LinkedList<>();
final Set<String> nodeTypeNames = new HashSet<>();
source.applyToAncestors(new Operation() {
@Override
public void apply( PlanNode node ) {
if (node.getType() == Type.SELECT) {
Constraint constraint = node.getProperty(Property.SELECT_CRITERIA, Constraint.class);
if (constraint != null) {