final List<RexNode> leftFilters = new ArrayList<>(); final List<RexNode> rightFilters = new ArrayList<>(); RelOptUtil.classifyFilters(join, joinFilters, join.getJoinType(),false, !join.getJoinType().generatesNullsOnRight(), !join.getJoinType().generatesNullsOnLeft(), joinFilters, leftFilters, rightFilters);
RelOptUtil.classifyFilters(joinRel, joinFilters, joinRel.getJoinType(), false, !joinRel.getJoinType().generatesNullsOnRight(), !joinRel .getJoinType().generatesNullsOnLeft(), joinFilters, leftFilters,
RelOptUtil.classifyFilters(joinRel, joinFilters, joinRel.getJoinType(), false, !joinRel.getJoinType().generatesNullsOnRight(), !joinRel .getJoinType().generatesNullsOnLeft(), joinFilters, leftFilters,
if (RelOptUtil.classifyFilters(join, aboveFilters, joinType, !(join instanceof EquiJoin), !joinType.generatesNullsOnLeft(), !joinType.generatesNullsOnRight(), joinFilters, leftFilters, rightFilters)) { if (RelOptUtil.classifyFilters(join, joinFilters, joinType, false, !joinType.generatesNullsOnRight(), !joinType.generatesNullsOnLeft(), joinFilters, leftFilters, rightFilters)) { filterPushed = true;
if (RelOptUtil.classifyFilters( join, aboveFilters, if (RelOptUtil.classifyFilters( join, joinFilters,
if (RelOptUtil.classifyFilters( join, aboveFilters, if (RelOptUtil.classifyFilters( join, joinFilters,
final List<RexNode> predList = RelOptUtil.conjunctions(predicate); RelOptUtil.classifyFilters( joinRel, predList,
final List<RexNode> predList = RelOptUtil.conjunctions(predicate); RelOptUtil.classifyFilters( joinRel, predList,
RelOptUtil.classifyFilters( corr, aboveFilters,
RelOptUtil.classifyFilters( corr, aboveFilters,
if (RelOptUtil.classifyFilters( join, deterministicAboveFilters, if (!isAntiJoin && RelOptUtil.classifyFilters( join, deterministicJoinFilters,
RelOptUtil.classifyFilters(joinRel, joinFilters, joinRel.getJoinType(), false, !joinRel.getJoinType().generatesNullsOnRight(), !joinRel .getJoinType().generatesNullsOnLeft(), joinFilters, leftFilters,