public final static List<IAlgebraicRewriteRule> buildConsolidationRuleCollection() { List<IAlgebraicRewriteRule> consolidation = new LinkedList<IAlgebraicRewriteRule>(); consolidation.add(new ConsolidateSelectsRule()); consolidation.add(new ConsolidateAssignsRule()); consolidation.add(new InlineAssignIntoAggregateRule()); consolidation.add(new IntroduceGroupByCombinerRule()); consolidation.add(new IntroduceAggregateCombinerRule()); consolidation.add(new RemoveUnusedAssignAndAggregateRule()); return consolidation; }
public static final List<IAlgebraicRewriteRule> buildConsolidationRuleCollection() { List<IAlgebraicRewriteRule> consolidation = new LinkedList<>(); consolidation.add(new ConsolidateSelectsRule()); consolidation.add(new ConsolidateAssignsRule()); consolidation.add(new InlineAssignIntoAggregateRule()); consolidation.add(new AsterixIntroduceGroupByCombinerRule()); consolidation.add(new IntroduceAggregateCombinerRule()); consolidation.add(new CountVarToCountOneRule()); consolidation.add(new RemoveUnusedAssignAndAggregateRule()); consolidation.add(new RemoveRedundantGroupByDecorVarsRule()); //PushUnnestDownUnion => RemoveRedundantListifyRule cause these rules are correlated consolidation.add(new PushUnnestDownThroughUnionRule()); consolidation.add(new RemoveRedundantListifyRule()); // Window operator consolidation rules consolidation.add(new ConsolidateWindowOperatorsRule()); consolidation.add(new ReuseWindowAggregateRule()); consolidation.add(new RemoveRedundantWindowOperatorsRule()); consolidation.add(new RemoveRedundantVariablesRule()); return consolidation; }
public static final List<IAlgebraicRewriteRule> buildPhysicalRewritesAllLevelsRuleCollection() { List<IAlgebraicRewriteRule> physicalRewritesAllLevels = new LinkedList<>(); physicalRewritesAllLevels.add(new PullSelectOutOfEqJoin()); //Turned off the following rule for now not to change OptimizerTest results. physicalRewritesAllLevels.add(new SetupCommitExtensionOpRule()); physicalRewritesAllLevels.add(new SetAlgebricksPhysicalOperatorsRule()); physicalRewritesAllLevels.add(new SetAsterixPhysicalOperatorsRule()); physicalRewritesAllLevels.add(new AddEquivalenceClassForRecordConstructorRule()); physicalRewritesAllLevels.add(new CheckFullParallelSortRule()); physicalRewritesAllLevels .add(new EnforceStructuralPropertiesRule(BuiltinFunctions.RANGE_MAP, BuiltinFunctions.LOCAL_SAMPLING)); physicalRewritesAllLevels.add(new RemoveSortInFeedIngestionRule()); physicalRewritesAllLevels.add(new RemoveUnnecessarySortMergeExchange()); physicalRewritesAllLevels.add(new PushProjectDownRule()); physicalRewritesAllLevels.add(new IntroduceMaterializationForInsertWithSelfScanRule()); physicalRewritesAllLevels.add(new InlineSingleReferenceVariablesRule()); physicalRewritesAllLevels.add(new RemoveUnusedAssignAndAggregateRule()); physicalRewritesAllLevels.add(new ConsolidateAssignsRule()); // After adding projects, we may need need to set physical operators again. physicalRewritesAllLevels.add(new SetAlgebricksPhysicalOperatorsRule()); return physicalRewritesAllLevels; }