...
Abstract rules:
AbstractDecorrelationRule implemented by IntroJoinInsideSubplanRule
AbstractExtractExprRule implemented ExtractDistinctByExpressionsRule, ExtractGbyExpressionsRule, ExtractOrderExpressionsRule
AbstractIntroduceAccessMethodRule implemented by IntroduceJoinAccessMethodRule, IntroduceSelectAccessMethodRule
AbstractIntroduceCombinerRule implemented by IntroduceAggregateCombinerRule, IntroduceGroupByCombinerRule
InlineVariablesRule - AsterixInlineVariablesRule actually extends this rule
Rules used by Hive or Piglet:
InsertProjectBeforeWriteRule - used by Hive
IntroduceEarlyProjectRule - used by Hive
LocalGroupByRule - used by Hive
PushProjectIntoDataSourceScanRule - used by Hive and Piglet
RemoveRedundantProjectionRule - used by Hive
RemoveRedundantSelectRule - used by Hive
Cleanup suggestations:
Rules which are not in use:
ByNameToByHandleFieldAccessRule - TO BE REMOVED
FuzzyJoinRule - TO BE RE-ENABLED
IntroduceTransactionCommitByAssignOpRule - TO BE REMOVED
PullPositionalVariableFromUnnestRule --?? WHAT DOES IT DO
Rules which should be renamed to *Rule (add the suffix Rule):
EnforceOrderByAfterSubplan
PushProperJoinThroughProduct
PushGroupByThroughProduct
FeedScanCollectionToUnnest
RemoveRedundantGroupByDecorVars
PushSimilarityFunctionsBelowJoin
PullSelectOutOfEqJoin
IntroHashPartitionMergeExchange
PushFunctionsBelowJoin -extended by PushSimilarityFunctionsBelowJoin)
Types of rules:
SequentialFixpointRuleController(false) = you don’t do a DFS and apply the rule to the operator only, however you reiterate on the group of rules until you get no change
SequentialFixpointRuleController(true) = you do a DFS
SequentialOnceRuleController(true) = you apply the rule once
There are 60 beyond-compare sessions ready to show the plan before and after the rule was applied. Note that not all rules produce an apparent change in the plan.
...