docs: private void moveCriteriaIntoOnClause( PlanNode criteriaNode,
                                             PlanNode joinNode ) {
          List<Constraint> constraints = joinNode.getPropertyAsList(Property.JOIN_CONSTRAINTS, Constraint.class);
          Constraint criteria = criteriaNode.getProperty(Property.SELECT_CRITERIA, Constraint.class);
  
          // since the parser uses EMPTY_LIST, check for size 0 also
          if (constraints == null || constraints.isEmpty()) {
              constraints = new LinkedList<Constraint>();
              joinNode.setProperty(Property.JOIN_CONSTRAINTS, constraints);
          }
  
          if (!constraints.contains(criteria)) {
              constraints.add(criteria);
              if (criteriaNode.hasBooleanProperty(Property.IS_DEPENDENT)) {
                  joinNode.setProperty(Property.IS_DEPENDENT, Boolean.TRUE);
              }
          }
          criteriaNode.extractFromParent();
      }