Root class for the expression hierarchy
![]() | ValExprTypeEnum A list of all possible value types of value expressions |
![]() | ExprName Optional name for expression. |
![]() | Arity () What is the arity? |
![]() | ChildExpr (int i) Get the i'th subexpressions |
![]() | DirectSubexpressions () Returns a list of the immediate subexpressions of the expression |
![]() | GenerateCatInfo () / needed for expressions that generate complex data types |
![]() | GetDependencies (XxxBitMap& Dependendency, int CorrelationHt) Gets input stream dependencies (that were resolved in ResolveVars) Sets flags in the input argument Dependency |
![]() | IsConstant () Is this a constant expression? |
![]() | Match (const XxxValueExpression* OtherExpr, char *Env = NULL) Checks to see if the expression matches another expression |
![]() | Match (const XxxValueExpression* RuleExpr, XxxBindingEnv *BindEnv) Checks if the expression matches another rule input expression If match is successful, return true, and assign BindTerm array inside XxxBindingEnv class |
![]() | Optimize (XxxValueExprPlan*& ExecPlan) Most expresions have hard coded execution strategies and so are automatically optimized |
![]() | Print (ostream&) Print the expression |
![]() | ReferencesAggregate () Returns XXX_TRUE if this expression references an aggregate |
![]() | Replace (const XxxUnknownValue *Target, const XxxValueExpression *Replacement) Replaces all references to the target expression with references to the replacement expression |
![]() | Replace (const XxxValueExpression *Target, const XxxValueExpression *Replacement) Replaces all references to the target expression with references to the replacement expression |
![]() | Replicate () Provides a convenient way to copy arbitrary expressions |
![]() | ResolveVars (const XxxArgEnv* Env) Tries to resolve host variables using the argument environment |
![]() | ResolveVars (XxxQueryNode* Node, char Source) Tries to resolve unknown variables using the child Source |
![]() | ResolveVars (const XxxRecordSchema *Schema) Tries to resolve unknown variables using a Schema |
![]() | SetChild (int Index, XxxValueExpression* NewExp) Specify a particular subexpression (used in query rewrite) |
![]() | TypeCheck () This should be called after all variables are resolved. |
![]() | UpdateUnknowns (int ChildNumber, int OldAttrIndex, int NewAttrIndex, XxxBool &Appears) Substitutes NewAttrIndex for OldAttrIndex in the SrcAttrIndex field of XxxUnknownValues subexpressions with SrcChild == ChildNumber Appears should be initialized with XXX_FALSE and is set to true if a column reference was found and updated |
![]() | ValExprsReferenced () Returns a list of replications of all value expressions referenced in the expression |
![]() | XxxValueExpression (const XxxValueExpression& src) Copy constructor (used in most query rewrites) |
![]() | XxxValueExpression (int NumChildren = 0, XxxValueExpression* Children[] = NULL) Common constructor |
![]() | ~XxxValueExpression () Destructor |
![]() | ValExprType A typedef for easy reference |
![]() | ValExprTypeEnum A list of all possible value types of value expressions |
![]() | arity how many subexpressions? |
![]() | childExpr array of subexpressions |
Root class for the expression hierarchy. Here's how the expression "library" works. The XxxExpression class provides a virtual base class for all kinds of expressions. It provides interfaces for type checking, etc. In the XXX system, every expression needs to be optimized. Therefore, there is a XxxValueExprPlan that is generated from an XxxExpression by invoking the Optimize() method. It is this XxxValueExprPlan that is executed in order to evaluate the expression.
XxxValueExpression** childExpr
char* ExprName
virtual XxxBool IsConstant()
virtual int Arity()
inline XxxValueExpression* ChildExpr(int i)
virtual void Print(ostream&)
virtual XxxErrCode ResolveVars(const XxxRecordSchema *Schema)
virtual XxxErrCode ResolveVars(XxxQueryNode* Node, char Source)
virtual XxxErrCode ResolveVars(const XxxArgEnv* Env)
virtual XxxErrCode TypeCheck()
virtual XxxErrCode Optimize(XxxValueExprPlan*& ExecPlan)
virtual XxxErrCode GetDependencies(XxxBitMap& Dependendency, int CorrelationHt)
XxxErrCode SetChild(int Index, XxxValueExpression* NewExp)
virtual XxxBool Match(const XxxValueExpression* OtherExpr, char *Env = NULL)
virtual XxxBool Match(const XxxValueExpression* RuleExpr, XxxBindingEnv *BindEnv)
virtual XxxValueExpression* Replicate()
virtual XxxErrCode Replace(const XxxValueExpression *Target, const XxxValueExpression *Replacement)
virtual XxxErrCode Replace(const XxxUnknownValue *Target, const XxxValueExpression *Replacement)
virtual XxxErrCode UpdateUnknowns(int ChildNumber, int OldAttrIndex, int NewAttrIndex, XxxBool &Appears)
virtual XxxBool ReferencesAggregate()
virtual XxxValueExprList* DirectSubexpressions()
virtual XxxValueExprList* ValExprsReferenced()
enum ValExprTypeEnum
typedef enum ValExprTypeEnum ValExprType
virtual XxxADTMetaInfo* GenerateCatInfo()
XxxValueExpression(int NumChildren = 0, XxxValueExpression* Children[] = NULL)
XxxValueExpression(const XxxValueExpression& src)
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de