|
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectantlr.TreeParser
org.makumba.providers.query.mql.MqlSqlBaseWalker
org.makumba.providers.query.mql.MqlSqlWalker
public class MqlSqlWalker
Analysis operations. This extends the class produced by mql-sql.g which is adapted from Hibernate. To simplify porting of new versions, the class mostly redefines methods declared in mql-sql.g.
Nested Class Summary | |
---|---|
(package private) static class |
MqlSqlWalker.ParamInfo
|
Field Summary | |
---|---|
(package private) boolean |
autoLeftJoin
|
(package private) LinkedHashMap<String,Object> |
constantValues
some queries have only constant projections. they need no data from a database to be evaluated. if they are simple enough they don't need to be sent to the db engine. |
protected QueryContext |
currentContext
|
protected DataDefinitionProvider |
ddp
|
protected antlr.RecognitionException |
error
|
(package private) antlr.ASTFactory |
fact
|
(package private) boolean |
hasSubqueries
|
(package private) DataDefinition |
knownLabels
Labels known a-priori. |
(package private) Set<String> |
multiTypeParams
The set of parameters that have different types on different positions (multi-type parameters) |
(package private) boolean |
optimizeJoins
|
protected HashMap<String,FunctionCall> |
orderedFunctionCalls
|
(package private) DataDefinition |
paramInfoByName
Parameters as name=type, where name is the string after $ for named parameters or paramX for numbered parameters, where X is the parameter number (not its query position!). |
(package private) DataDefinition |
paramInfoByPosition
Parameters as paramN=type, where N is the parameter position in the query. |
(package private) static PrintWriter |
pw
|
(package private) String |
query
|
protected QueryContext |
rootContext
|
(package private) Collection<String> |
warnings
|
Fields inherited from class org.makumba.providers.query.mql.MqlSqlBaseWalker |
---|
_tokenNames, _tokenSet_0, _tokenSet_1, inFunctionCall |
Fields inherited from class antlr.TreeParser |
---|
_retTree, astFactory, ASTNULL, inputState, returnAST, tokenNames, traceDepth |
Constructor Summary | |
---|---|
MqlSqlWalker(String query,
DataDefinition insertIn,
boolean optimizeJoins,
boolean autoLeftJoin,
DataDefinition knownLabels)
|
Method Summary | |
---|---|
protected void |
addFunctionCall(FunctionCall c)
makes sure we don't override another function call with the same signature but in a different place |
void |
addWarning(String msg)
|
protected antlr.collections.AST |
createFromElement(String path,
antlr.collections.AST alias,
antlr.collections.AST propertyFetch)
|
protected void |
createFromJoinElement(antlr.collections.AST path,
antlr.collections.AST alias,
int joinType,
antlr.collections.AST fetch,
antlr.collections.AST propertyFetch,
antlr.collections.AST with)
|
protected antlr.collections.AST |
generateNamedParameter(antlr.collections.AST delimiterNode,
antlr.collections.AST nameNode)
|
protected antlr.collections.AST |
generatePositionalParameter(antlr.collections.AST inputNode)
|
(package private) FieldDefinition |
getFunctionType(MqlNode child)
Computes the type of function, based on their path. |
boolean |
isAnalysisQuery()
|
protected antlr.collections.AST |
lookupProperty(antlr.collections.AST dot,
boolean root,
boolean inSelect)
|
protected void |
processFunction(antlr.collections.AST functionCall)
|
protected void |
processQuery(antlr.collections.AST select,
antlr.collections.AST query)
|
protected void |
pushFromClause(antlr.collections.AST fromClause,
antlr.collections.AST inputFromNode)
Sets the current 'FROM' context. |
void |
reportError(antlr.RecognitionException e)
|
void |
reportError(String s)
|
void |
reportWarning(String s)
|
protected void |
resolve(antlr.collections.AST node)
|
protected void |
setAlias(antlr.collections.AST selectExpr,
antlr.collections.AST ident)
|
protected void |
setFromEnded()
|
(package private) void |
setParameterType(MqlNode param,
FieldDefinition likewise)
|
(package private) void |
setProjectionTypes(DataDefinition proj)
|
Methods inherited from class antlr.TreeParser |
---|
getAST, getASTFactory, getTokenName, getTokenNames, match, match, matchNot, panic, setASTFactory, setASTNodeClass, setASTNodeType, traceIn, traceIndent, traceOut |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected DataDefinitionProvider ddp
antlr.ASTFactory fact
protected antlr.RecognitionException error
protected QueryContext currentContext
static PrintWriter pw
DataDefinition paramInfoByPosition
DataDefinition paramInfoByName
Set<String> multiTypeParams
protected QueryContext rootContext
protected HashMap<String,FunctionCall> orderedFunctionCalls
boolean hasSubqueries
String query
boolean optimizeJoins
boolean autoLeftJoin
LinkedHashMap<String,Object> constantValues
DataDefinition knownLabels
Collection<String> warnings
Constructor Detail |
---|
public MqlSqlWalker(String query, DataDefinition insertIn, boolean optimizeJoins, boolean autoLeftJoin, DataDefinition knownLabels)
Method Detail |
---|
public void reportError(antlr.RecognitionException e)
reportError
in class antlr.TreeParser
public void reportError(String s)
reportError
in class antlr.TreeParser
protected void addFunctionCall(FunctionCall c)
protected void processFunction(antlr.collections.AST functionCall) throws antlr.SemanticException
processFunction
in class MqlSqlBaseWalker
antlr.SemanticException
FieldDefinition getFunctionType(MqlNode child)
child
- TODOpublic void reportWarning(String s)
reportWarning
in class antlr.TreeParser
protected void pushFromClause(antlr.collections.AST fromClause, antlr.collections.AST inputFromNode)
MqlSqlBaseWalker
pushFromClause
in class MqlSqlBaseWalker
protected void setFromEnded() throws antlr.SemanticException
setFromEnded
in class MqlSqlBaseWalker
antlr.SemanticException
protected void processQuery(antlr.collections.AST select, antlr.collections.AST query) throws antlr.SemanticException
processQuery
in class MqlSqlBaseWalker
antlr.SemanticException
protected antlr.collections.AST createFromElement(String path, antlr.collections.AST alias, antlr.collections.AST propertyFetch) throws antlr.SemanticException
createFromElement
in class MqlSqlBaseWalker
antlr.SemanticException
protected void createFromJoinElement(antlr.collections.AST path, antlr.collections.AST alias, int joinType, antlr.collections.AST fetch, antlr.collections.AST propertyFetch, antlr.collections.AST with) throws antlr.SemanticException
createFromJoinElement
in class MqlSqlBaseWalker
antlr.SemanticException
protected antlr.collections.AST lookupProperty(antlr.collections.AST dot, boolean root, boolean inSelect) throws antlr.SemanticException
lookupProperty
in class MqlSqlBaseWalker
antlr.SemanticException
protected void resolve(antlr.collections.AST node) throws antlr.SemanticException
resolve
in class MqlSqlBaseWalker
antlr.SemanticException
protected void setAlias(antlr.collections.AST selectExpr, antlr.collections.AST ident)
setAlias
in class MqlSqlBaseWalker
protected antlr.collections.AST generateNamedParameter(antlr.collections.AST delimiterNode, antlr.collections.AST nameNode) throws antlr.SemanticException
generateNamedParameter
in class MqlSqlBaseWalker
antlr.SemanticException
protected antlr.collections.AST generatePositionalParameter(antlr.collections.AST inputNode) throws antlr.SemanticException
generatePositionalParameter
in class MqlSqlBaseWalker
antlr.SemanticException
void setParameterType(MqlNode param, FieldDefinition likewise)
void setProjectionTypes(DataDefinition proj)
public boolean isAnalysisQuery()
public void addWarning(String msg)
|
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |