Package | Description |
---|---|
io.prestosql.sql.analyzer | |
io.prestosql.sql.planner | |
io.prestosql.sql.planner.iterative | |
io.prestosql.sql.planner.optimizations | |
io.prestosql.testing |
Constructor and Description |
---|
QueryExplainer(List<PlanOptimizer> planOptimizers,
PlanFragmenter planFragmenter,
Metadata metadata,
AccessControl accessControl,
SqlParser sqlParser,
StatsCalculator statsCalculator,
CostCalculator costCalculator,
Map<Class<? extends Statement>,DataDefinitionTask<?>> dataDefinitionTask) |
Modifier and Type | Method and Description |
---|---|
List<PlanOptimizer> |
PlanOptimizers.get() |
Modifier and Type | Method and Description |
---|---|
void |
OptimizerStatsRecorder.record(PlanOptimizer optimizer,
long nanos) |
void |
OptimizerStatsRecorder.recordFailure(PlanOptimizer optimizer) |
void |
OptimizerStatsRecorder.register(PlanOptimizer optimizer) |
Constructor and Description |
---|
LogicalPlanner(Session session,
List<PlanOptimizer> planOptimizers,
PlanNodeIdAllocator idAllocator,
Metadata metadata,
TypeAnalyzer typeAnalyzer,
StatsCalculator statsCalculator,
CostCalculator costCalculator,
WarningCollector warningCollector) |
LogicalPlanner(Session session,
List<PlanOptimizer> planOptimizers,
PlanSanityChecker planSanityChecker,
PlanNodeIdAllocator idAllocator,
Metadata metadata,
TypeAnalyzer typeAnalyzer,
StatsCalculator statsCalculator,
CostCalculator costCalculator,
WarningCollector warningCollector) |
Modifier and Type | Class and Description |
---|---|
class |
IterativeOptimizer |
Constructor and Description |
---|
IterativeOptimizer(RuleStatsRecorder stats,
StatsCalculator statsCalculator,
CostCalculator costCalculator,
List<PlanOptimizer> legacyRules,
Set<Rule<?>> newRules) |
Modifier and Type | Class and Description |
---|---|
class |
AddExchanges |
class |
AddLocalExchanges |
class |
BeginTableWrite |
class |
CheckSubqueryNodesAreRewritten |
class |
HashGenerationOptimizer |
class |
ImplementIntersectAndExceptAsUnion
Converts INTERSECT and EXCEPT queries into UNION ALL..GROUP BY...WHERE
Eg: SELECT a FROM foo INTERSECT SELECT x FROM bar
=>
SELECT a
FROM
(SELECT a,
COUNT(foo_marker) AS foo_cnt,
COUNT(bar_marker) AS bar_cnt
FROM
(
SELECT a, true as foo_marker, null as bar_marker FROM foo
UNION ALL
SELECT x, null as foo_marker, true as bar_marker FROM bar
) T1
GROUP BY a) T2
WHERE foo_cnt >= 1 AND bar_cnt >= 1;
|
class |
IndexJoinOptimizer |
class |
LimitPushDown |
class |
MetadataDeleteOptimizer
Converts delete followed immediately by table scan to a special metadata-only delete node
|
class |
MetadataQueryOptimizer
Converts cardinality-insensitive aggregations (max, min, "distinct") over partition keys
into simple metadata queries
|
class |
OptimizeMixedDistinctAggregations |
class |
PredicatePushDown |
class |
PruneUnreferencedOutputs
Removes all computation that does is not referenced transitively from the root of the plan
|
class |
ReplicateSemiJoinInDelete |
class |
SetFlatteningOptimizer |
class |
StatsRecordingPlanOptimizer |
class |
TransformQuantifiedComparisonApplyToLateralJoin |
class |
UnaliasSymbolReferences
Re-maps symbol references that are just aliases of each other (e.g., due to projections like
$0 := $1 )
E.g.,
Output[$0, $1] -> Project[$0 := $2, $1 := $3 * 100] -> Aggregate[$2, $3 := sum($4)] -> ...
gets rewritten as
Output[$2, $1] -> Project[$2, $1 := $3 * 100] -> Aggregate[$2, $3 := sum($4)] -> ... |
class |
WindowFilterPushDown |
Constructor and Description |
---|
StatsRecordingPlanOptimizer(OptimizerStatsRecorder stats,
PlanOptimizer delegate) |
Modifier and Type | Method and Description |
---|---|
List<PlanOptimizer> |
LocalQueryRunner.getPlanOptimizers(boolean forceSingleNode) |
Modifier and Type | Method and Description |
---|---|
Plan |
LocalQueryRunner.createPlan(Session session,
String sql,
List<PlanOptimizer> optimizers,
LogicalPlanner.Stage stage,
WarningCollector warningCollector) |
Plan |
LocalQueryRunner.createPlan(Session session,
String sql,
List<PlanOptimizer> optimizers,
WarningCollector warningCollector) |
Copyright © 2012–2019. All rights reserved.