|
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.makumba.providers.query.mql.QueryContext
public class QueryContext
FROM analysis code. Each query/subquery has its own QueryContext. This is ported from the old OQL parser. Additions: 1) look in the parent query context for labels unknown here 2) more than just LEFT JOIN is supported
Nested Class Summary | |
---|---|
(package private) class |
QueryContext.Join
the four elements of a join: label1.field1 = label2.field2 |
Field Summary | |
---|---|
(package private) Hashtable<String,String> |
aliases
support aliases in query |
(package private) DataDefinitionProvider |
ddp
|
(package private) HashSet<String> |
explicitLabels
labels defined explicitly in the FROM section of this subquery |
(package private) Vector<NameResolver.TextList> |
filters
correlation conditions |
(package private) Hashtable<String,DataDefinition> |
fromLabels
labels explicitly defined in OQL FROM |
(package private) MqlNode |
inTree
|
(package private) Hashtable<String,String> |
joinNames
finder for joins in the form label.field, used in order not to repeat the same join |
(package private) Vector<QueryContext.Join> |
joins
the joins needed out of the label.field from this query |
(package private) LinkedHashMap<String,DataDefinition> |
labels
associate each label to its makumba type |
(package private) Hashtable<String,MqlNode> |
projectionLabelSearch
searcher for projection labels |
(package private) MqlSqlWalker |
walker
|
Constructor Summary | |
---|---|
QueryContext(MqlSqlWalker mqlSqlWalker)
|
Method Summary | |
---|---|
void |
addFrom(String frm,
antlr.collections.AST labelAST,
int joinType)
|
(package private) String |
addJoin(String l1,
String f1,
String name,
String f2,
DataDefinition type,
int joinType,
antlr.collections.AST location)
make a new join with the name and associate the label with the type |
void |
close()
|
antlr.collections.AST |
createFromElement(String path,
antlr.collections.AST alias,
int joinType)
|
(package private) DataDefinition |
findLabelType(String label)
|
(package private) String |
getFieldName(String label,
String field,
NameResolver nr)
return the database-level name of the given field of the given label |
LinkedHashMap<String,DataDefinition> |
getLabels()
|
QueryContext |
getParent()
|
Hashtable<String,MqlNode> |
getProjectionLabelSearch()
|
(package private) DataDefinition |
getTableName(String label)
return the database-level name of the type of the given label |
(package private) String |
join(String label,
String field,
String labelf,
int joinType,
antlr.collections.AST location)
produce a new label out of label.field, with the indicated labelf name for the result check if the indicated field exists in the type of the label determine the type of the result label if more joins are necesary inbetween (e.g. for sets), add these joins as well |
void |
selectField(String label,
String field,
MqlDotNode mqlDotNode)
|
NameResolver.TextList |
selectLabel(String label,
MqlNode node)
|
void |
setParent(QueryContext currentContext)
|
protected void |
writeFrom(NameResolver.TextList ret)
writes the iterator definitions (FROM part) |
protected void |
writeJoins(NameResolver.TextList ret)
write the translator-generated joins |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
MqlSqlWalker walker
DataDefinitionProvider ddp
MqlNode inTree
LinkedHashMap<String,DataDefinition> labels
Hashtable<String,DataDefinition> fromLabels
Hashtable<String,String> aliases
Vector<QueryContext.Join> joins
Hashtable<String,String> joinNames
Hashtable<String,MqlNode> projectionLabelSearch
Vector<NameResolver.TextList> filters
HashSet<String> explicitLabels
Constructor Detail |
---|
public QueryContext(MqlSqlWalker mqlSqlWalker)
Method Detail |
---|
public void setParent(QueryContext currentContext)
public QueryContext getParent()
public antlr.collections.AST createFromElement(String path, antlr.collections.AST alias, int joinType) throws antlr.SemanticException
antlr.SemanticException
public void close()
String addJoin(String l1, String f1, String name, String f2, DataDefinition type, int joinType, antlr.collections.AST location) throws antlr.SemanticException
joinType
- location
-
antlr.SemanticException
String join(String label, String field, String labelf, int joinType, antlr.collections.AST location) throws antlr.SemanticException
joinType
-
-
antlr.SemanticException
public void addFrom(String frm, antlr.collections.AST labelAST, int joinType) throws antlr.SemanticException
antlr.SemanticException
DataDefinition findLabelType(String label)
protected void writeFrom(NameResolver.TextList ret)
DataDefinition getTableName(String label)
String getFieldName(String label, String field, NameResolver nr)
protected void writeJoins(NameResolver.TextList ret)
public NameResolver.TextList selectLabel(String label, MqlNode node)
public void selectField(String label, String field, MqlDotNode mqlDotNode) throws antlr.SemanticException
antlr.SemanticException
public Hashtable<String,MqlNode> getProjectionLabelSearch()
public LinkedHashMap<String,DataDefinition> getLabels()
|
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |