@Override
    public boolean matches(RelOptRuleCall call) {
      Join join = call.rel(0);
      List<RexNode> joinConds = RelOptUtil.conjunctions(join.getCondition());

      for (RexNode joinCnd : joinConds) {
        if (!HiveCalciteUtil.isDeterministic(joinCnd)) {
          return false;
        }
      }

      return true;
    }
Rule that tries to push filter expressions into a join condition and into
the inputs of the join.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterJoinRule.java