org.teiid.query.resolver
Class QueryResolver

java.lang.Object
  extended by org.teiid.query.resolver.QueryResolver

public class QueryResolver
extends java.lang.Object

The QueryResolver is used between Parsing and QueryValidation. The SQL queries, inserts, updates and deletes are parsed and converted into objects. The language objects have variable names which resolved to fully qualified names using metadata information. The resolver is also used in transforming the values in language objects to their variable types defined in metadata.


Constructor Summary
QueryResolver()
           
 
Method Summary
static void buildExternalGroups(java.util.Map<GroupSymbol,java.util.List<ElementSymbol>> externalMetadata, Command currentCommand)
           
static Command expandCommand(ProcedureContainer proc, QueryMetadataInterface metadata, AnalysisRecord analysisRecord)
           
static java.util.Map<java.lang.String,Expression> getVariableValues(Command command, boolean changingOnly, QueryMetadataInterface metadata)
           
static boolean isXMLQuery(Query query, QueryMetadataInterface metadata)
          Check to verify if the query would return XML results.
static TempMetadataStore resolveCommand(Command command, QueryMetadataInterface metadata)
          This implements an algorithm to resolve all the symbols created by the parser into real metadata IDs
static TempMetadataStore resolveCommand(Command currentCommand, QueryMetadataInterface metadata, boolean resolveNullLiterals)
           
static void resolveCriteria(Criteria criteria, QueryMetadataInterface metadata)
          Resolve just a criteria.
static void resolveSubqueries(Command command, TempMetadataAdapter metadata, java.util.Collection<GroupSymbol> externalGroups)
           
static Command resolveView(GroupSymbol virtualGroup, QueryNode qnode, java.lang.String cacheString, QueryMetadataInterface qmi)
           
static void setChildMetadata(Command subCommand, Command parent)
           
static void setChildMetadata(Command subCommand, java.util.Map parentTempMetadata, GroupContext parentContext)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryResolver

public QueryResolver()
Method Detail

expandCommand

public static Command expandCommand(ProcedureContainer proc,
                                    QueryMetadataInterface metadata,
                                    AnalysisRecord analysisRecord)
                             throws QueryResolverException,
                                    QueryMetadataException,
                                    TeiidComponentException
Throws:
QueryResolverException
QueryMetadataException
TeiidComponentException

resolveCommand

public static TempMetadataStore resolveCommand(Command command,
                                               QueryMetadataInterface metadata)
                                        throws QueryResolverException,
                                               TeiidComponentException
This implements an algorithm to resolve all the symbols created by the parser into real metadata IDs

Parameters:
command - Command the SQL command we are running (Select, Update, Insert, Delete)
metadata - QueryMetadataInterface the metadata
Returns:
Throws:
QueryResolverException
TeiidComponentException

resolveCommand

public static TempMetadataStore resolveCommand(Command currentCommand,
                                               QueryMetadataInterface metadata,
                                               boolean resolveNullLiterals)
                                        throws QueryResolverException,
                                               TeiidComponentException
Throws:
QueryResolverException
TeiidComponentException

isXMLQuery

public static boolean isXMLQuery(Query query,
                                 QueryMetadataInterface metadata)
                          throws TeiidComponentException,
                                 QueryMetadataException,
                                 QueryResolverException
Check to verify if the query would return XML results.

Parameters:
query - the query to check
metadata - QueryMetadataInterface the metadata
Throws:
TeiidComponentException
QueryMetadataException
QueryResolverException

resolveCriteria

public static void resolveCriteria(Criteria criteria,
                                   QueryMetadataInterface metadata)
                            throws QueryResolverException,
                                   QueryMetadataException,
                                   TeiidComponentException
Resolve just a criteria. The criteria will be modified so nothing is returned.

Parameters:
criteria - Criteria to resolve
metadata - Metadata implementation
Throws:
QueryResolverException
QueryMetadataException
TeiidComponentException

setChildMetadata

public static void setChildMetadata(Command subCommand,
                                    Command parent)

setChildMetadata

public static void setChildMetadata(Command subCommand,
                                    java.util.Map parentTempMetadata,
                                    GroupContext parentContext)

getVariableValues

public static java.util.Map<java.lang.String,Expression> getVariableValues(Command command,
                                                                           boolean changingOnly,
                                                                           QueryMetadataInterface metadata)
                                                                    throws QueryMetadataException,
                                                                           QueryResolverException,
                                                                           TeiidComponentException
Throws:
QueryMetadataException
QueryResolverException
TeiidComponentException

resolveSubqueries

public static void resolveSubqueries(Command command,
                                     TempMetadataAdapter metadata,
                                     java.util.Collection<GroupSymbol> externalGroups)
                              throws QueryResolverException,
                                     TeiidComponentException
Throws:
QueryResolverException
TeiidComponentException

resolveView

public static Command resolveView(GroupSymbol virtualGroup,
                                  QueryNode qnode,
                                  java.lang.String cacheString,
                                  QueryMetadataInterface qmi)
                           throws TeiidComponentException,
                                  QueryMetadataException,
                                  QueryResolverException,
                                  QueryValidatorException
Throws:
TeiidComponentException
QueryMetadataException
QueryResolverException
QueryValidatorException

buildExternalGroups

public static void buildExternalGroups(java.util.Map<GroupSymbol,java.util.List<ElementSymbol>> externalMetadata,
                                       Command currentCommand)


Copyright © 2011. All Rights Reserved.