|
enum | QtNodeType {
QT_UNDEFINED_NODE,
QT_MDD_ACCESS,
QT_OPERATION_ITERATOR,
QT_SELECTION_ITERATOR,
QT_JOIN_ITERATOR,
QT_UPDATE,
QT_INSERT,
QT_DELETE,
QT_COMMAND,
QT_PLUS,
QT_MINUS,
QT_MULT,
QT_DIV,
QT_OR,
QT_AND,
QT_XOR,
QT_IS,
QT_EQUAL,
QT_NOT_EQUAL,
QT_LESS,
QT_LESS_EQUAL,
QT_NOT,
QT_SQRT,
QT_EXECUTE,
QT_ONC_STREAM,
QT_ITERATOR,
QT_OPERATION,
QT_BINARY_OPERATION,
QT_BINARY_INDUCE,
QT_GROUP_ITERATOR,
QT_IDENT,
QT_NARY_OPERATION,
QT_UNARY_OPERATION,
QT_CONDENSE,
QT_UNARY_INDUCE,
QT_ABS,
QT_EXP,
QT_LOG,
QT_LN,
QT_SIN,
QT_COS,
QT_TAN,
QT_SINH,
QT_COSH,
QT_TANH,
QT_ARCSIN,
QT_ARCCOS,
QT_ARCTAN,
QT_REALPART,
QT_IMAGINARPART,
QT_CAST,
QT_CSE_ROOT,
QT_DOMAIN_OPERATION,
QT_ALL,
QT_SOME,
QT_COUNTCELLS,
QT_ADDCELLS,
QT_AVGCELLS,
QT_MINCELLS,
QT_MAXCELLS,
QT_MDD_VAR,
QT_MDD_STREAM,
QT_CONST,
QT_DOT,
QT_CONVERSION,
QT_OID,
QT_INTERVALOP,
QT_MINTERVALOP,
QT_POINTOP,
QT_LO,
QT_HI,
QT_SDOM,
QT_SHIFT,
QT_EXTEND,
QT_MARRAYOP,
QT_CONDENSEOP,
QT_SCALE,
QT_OVERLAY,
QT_BIT,
QT_PYRAMID,
QT_ENCODE,
QT_CONCAT,
QT_CASEOP,
QT_INFO,
QT_LAST_NODE_TYPE
} |
|
enum | QtAreaType { QT_AREA_MDD,
QT_AREA_SCALAR
} |
|
enum | QtChildType { QT_DIRECT_CHILDS,
QT_LEAF_NODES,
QT_ALL_NODES
} |
|
typedef std::vector< QtData * > | QtDataList |
| list of QtData pointers More...
|
|
typedef std::vector
< QtTrimElement * > | QtTrimList |
| list of QtTrimData structures More...
|
|
typedef std::list< QtNode * > | QtNodeList |
| list of QtNode pointers More...
|
|
typedef std::vector
< QtOperation * > | QtOperationList |
| list of QtOperation pointers More...
|
|
The class QtNode is the common super class of all node classes of the query tree. It provides a reference to its parent node in the tree. The parent of root is null.
virtual bool QtNode::equalMeaning |
( |
QtNode * |
node | ) |
|
|
virtual |
test if the two nodes have an equal meaning in a subtree
The method allows to specify the class of childs to be considered according to method { getChilds}. By default, just direct childs are considered
Reimplemented in QtDot, QtConversion, QtUnaryOperation, QtBinaryOperation, QtNaryOperation, QtDomainOperation, QtCondenseOp, QtVariable, QtConst, and QtConcat.
virtual const QtNodeType QtNode::getNodeType |
( |
| ) |
const |
|
inlinevirtual |
methods for identification of nodes
Reimplemented in QtMaxCells, QtBit, QtArctan, QtOverlay, QtMinCells, QtArccos, QtNotEqual, QtArcsin, QtAvgCells, QtImaginarPartOp, QtTanh, QtRealPartOp, QtLessEqual, QtCosh, QtAddCells, QtCast, QtDiv, QtLess, QtSinh, QtCountCells, QtMult, QtTan, QtScale, QtEqual, QtDot, QtCos, QtMinus, QtAll, QtXor, QtSDom, QtSin, QtPlus, QtLn, QtOr, QtNot, QtExtend, QtSome, QtCondenseOp, QtVariable, QtDomainOperation, QtLog, QtOperationIterator, QtSelectionIterator, QtIntervalHiOp, QtJoinIterator, QtConversion, QtAnd, QtConst, QtMDDAccess, QtExp, QtInsert, QtUpdate, QtCommand, QtDelete, QtShift, QtMarrayOp, QtIntervalOp, QtCaseOp, QtMintervalOp, QtPointOp, QtInfo, QtOId, QtSqrt, QtIs, QtConcat, QtIntervalLoOp, and QtAbs.
enum QtNodeType QtNode::getQtNodeTypeParent |
( |
enum |
QtNodeType | ) |
|
method for pre optimizations (basically load optimization)
The method allows you to differ between the different node types. {Load Optimization} The method is invoked through the whole query tree. The information of every triming and projection node is collected and stored in a { QtTrimList} structure which is passed down. While collecting the information consistency of the data is checked. At the leafs, which are load operations, the structure is converted to a minterval object and stored in the leaf node. The list is dynamically created in the node which is on top of an operation subtree and deleted where the information is stored or dropped.
Defined empty to do nothing in case it is not defined for a subclass.returns the QtNodeType parent of the argument (do not use for the root)
virtual std::string QtNode::getSpelling |
( |
| ) |
|
|
virtual |
virtual void QtNode::printAlgebraicExpression |
( |
std::ostream & |
s = std::cout | ) |
|
|
pure virtual |
prints the algebraic expression
Implemented in QtBit, QtArctan, QtOverlay, QtArccos, QtArcsin, QtNotEqual, QtImaginarPartOp, QtTanh, QtRealPartOp, QtLessEqual, QtCosh, QtCast, QtDiv, QtSinh, QtLess, QtMult, QtTan, QtScale, QtEqual, QtDot, QtCos, QtMinus, QtXor, QtSDom, QtSin, QtPlus, QtLn, QtOr, QtNot, QtExtend, QtOperation, QtLog, QtNaryOperation, QtIntervalHiOp, QtCondenseOp, QtConversion, QtAnd, QtDomainOperation, QtOperationIterator, QtVariable, QtConst, QtExp, QtMDDAccess, QtSelectionIterator, QtInsert, QtCommand, QtCondense, QtIterator, QtShift, QtMarrayOp, QtJoinIterator, QtIntervalOp, QtCaseOp, QtMintervalOp, QtPointOp, QtUpdate, QtSqrt, QtDelete, QtInfo, QtOId, QtIs, QtConcat, QtIntervalLoOp, and QtAbs.
prints the tree
The method evaluates constant expressions.
Implemented in QtBit, QtArctan, QtOverlay, QtArccos, QtArcsin, QtNotEqual, QtImaginarPartOp, QtTanh, QtRealPartOp, QtLessEqual, QtCosh, QtCast, QtDiv, QtSinh, QtLess, QtTan, QtMult, QtScale, QtEqual, QtDot, QtCos, QtMinus, QtXor, QtSin, QtSDom, QtLn, QtPlus, QtOr, QtNot, QtExtend, QtOperation, QtLog, QtBinaryOperation, QtNaryOperation, QtIntervalHiOp, QtCondenseOp, QtUnaryOperation, QtConversion, QtAnd, QtDomainOperation, QtEncode, QtExp, QtOperationIterator, QtVariable, QtConst, QtMDDAccess, QtSelectionIterator, QtInsert, QtCommand, QtCondense, QtIterator, QtShift, QtMarrayOp, QtJoinIterator, QtIntervalOp, QtSqrt, QtCaseOp, QtMintervalOp, QtPointOp, QtUpdate, QtDelete, QtInfo, QtOId, QtIs, QtConcat, QtIntervalLoOp, and QtAbs.