| Package | Description |
|---|---|
| org.apache.hadoop.hive.ql.optimizer.calcite | |
| org.apache.hadoop.hive.ql.optimizer.calcite.rules | |
| org.apache.hadoop.hive.ql.optimizer.calcite.rules.jdbc |
JDBC external table rules that pushes down operators as much as possible to the external jdbc table.
|
| 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 |
| HiveAggregateReduceFunctionsRule
This rule is a copy of
AggregateReduceFunctionsRule
that regenerates Hive specific aggregate operators. |
| HiveAggregateReduceRule
Planner rule that reduces aggregate functions in
Aggregates to simpler forms. |
| 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. |
| 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
Filters 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.
|
| HivePointLookupOptimizerRule |
| 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).
|
| 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
|
| 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 |
| HiveSortUnionReduceRule
Planner rule that pushes a
HiveSortLimit
past a
HiveUnion. |
| 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).
|
| Class and Description |
|---|
| HiveFilterJoinRule |
Copyright © 2019 The Apache Software Foundation. All Rights Reserved.