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 | |
HiveAggregateReduceFunctionsRule |
This rule is a copy of
AggregateReduceFunctionsRule
that regenerates Hive specific aggregate operators. |
HiveAggregateReduceRule |
Planner rule that reduces aggregate functions in
Aggregate s to simpler forms. |
HiveDruidRules |
Druid rules with Hive builder factory.
|
HiveDruidRules.AggregateExpandDistinctAggregatesDruidRule |
This is a simplified version of
AggregateExpandDistinctAggregatesRule
The goal of this simplified version is to help pushing single count distinct as multi-phase aggregates. |
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 | |
HivePointLookupOptimizerRule.FilterCondition |
This optimization will take a Filter or 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.JoinCondition |
This optimization will take a Join or expression, and if its join condition 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
We should get rid of this and replace it with Calcite's RelDecorrelator
once that works with Join, Project etc instead of Join, Project.
|
HiveRelFieldTrimmer | |
HiveRemoveGBYSemiJoinRule |
Planner rule that removes a
Aggregate from a HiveSemiJoin
right input. |
HiveRemoveSqCountCheck |
Planner rule that removes UDF sq_count_check from a
plan if group by keys in a subquery are constant
and there is no windowing or grouping sets
|
HiveRulesRegistry | |
HiveSemiJoinRule |
Planner rule that creates a
SemiJoinRule from a
Join on top of a
LogicalAggregate . |
HiveSemiJoinRule.HiveAggregateToSemiJoinRule |
SemiJoinRule that matches a Aggregate on top of a Join with an Aggregate
as its right child.
|
HiveSemiJoinRule.HiveProjectToSemiJoinRule |
SemiJoinRule that matches a Project on top of a Join with an Aggregate
as its right child.
|
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.
|
HiveSubQueryRemoveRule.HiveSubQueryFinder |
Visitor that throws
Util.FoundOne if
applied to an expression that contains a RexSubQuery . |
HiveUnionMergeRule |
Planner rule that merges multiple union into one
Before the rule, it is
union all-branch1
|-----union all-branch2
|-----branch3
After the rule, it becomes
union all-branch1
|-----branch2
|-----branch3
HiveUnion |
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 © 2022 The Apache Software Foundation. All rights reserved.