@Override public boolean matches(RelOptRuleCall call) { if (!super.matches(call)) { return false; } Aggregate oldAggRel = (Aggregate) call.rels[0]; return containsAvgStddevVarCall(oldAggRel.getAggCallList()); }
@Override public boolean matches(RelOptRuleCall call) { final HiveProject projRel = call.rel(1); // Assumption: // 1. This will be run last after PP, Col Pruning in the PreJoinOrder // optimizations. // 2. If ProjectRel is not synthetic then PPD would have already pushed // relevant pieces down and hence no point in running PPD again. // 3. For synthetic Projects we don't care about non deterministic UDFs if (!projRel.isSynthetic()) { return false; } return super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { final HiveProject projRel = call.rel(1); // Assumption: // 1. This will be run last after PP, Col Pruning in the PreJoinOrder // optimizations. // 2. If ProjectRel is not synthetic then PPD would have already pushed // relevant pieces down and hence no point in running PPD again. // 3. For synthetic Projects we don't care about non deterministic UDFs if (!projRel.isSynthetic()) { return false; } return super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { final Filter filterRel = call.rel(1); RexNode condition = filterRel.getCondition(); if (!HiveCalciteUtil.isDeterministic(condition)) { return false; } return super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { final Filter filterRel = call.rel(1); RexNode condition = filterRel.getCondition(); if (!HiveCalciteUtil.isDeterministic(condition)) { return false; } return super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { final Aggregate aggregate = call.rel(0); // Rule cannot be applied if there are GroupingId because it will change the // value as the position will be changed. for (AggregateCall aggCall : aggregate.getAggCallList()) { if (aggCall.getAggregation().equals(HiveGroupingID.INSTANCE)) { return false; } } return super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { if (!super.matches(call)) { return false; } Aggregate oldAggRel = (Aggregate) call.rels[0]; return containsAvgStddevVarCall(oldAggRel.getAggCallList()); }
@Override public boolean matches(RelOptRuleCall call) { DrillScanRel scan = call.rel(1); return scan.getGroupScan() instanceof AbstractParquetGroupScan && super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { if (!super.matches(call)) { return false; } Aggregate oldAggRel = (Aggregate) call.rels[0]; return containsAvgStddevVarCall(oldAggRel.getAggCallList()); }
@Override public boolean matches(RelOptRuleCall call) { DrillScanRel scan = call.rel(2); return scan.getGroupScan() instanceof AbstractParquetGroupScan && super.matches(call); }
@Override public boolean matches(RelOptRuleCall call) { if (!super.matches(call)) { return false; } Aggregate oldAggRel = (Aggregate) call.rels[0]; return containsAvgStddevVarCall(oldAggRel.getAggCallList()); }
@Override public boolean matches(RelOptRuleCall call) { DrillScanRel scan = call.rel(1); return scan.getGroupScan() instanceof AbstractParquetGroupScan && super.matches(call); }
assert getRule().matches(this); volcanoPlanner.checkCancel(); try {
if (getRule().matches(this)) { onMatch();
if (!rule.matches(call)) { return null;
if (!rule.matches(call)) { return null;
checkCancel(); assert ruleCall.getRule().matches(ruleCall); if (isRuleExcluded(ruleCall.getRule())) { LOGGER.debug("call#{}: Rule [{}] not fired due to exclusion filter",
checkCancel(); assert ruleCall.getRule().matches(ruleCall); if (isRuleExcluded(ruleCall.getRule())) { LOGGER.debug("call#{}: Rule [{}] not fired due to exclusion filter",
rule.getOperand(), bindings.toArray(new RelNode[0])); if (rule.matches(call)) { rule.onMatch(call);
rule.getOperand(), bindings.toArray(new RelNode[0])); if (rule.matches(call)) { rule.onMatch(call);