| Class and Description |
|---|
| HiveRulesRegistry |
| Class and Description |
|---|
| 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. |
| HiveAggregateSplitRule
Rule that matches an aggregate with grouping sets and splits it into an aggregate
without grouping sets (bottom) and an aggregate with grouping sets (top).
|
| HiveAntiSemiJoinRule
Planner rule that converts a join plus filter to anti join.
|
| 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. |
| HiveFieldTrimmerRule
Rule that triggers the field trimmer on the root of a plan.
|
| HiveFilterJoinRule |
| HiveFilterJoinRule.HiveFilterJoinMergeRule
Rule that tries to push filter expressions into a join condition and into
the inputs of the join.
|
| 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
Responsible for adding not null rules to joins, when the declaration of a join implies that some coulmns
may not be null.
|
| 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.
|
| HiveJoinConstraintsRule
The rule can perform two different optimizations.
|
| HiveJoinSwapConstraintsRule
Planner rule that pushes a Join down in a tree past a Join in order
to leave non-filtering column appending joins at the top of the plan.
|
| HiveJoinToMultiJoinRule
Rule that merges a join with multijoin/join children if
the equi compared the same set of input columns.
|
| HivePointLookupOptimizerRule
This optimization attempts to identify and close expanded INs and BETWEENs
Basically:
|
| HiveProjectFilterPullUpConstantsRule
Planner rule that infers constant expressions from Filter into
a Project operator.
|
| HiveProjectJoinTransposeRule
Planner rule that pushes a
Project
past a Join
by splitting the projection into a projection on top of each child of
the join. |
| 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.
|
| HiveProjectSortExchangeTransposeRule
Push down Projection above SortExchange.
|
| HiveProjectSortTransposeRule |
| HiveReduceExpressionsWithStatsRule
This rule simplifies the condition in Filter operators using the
column statistics (if available).
|
| HiveReflectUtil.ClassMethodDispatcher |
| HiveReflectUtil.HiveMethodDispatcher |
| HiveReflectUtil.VisitDispatcher |
| HiveRelFieldTrimmer |
| HiveRemoveGBYSemiJoinRule
Planner rule that removes a
Aggregate from a HiveSemiJoin/HiveAntiJoin
right input. |
| HiveRemoveSqCountCheck
Planner rule that removes UDF sq_count_check from a plan if
1) either group by keys in a subquery are constant and there is no windowing or grouping sets
2) OR there are no group by keys but only aggregate
Both of the above case will produce at most one row, therefore it is safe to remove sq_count_check
which was introduced earlier in the plan to ensure that this condition is met at run time
|
| HiveRewriteToDataSketchesRules.AbstractRankBasedRewriteRule
Provides a generic way to rewrite function into using an estimation based on CDF.
|
| HiveSemiJoinProjectTransposeRule
This rule is similar to
SemiJoinProjectTransposeRule. |
| HiveSemiJoinRule.HiveAggregateJoinToSemiJoinRule
SemiJoinRule that matches a Aggregate on top of a Join with an Aggregate
as its right child.
|
| HiveSemiJoinRule.HiveAggregateJoinToSemiJoinRuleSwapInputs
Rule that matches an Aggregate on top of a Join and tries to transform it
into a SemiJoin swapping its inputs.
|
| HiveSemiJoinRule.HiveProjectJoinToSemiJoinRule
SemiJoinRule that matches a Project on top of a Join with an Aggregate
as its right child.
|
| HiveSemiJoinRule.HiveProjectJoinToSemiJoinRuleSwapInputs
Rule that matches an Project on top of a Join and tries to transform it
into a SemiJoin swapping its inputs.
|
| HiveSortJoinReduceRule
Planner rule that pushes
a
HiveSortLimit
past a HiveJoin. |
| HiveSortLimitRemoveRule
Planner rule that removes
a
HiveSortLimit. |
| HiveSortMergeRule
This rule will merge two HiveSortLimit operators.
|
| HiveSortProjectTransposeRule |
| HiveSortUnionReduceRule
Planner rule that pushes a
HiveSortLimit
past a
HiveUnion. |
| 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).
|
| HiveWindowingLastValueRewrite
Rule to rewrite a window function containing a last value clause.
|
| RelFieldTrimmer
This class comes from Calcite almost as-is.
|
| RelFieldTrimmer.TrimResult
Result of an attempt to trim columns from a relational expression.
|
| Class and Description |
|---|
| HiveFilterJoinRule |
Copyright © 2022 The Apache Software Foundation. All rights reserved.