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
Aggregate s 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
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.
|
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 © 2022 The Apache Software Foundation. All rights reserved.