public final class RulePlanSubqueries extends Object implements OptimizerRule
Modifier and Type | Class and Description |
---|---|
static class |
RulePlanSubqueries.PlannedResult |
static class |
RulePlanSubqueries.ReferenceReplacementVisitor
Used to replace correlated references
|
Constructor and Description |
---|
RulePlanSubqueries(IDGenerator idGenerator,
CapabilitiesFinder capFinder,
AnalysisRecord analysisRecord,
CommandContext context,
QueryMetadataInterface metadata) |
Modifier and Type | Method and Description |
---|---|
PlanNode |
execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
RulePlanSubqueries.PlannedResult |
findSubquery(Criteria crit,
boolean unnest) |
RulePlanSubqueries.PlannedResult |
findSubquery(Expression expr,
boolean unnest,
RulePlanSubqueries.PlannedResult result,
boolean requireSingleRow) |
static boolean |
isDistinct(Query query,
List<Expression> expressions,
QueryMetadataInterface metadata) |
boolean |
planQuery(Collection<GroupSymbol> leftGroups,
boolean requireDistinct,
RulePlanSubqueries.PlannedResult plannedResult) |
static boolean |
requiresDistinctRows(Query query)
Return true if the result from the subquery may be different
if non-distinct rows are used as input
|
String |
toString() |
public RulePlanSubqueries(IDGenerator idGenerator, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context, QueryMetadataInterface metadata)
public static boolean requiresDistinctRows(Query query)
query
- public PlanNode execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, TeiidComponentException
execute
in interface OptimizerRule
QueryPlannerException
TeiidComponentException
public RulePlanSubqueries.PlannedResult findSubquery(Expression expr, boolean unnest, RulePlanSubqueries.PlannedResult result, boolean requireSingleRow) throws QueryMetadataException, TeiidComponentException
public RulePlanSubqueries.PlannedResult findSubquery(Criteria crit, boolean unnest) throws TeiidComponentException, QueryMetadataException
public boolean planQuery(Collection<GroupSymbol> leftGroups, boolean requireDistinct, RulePlanSubqueries.PlannedResult plannedResult) throws QueryMetadataException, TeiidComponentException
public static boolean isDistinct(Query query, List<Expression> expressions, QueryMetadataInterface metadata) throws QueryMetadataException, TeiidComponentException
Copyright © 2020. All rights reserved.