@Override public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException { AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue(); // Begin from the root operator to collect used variables after a possible group-by operator. if (op.getOperatorTag() != LogicalOperatorTag.DISTRIBUTE_RESULT && op.getOperatorTag() != LogicalOperatorTag.SINK) { return false; } if (context.checkIfInDontApplySet(this, op)) { return false; } usedVars.clear(); boolean planTransformed = checkAndApplyTheRule(opRef, context); return planTransformed; }
boolean groupByChanged = checkAndApplyTheRule(op.getInputs().get(i), context); if (groupByChanged) { return true;