private Double rankingAnd(RexNode e) {
      Double selectivity = selectivityEstimator.estimateSelectivity(e);
      if (selectivity == null) {
        return null;
      }
      Double costPerTuple = costPerTuple(e);
      if (costPerTuple == null) {
        return null;
      }
      return (selectivity - 1d) / costPerTuple;
    }
Nodes in an AND clause are sorted by a rank value calculated as:
rank = (selectivity - 1) / cost per tuple
The intuition is that more selective/cheaper conditions should be evaluated
first in the AND clause, since FALSE will end the evaluation.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSortPredicates.java