inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); joinPredicate = filterDeterministicConjuncts(joinPredicate); leftEffectivePredicate = filterDeterministicConjuncts(leftEffectivePredicate); rightEffectivePredicate = filterDeterministicConjuncts(rightEffectivePredicate);
@Override public Expression visitFilter(FilterNode node, Void context) { Expression underlyingPredicate = node.getSource().accept(this, context); Expression predicate = node.getPredicate(); // Remove non-deterministic conjuncts predicate = filterDeterministicConjuncts(predicate); return combineConjuncts(predicate, underlyingPredicate); }
@Override public Expression visitFilter(FilterNode node, Void context) { Expression underlyingPredicate = node.getSource().accept(this, context); Expression predicate = node.getPredicate(); // Remove non-deterministic conjuncts predicate = filterDeterministicConjuncts(predicate); return combineConjuncts(predicate, underlyingPredicate); }
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); joinPredicate = filterDeterministicConjuncts(joinPredicate); leftEffectivePredicate = filterDeterministicConjuncts(leftEffectivePredicate); rightEffectivePredicate = filterDeterministicConjuncts(rightEffectivePredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); outerEffectivePredicate = filterDeterministicConjuncts(outerEffectivePredicate); innerEffectivePredicate = filterDeterministicConjuncts(innerEffectivePredicate); joinConjuncts.addAll(filter(extractConjuncts(joinPredicate), not(DeterminismEvaluator::isDeterministic))); joinPredicate = filterDeterministicConjuncts(joinPredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); outerEffectivePredicate = filterDeterministicConjuncts(outerEffectivePredicate); innerEffectivePredicate = filterDeterministicConjuncts(innerEffectivePredicate); joinConjuncts.addAll(filter(extractConjuncts(joinPredicate), not(DeterminismEvaluator::isDeterministic))); joinPredicate = filterDeterministicConjuncts(joinPredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate);
inheritedPredicate = filterDeterministicConjuncts(inheritedPredicate);
private PlanNode visitFilteringSemiJoin(SemiJoinNode node, RewriteContext<Expression> context) Expression deterministicInheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); Expression sourceEffectivePredicate = filterDeterministicConjuncts(effectivePredicateExtractor.extract(node.getSource())); Expression filteringSourceEffectivePredicate = filterDeterministicConjuncts(effectivePredicateExtractor.extract(node.getFilteringSource())); Expression joinExpression = new ComparisonExpression( ComparisonExpression.Operator.EQUAL,
private PlanNode visitFilteringSemiJoin(SemiJoinNode node, RewriteContext<Expression> context) Expression deterministicInheritedPredicate = filterDeterministicConjuncts(inheritedPredicate); Expression sourceEffectivePredicate = filterDeterministicConjuncts(effectivePredicateExtractor.extract(node.getSource())); Expression filteringSourceEffectivePredicate = filterDeterministicConjuncts(effectivePredicateExtractor.extract(node.getFilteringSource())); Expression joinExpression = new ComparisonExpression( ComparisonExpression.Operator.EQUAL,
Expression deterministicPredicate = filterDeterministicConjuncts(predicate);
Expression deterministicPredicate = filterDeterministicConjuncts(predicate);