Class | Description |
---|---|
HiveAggregateJoinTransposeRule |
Planner rule that pushes an
Aggregate
past a Join . |
HiveAggregateProjectMergeRule |
Planner rule that recognizes a
HiveAggregate
on top of a HiveProject and if possible
aggregate through the project or removes the project. |
HiveAggregatePullUpConstantsRule | |
HiveExceptRewriteRule |
Planner rule that rewrite
HiveExcept
Note, we only have 2 branches because of except's semantic. |
HiveExpandDistinctAggregatesRule |
Planner rule that expands distinct aggregates
(such as
COUNT(DISTINCT x) ) from a
Aggregate . |
HiveFilterAggregateTransposeRule | |
HiveFilterJoinRule | |
HiveFilterJoinRule.HiveFilterJoinMergeRule |
Rule that tries to push filter expressions into a join condition and into
the inputs of the join.
|
HiveFilterJoinRule.HiveFilterJoinTransposeRule | |
HiveFilterProjectTransposeRule | |
HiveFilterProjectTSTransposeRule | |
HiveFilterSetOpTransposeRule | |
HiveFilterSortTransposeRule | |
HiveInsertExchange4JoinRule |
Not an optimization rule.
|
HiveIntersectMergeRule |
Planner rule that merges multiple intersect into one
Before the rule, it is
intersect-branch1
|-----intersect-branch2
|-----branch3
After the rule, it becomes
intersect-branch1
|-----branch2
|-----branch3
HiveIntersect |
HiveIntersectRewriteRule |
Planner rule that rewrite
HiveIntersect
Rewrite: (GB-Union All-GB)-GB-UDTF (on all attributes)
Example: R1 Intersect All R2
R3 = GB(R1 on all attributes + count() as c) union all GB(R2 on all attributes + count() as c)
R4 = GB(R3 on all attributes + count(c) as cnt + min(c) as m)
R5 = Fil ( cnt == #branch )
If it is intersect all then
R6 = UDTF (R5) which will explode the tuples based on min(c). |
HiveJoinAddNotNullRule | |
HiveJoinCommuteRule |
Planner rule that permutes the inputs of a Join, if it has a Project on top
that simply swaps the fields of both inputs.
|
HiveJoinProjectTransposeRule | |
HiveJoinPushTransitivePredicatesRule |
Planner rule that infers predicates from on a
Join and creates
Filter s if those predicates can be pushed
to its inputs. |
HiveJoinToMultiJoinRule |
Rule that merges a join with multijoin/join children if
the equi compared the same set of input columns.
|
HivePartitionPruneRule | |
HivePointLookupOptimizerRule |
This optimization will take a Filter expression, and if its predicate contains
an OR operator whose children are constant equality expressions, it will try
to generate an IN clause (which is more efficient).
|
HivePointLookupOptimizerRule.RexMergeInClause |
Merge IN clauses, when possible.
|
HivePointLookupOptimizerRule.RexTransformIntoInClause |
Transforms OR clauses into IN clauses, when possible.
|
HivePreFilteringRule | |
HiveProjectFilterPullUpConstantsRule |
Planner rule that infers constant expressions from Filter into
a Project operator.
|
HiveProjectFilterPullUpConstantsRule.RexReplacer | |
HiveProjectMergeRule |
ProjectMergeRule merges a
Project into
another Project ,
provided the projects aren't projecting identical sets of input references. |
HiveProjectOverIntersectRemoveRule |
HiveProjectOverIntersectRemoveRule removes a HiveProject over another
HiveIntersect, provided the projects aren't projecting identical sets of
input references.
|
HiveProjectSortTransposeRule | |
HiveReduceExpressionsRule |
Collection of planner rules that apply various simplifying transformations on
RexNode trees.
|
HiveReduceExpressionsRule.FilterReduceExpressionsRule |
Rule that reduces constants inside a
Filter . |
HiveReduceExpressionsWithStatsRule |
This rule simplifies the condition in Filter operators using the
column statistics (if available).
|
HiveReduceExpressionsWithStatsRule.RexReplacer |
Replaces expressions with their reductions.
|
HiveRelColumnsAlignment |
This class infers the order in Aggregate columns and the order of conjuncts
in a Join condition that might be more beneficial to avoid additional sort
stages.
|
HiveRelDecorrelator |
NOTE: this whole logic is replicated from Calcite's RelDecorrelator
and is exteneded to make it suitable for HIVE
TODO:
We should get rid of this and replace it with Calcite's RelDecorrelator
once that works with Join, Project etc instead of LogicalJoin, LogicalProject.
|
HiveRelFieldTrimmer | |
HiveRulesRegistry | |
HiveSemiJoinRule |
Planner rule that creates a
SemiJoinRule from a
Join on top of a
LogicalAggregate . |
HiveSortJoinReduceRule |
Planner rule that pushes
a
HiveSortLimit
past a HiveJoin . |
HiveSortLimitPullUpConstantsRule |
Planner rule that pulls up constant keys through a SortLimit operator.
|
HiveSortMergeRule |
This rule will merge two HiveSortLimit operators.
|
HiveSortProjectTransposeRule | |
HiveSortRemoveRule |
Planner rule that removes
a
HiveSortLimit . |
HiveSortUnionReduceRule |
Planner rule that pushes a
HiveSortLimit
past a
HiveUnion . |
HiveSubQueryRemoveRule |
NOTE: this rule is replicated from Calcite's SubqueryRemoveRule
Transform that converts IN, EXISTS and scalar sub-queries into joins.
|
HiveUnionPullUpConstantsRule |
Planner rule that pulls up constants through a Union operator.
|
HiveWindowingFixRule |
Rule to fix windowing issue when it is done over
aggregation columns (more info in HIVE-10627).
|
PartitionPrune | |
PartitionPrune.ExtractPartPruningPredicate | |
PartitionPrune.ExtractRemainingPredicate |
Copyright © 2021 The Apache Software Foundation. All rights reserved.