rasdaman complete source
Public Types | Public Member Functions | Static Public Attributes | List of all members
QueryTree Class Reference

#include <querytree.hh>

Public Types

enum  OptimizationLevel { NO_OPTIMIZATIONS = 0, STANDARDIZATION = 1, SIMPLIFICATION = 2, SUBEXPRESSIONS = 3 }
 

Public Member Functions

 QueryTree ()
 default constructor More...
 
 QueryTree (QtNode *root)
 constructor getting the root of the query tree More...
 
 ~QueryTree ()
 destructor (deletes the whole query tree) More...
 
void checkSemantics ()
 checks semantics (e.g., type checking) More...
 
vector< QtNode::QtNodeList > * seeSubexpression ()
 recognize common subexpressions More...
 
void insertSubexpression (vector< QtNode::QtNodeList > *nodeList)
 build in common subexpressions in the query tree More...
 
vector< QtData * > * evaluateRetrieval () throw (r_Error, ParseInfo)
 executes a retrieval tree and gives back the result collection More...
 
void evaluateUpdate () throw (r_Error,ParseInfo)
 executes an update tree and throws a ParseInfo if query does not begin with INSERT, DELETE, UPDATE, ... More...
 
void printTree (int tab, ostream &s=cout)
 debugging method More...
 
QtNodegetRoot () const
 
void setRoot (QtNode *root)
 
void addDynamicObject (QtNode *)
 
void removeDynamicObject (QtNode *)
 
void addDynamicObject (QtData *)
 
void removeDynamicObject (QtData *)
 
void addDynamicObject (ParseInfo *)
 
void removeDynamicObject (ParseInfo *)
 
void addDynamicObject (vector< QtONCStream * > *)
 
void removeDynamicObject (vector< QtONCStream * > *)
 
void releaseDynamicObjects ()
 
void addDomainObject (QtDomainOperation *)
 
void removeDomainObject (QtDomainOperation *)
 
void rewriteDomainObjects (r_Minterval *greatDomain, std::string *greatIterator, QtMarrayOp2::mddIntervalListType *greatList)
 
void printDomainObjects ()
 
void releaseDomainObjects ()
 
void addCString (char *)
 

Static Public Attributes

static SymbolTable< int > symtab
 

Member Enumeration Documentation

Enumerator
NO_OPTIMIZATIONS 
STANDARDIZATION 
SIMPLIFICATION 
SUBEXPRESSIONS 

Constructor & Destructor Documentation

QueryTree::QueryTree ( )

default constructor

QueryTree::QueryTree ( QtNode root)

constructor getting the root of the query tree

QueryTree::~QueryTree ( )

destructor (deletes the whole query tree)

Member Function Documentation

void QueryTree::addCString ( char *  )
void QueryTree::addDomainObject ( QtDomainOperation )
void QueryTree::addDynamicObject ( QtNode )
void QueryTree::addDynamicObject ( QtData )
void QueryTree::addDynamicObject ( ParseInfo )
void QueryTree::addDynamicObject ( vector< QtONCStream * > *  )
void QueryTree::checkSemantics ( )

checks semantics (e.g., type checking)

vector<QtData*>* QueryTree::evaluateRetrieval ( )
throw (r_Error,
ParseInfo
)

executes a retrieval tree and gives back the result collection

void QueryTree::evaluateUpdate ( )
throw (r_Error,
ParseInfo
)

executes an update tree and throws a ParseInfo if query does not begin with INSERT, DELETE, UPDATE, ...

QtNode* QueryTree::getRoot ( ) const
inline
void QueryTree::insertSubexpression ( vector< QtNode::QtNodeList > *  nodeList)

build in common subexpressions in the query tree

void QueryTree::printDomainObjects ( )
void QueryTree::printTree ( int  tab,
ostream &  s = cout 
)

debugging method

void QueryTree::releaseDomainObjects ( )
void QueryTree::releaseDynamicObjects ( )
void QueryTree::removeDomainObject ( QtDomainOperation )
void QueryTree::removeDynamicObject ( QtNode )
void QueryTree::removeDynamicObject ( QtData )
void QueryTree::removeDynamicObject ( ParseInfo )
void QueryTree::removeDynamicObject ( vector< QtONCStream * > *  )
void QueryTree::rewriteDomainObjects ( r_Minterval greatDomain,
std::string *  greatIterator,
QtMarrayOp2::mddIntervalListType greatList 
)
vector<QtNode::QtNodeList>* QueryTree::seeSubexpression ( )

recognize common subexpressions

void QueryTree::setRoot ( QtNode root)
inline

Member Data Documentation

SymbolTable<int> QueryTree::symtab
static

The documentation for this class was generated from the following file: