private List<RexNode> getConjunctions(Filter filter) {
    List<RexNode> conjunctions = conjunctions(filter.getCondition());
    RexBuilder rexBuilder = filter.getCluster().getRexBuilder();
    for (int i = 0; i < conjunctions.size(); i++) {
      RexNode node = conjunctions.get(i);
      if (node instanceof RexCall) {
        conjunctions.set(i,
            RelOptUtil.collapseExpandedIsNotDistinctFromExpr((RexCall) node, rexBuilder));
      }
    }
    return conjunctions;
  }
Perform is duplicated from parent class to be able to call the modified
classify filters. The modified classify method can push filter conditions
that refer only to the SJ right input to the corresponding input (the
fix is in the number of fields for the join, which is inferred from the
join in the original method rather than the concatenation of the join
inputs).
TODO: Remove this method once {@link RelOptUtil#classifyFilters} is fixed.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterJoinRule.java