| Interface | Description |
|---|---|
| HiveReflectUtil.ClassMethodDispatcher<T,E> | |
| HiveRemoveEmptySingleRules.CorrelateLeftEmptyRuleConfig |
Configuration for rule that prunes a correlate if left input is empty.
|
| HiveRemoveEmptySingleRules.CorrelateRightEmptyRuleConfig |
Configuration for rule that prunes a correlate if right input is empty.
|
| HiveRemoveEmptySingleRules.HiveUnionEmptyPruneRuleConfig |
Copy of
PruneEmptyRules.UnionEmptyPruneRuleConfig but this version expects Union. |
| HiveRemoveEmptySingleRules.JoinLeftEmptyRuleConfig |
Improved version of Calcite's
PruneEmptyRules.JoinLeftEmptyRuleConfig. |
| HiveRemoveEmptySingleRules.JoinRightEmptyRuleConfig |
Improved version of Calcite's
PruneEmptyRules.JoinRightEmptyRuleConfig. |
| Class | Description |
|---|---|
| CorrelateProjectExtractor |
A visitor for relational expressions that extracts a
Project, with a "simple"
computation over the correlated variables, from the right side of a correlation
(Correlate) and places it on the left side. |
| FilterFlattenCorrelatedConditionRule |
Planner rule that matches a
Filter expression with correlated variables, and rewrites the
condition in a simpler form that is more convenient for the decorrelation logic. |
| 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. |
| HiveAggregateSortLimitRule |
Rule that adds sorting to GROUP BY col0 LIMIT n in presence of aggregate functions.
|
| 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.
|
| HiveCardinalityPreservingJoinOptimization |
Optimization to reduce the amount of broadcasted/shuffled data throughout the DAG processing.
|
| HiveCardinalityPreservingJoinRule |
Rule to trigger
HiveCardinalityPreservingJoinOptimization on top of the plan. |
| 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. |
| HiveFieldTrimmerRule |
Rule that triggers the field trimmer on the root of a plan.
|
| HiveFilterAggregateTransposeRule | |
| HiveFilterJoinRule | |
| HiveFilterJoinRule.HiveFilterJoinMergeRule |
Rule that tries to push filter expressions into a join condition and into
the inputs of the join.
|
| HiveFilterJoinRule.HiveFilterJoinTransposeRule | |
| HiveFilterJoinRule.HiveFilterNonFilteringJoinMergeRule |
Rule that tries to push filter expressions into a join condition and into
the inputs of the join, iff the join is a column appending
non-filtering join.
|
| HiveFilterProjectTransposeRule | |
| HiveFilterProjectTSTransposeRule | |
| HiveFilterSetOpTransposeRule | |
| HiveFilterSortPredicates |
Sorts conditions in a filter predicate to accelerate query processing
based on selectivity and compute cost.
|
| HiveFilterSortTransposeRule | |
| HiveFilterTableFunctionTransposeRule |
Rule to transpose Filter and TableFunctionScan RelNodes
We cannot use Calcite's FilterTableFunctionTransposeRule because that rule
uses LogicalFilter and LogicalTableFunctionScan.
|
| HiveHepExtractRelNodeRule |
The goal of this rule is to extract the RelNode from the
HepRelVertex node so rules do tree traversal can be applied correctly.
|
| HiveInBetweenExpandRule |
This class contains rules to rewrite IN/BETWEEN clauses into their
corresponding AND/OR versions.
|
| 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.
|
| HiveJoinProjectTransposeRule |
Planner rules based on {link@ org.apache.calcite.rel.rules.JoinProjectTransposeRule} specialized to Hive.
|
| HiveJoinPushTransitivePredicatesRule |
Planner rule that infers predicates from on a
Join and creates
Filters if those predicates can be pushed
to its inputs. |
| 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.
|
| HiveOptimizeInlineArrayTableFunctionRule |
This rule optimizes the inline udtf in a HiveTableFunctionScan when it
has an array of structures.
|
| HivePartitionPruneRule | |
| HivePointLookupOptimizerRule |
This optimization attempts to identify and close expanded INs and BETWEENs
Basically:
|
| HivePointLookupOptimizerRule.FilterCondition |
Rule adapter to apply the transformation to Filter conditions.
|
| HivePointLookupOptimizerRule.JoinCondition |
Rule adapter to apply the transformation to Join conditions.
|
| HivePointLookupOptimizerRule.ProjectionExpressions |
Rule adapter to apply the transformation to Projections.
|
| HivePointLookupOptimizerRule.RexMergeInClause |
Merge IN clauses, when possible.
|
| HivePointLookupOptimizerRule.RexMergeInClause.SimilarRexNodeElement | |
| HivePointLookupOptimizerRule.RexTransformIntoBetween |
Transforms inequality candidates into [NOT] BETWEEN calls.
|
| 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 | |
| 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 | |
| HiveReduceExpressionsRule |
Collection of planner rules that apply various simplifying transformations on
RexNode trees.
|
| HiveReduceExpressionsWithStatsRule |
This rule simplifies the condition in Filter operators using the
column statistics (if available).
|
| HiveReduceExpressionsWithStatsRule.RexReplacer |
Replaces expressions with their reductions.
|
| HiveReflectUtil |
Static utilities for Java reflection.
|
| HiveReflectUtil.HiveMethodDispatcher<T,E> | |
| HiveReflectUtil.VisitDispatcher<R extends org.apache.calcite.util.ReflectiveVisitor,E> | |
| 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 | |
| HiveRemoveEmptySingleRules |
This class provides access to Calcite's
PruneEmptyRules. |
| 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 |
This rule could rewrite aggregate calls to be calculated using sketch based functions.
|
| HiveRewriteToDataSketchesRules.AbstractRankBasedRewriteRule |
Provides a generic way to rewrite function into using an estimation based on CDF.
|
| HiveRewriteToDataSketchesRules.AbstractRankBasedRewriteRule.AbstractRankBasedRewriteBuilder | |
| HiveRewriteToDataSketchesRules.CountDistinctRewrite |
Rewrites
count(distinct(x)) to distinct counting sketches. |
| HiveRewriteToDataSketchesRules.CumeDistRewriteRule |
Rewrites
cume_dist() over (order by id). |
| HiveRewriteToDataSketchesRules.NTileRewrite |
Rewrites
ntile(n) over (order by id). |
| HiveRewriteToDataSketchesRules.PercentileDiscRewrite |
Rewrites
percentile_disc(0.2) within group (order by id). |
| HiveRewriteToDataSketchesRules.RankRewriteRule |
Rewrites
rank() over (order by id). |
| HiveRulesRegistry | |
| HiveSemiJoinProjectTransposeRule |
This rule is similar to
SemiJoinProjectTransposeRule. |
| HiveSemiJoinRule |
Class that gathers SemiJoin conversion rules.
|
| 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 | |
| HiveSortPullUpConstantsRule |
Planner rule that pulls up constant keys through a SortLimit or SortExchange operator.
|
| 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.HiveSortLimitRemover | |
| 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.
|
| HiveUnionSimpleSelectsToInlineTableRule |
Transforms SELECTS of literals under UNION ALL into inline table scans.
|
| 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.
|
| PartitionPrune | |
| PartitionPrune.ExtractPartPruningPredicate | |
| PartitionPrune.ExtractRemainingPredicate | |
| RelFieldTrimmer |
This class comes from Calcite almost as-is.
|
| RelFieldTrimmer.TrimResult |
Result of an attempt to trim columns from a relational expression.
|
Copyright © 2024 The Apache Software Foundation. All rights reserved.