org.teiid.query.optimizer.relational
Class RelationalPlanner

java.lang.Object
  extended by org.teiid.query.optimizer.relational.RelationalPlanner

public class RelationalPlanner
extends java.lang.Object

This class generates a relational plan for query execution. The output of this class is a PlanNode object - this object then becomes the input to PlanToProcessConverter to produce a RelationalPlan.


Field Summary
static java.lang.String MAT_PREFIX
           
 
Constructor Summary
RelationalPlanner()
           
 
Method Summary
static SymbolMap buildGroupingNode(java.util.Collection<AggregateSymbol> aggs, java.util.List<? extends Expression> groupingCols, PlanNode groupNode, CommandContext cc, IDGenerator idGenerator)
          Build a grouping node that introduces a anon group (without a inline view source node)
 RuleStack buildRules()
           
static Query createMatViewQuery(java.lang.Object matMetadataId, java.lang.String matTableName, java.util.List<? extends SelectSymbol> select, boolean isGlobal)
           
static PlanNode createSelectNode(Criteria crit, boolean isHaving)
           
 PlanNode generatePlan(Command cmd)
           
static java.lang.Object getTrackableGroup(GroupSymbol group, QueryMetadataInterface metadata)
           
 void initialize(Command command, IDGenerator idGenerator, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context)
           
static boolean isNoCacheGroup(QueryMetadataInterface metadata, java.lang.Object metadataID, Option option)
           
 ProcessorPlan optimize(Command command)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAT_PREFIX

public static final java.lang.String MAT_PREFIX
See Also:
Constant Field Values
Constructor Detail

RelationalPlanner

public RelationalPlanner()
Method Detail

optimize

public ProcessorPlan optimize(Command command)
                       throws QueryPlannerException,
                              QueryMetadataException,
                              TeiidComponentException
Throws:
QueryPlannerException
QueryMetadataException
TeiidComponentException

initialize

public void initialize(Command command,
                       IDGenerator idGenerator,
                       QueryMetadataInterface metadata,
                       CapabilitiesFinder capFinder,
                       AnalysisRecord analysisRecord,
                       CommandContext context)

buildRules

public RuleStack buildRules()

generatePlan

public PlanNode generatePlan(Command cmd)
                      throws TeiidComponentException,
                             TeiidProcessingException
Throws:
TeiidComponentException
TeiidProcessingException

getTrackableGroup

public static java.lang.Object getTrackableGroup(GroupSymbol group,
                                                 QueryMetadataInterface metadata)
                                          throws TeiidComponentException,
                                                 QueryMetadataException
Throws:
TeiidComponentException
QueryMetadataException

createSelectNode

public static PlanNode createSelectNode(Criteria crit,
                                        boolean isHaving)

buildGroupingNode

public static SymbolMap buildGroupingNode(java.util.Collection<AggregateSymbol> aggs,
                                          java.util.List<? extends Expression> groupingCols,
                                          PlanNode groupNode,
                                          CommandContext cc,
                                          IDGenerator idGenerator)
                                   throws QueryMetadataException,
                                          TeiidComponentException
Build a grouping node that introduces a anon group (without a inline view source node)

Throws:
QueryMetadataException
TeiidComponentException

createMatViewQuery

public static Query createMatViewQuery(java.lang.Object matMetadataId,
                                       java.lang.String matTableName,
                                       java.util.List<? extends SelectSymbol> select,
                                       boolean isGlobal)

isNoCacheGroup

public static boolean isNoCacheGroup(QueryMetadataInterface metadata,
                                     java.lang.Object metadataID,
                                     Option option)
                              throws QueryMetadataException,
                                     TeiidComponentException
Throws:
QueryMetadataException
TeiidComponentException


Copyright © 2011. All Rights Reserved.