Package | Description |
---|---|
org.apache.hadoop.hive.ql.optimizer.calcite | |
org.apache.hadoop.hive.ql.optimizer.calcite.rules |
Class and Description |
---|
HiveRulesRegistry |
Class and 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 . |
HiveFilterJoinRule |
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.
|
HiveProjectFilterPullUpConstantsRule
Planner rule that infers constant expressions from Filter into
a Project operator.
|
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 |
HiveReduceExpressionsWithStatsRule
This rule simplifies the condition in Filter operators using the
column statistics (if available).
|
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 |
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).
|
Copyright © 2021 The Apache Software Foundation. All rights reserved.