27 #include <ospace/string.h>
138 void printTree(
int tab, ostream& s = cout );
197 vector<QtNode::QtNodeList>*
seeSubexpression( QtNode::QtNodeList* leafList );
200 QtNode::QtNodeList*
seeSubexpression( QtNode::QtNodeList* leafList, vector<QtNode::QtNodeList>* leafListsNew );
203 static
unsigned int nextCSENo;
206 std::list<QtNode*> qtNodeList;
213 std::list<QtData*> qtDataList;
221 std::list<ParseInfo*> parseInfoList;
229 std::list<vector<QtONCStream*>*> vectorList;
237 std::list<QtDomainOperation *> dopList;
245 std::list<
char *> lexedCStringList;
254 #include "querytree.icc"
void rewriteDomainObjects(r_Minterval *greatDomain, std::string *greatIterator, QtMarrayOp2::mddIntervalListType *greatList)
void releaseDomainObjects()
void addDomainObject(QtDomainOperation *)
Definition: qtmarrayop2.hh:57
Definition: parseinfo.hh:51
void evaluateUpdate()
executes an update tree and throws a ParseInfo if query does not begin with INSERT, DELETE, UPDATE, ...
void removeDynamicObject(QtNode *)
void setRoot(QtNode *root)
QueryTree()
default constructor
Definition: qtdomainoperation.hh:53
Definition: querytree.hh:82
Definition: querytree.hh:89
vector< QtNode::QtNodeList > * seeSubexpression()
recognize common subexpressions
Definition: qtoncstream.hh:54
OptimizationLevel
Definition: querytree.hh:87
void removeDomainObject(QtDomainOperation *)
Definition: querytree.hh:92
void addDynamicObject(QtNode *)
void printTree(int tab, ostream &s=cout)
debugging method
Definition: querytree.hh:90
void checkSemantics()
checks semantics (e.g., type checking)
void releaseDynamicObjects()
Definition: querytree.hh:91
void printDomainObjects()
static SymbolTable< int > symtab
Definition: querytree.hh:190
~QueryTree()
destructor (deletes the whole query tree)
void insertSubexpression(vector< QtNode::QtNodeList > *nodeList)
build in common subexpressions in the query tree
Definition: minterval.hh:249
vector< QtData * > * evaluateRetrieval()
executes a retrieval tree and gives back the result collection