In file funcexpr.h:

class XxxFuncExpression : public XxxValueExpression

Models all functions (and class methods)

Inheritance:


Public Classes

class FuncPlan : public XxxValueExprPlan
/ Plan for XxxFuncExpression

Public Methods

virtual XxxValueExprList* DirectSubexpressions ()
Returns a list of the immediate subexpressions of the expression
XxxBool IsCountAggr ()
Used in gbyplanop
virtual XxxErrCode Evaluate (const XxxRecord* Rec[], const XxxRecordSchema* Schema[], XxxADTValue *Result, const XxxValueEnv* Env = NULL)
Evaluate() is not meaningful for an aggregate expression.
virtual XxxErrCode Drop (const XxxRecord* Rec[], const XxxRecordSchema* Schema[], XxxAggrOpHandle *Handle, const XxxValueEnv* Env = NULL)
/ This drops the input from the AggrOpHandle.
XxxBool IsAggr ()
Is this an aggregate function?
virtual XxxBool Match (const XxxExpression* 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
virtual XxxBool ReferencesAggregate ()
Is this expression based in any way on an aggregate expression?
virtual XxxErrCode Replace (const XxxExpression *Target, const XxxExpression *Replacement)
Replaces all references to the target expression with references to the replacement expression
virtual XxxErrCode Replace (const XxxUnknownValue *Target, const XxxExpression *Replacement)
Replaces all references to the target expression with references to the replacement expression
virtual XxxExpression* Replicate ()
Provides a convenient way to copy arbitrary expressions
virtual XxxErrCode UpdateUnknowns (int ChildNumber, int OldAttrIndex, int NewAttrIndex, XxxBool &Appears)
Substitutes NewAttrIndex for OldAttrIndex in the SrcAttrIndex field of XxxUnknownValues subexpressions with SrcChild == ChildNumber
virtual XxxValueExprList* ValExprsReferenced ()
Returns a list of replications of all value expressions referenced in the expression

Inherited from XxxValueExpression:

Public Classes

enum ValExprTypeEnum

Public Fields

char* ExprName

Public Methods

virtual int Arity()
inline XxxValueExpression* ChildExpr(int i)
virtual XxxADTMetaInfo* GenerateCatInfo()
virtual XxxErrCode GetDependencies(XxxBitMap& Dependendency, int CorrelationHt)
virtual XxxBool IsConstant()
virtual XxxErrCode Optimize(XxxValueExprPlan*& ExecPlan)
virtual void Print(ostream&)
virtual XxxErrCode ResolveVars(const XxxArgEnv* Env)
virtual XxxErrCode ResolveVars(const XxxRecordSchema *Schema)
virtual XxxErrCode ResolveVars(XxxQueryNode* Node, char Source)
XxxErrCode SetChild(int Index, XxxValueExpression* NewExp)
virtual XxxErrCode TypeCheck()

Public

typedef enum ValExprTypeEnum ValExprType
enum ValExprTypeEnum

Protected Fields

int arity
XxxValueExpression** childExpr

Documentation

Models all functions (and class methods)
class FuncPlan: public XxxValueExprPlan
/ Plan for XxxFuncExpression

virtual XxxValueExprList* DirectSubexpressions()
Returns a list of the immediate subexpressions of the expression. The list consists of the children or the owner and arguments of an expression. Used in the AggregateFunctionPushDownRule. (mayr@cs)

XxxBool IsCountAggr()
Used in gbyplanop.C to determine what to do with empty aggregates

virtual XxxErrCode Evaluate(const XxxRecord* Rec[], const XxxRecordSchema* Schema[], XxxADTValue *Result, const XxxValueEnv* Env = NULL)
Evaluate() is not meaningful for an aggregate expression.

virtual XxxErrCode Drop(const XxxRecord* Rec[], const XxxRecordSchema* Schema[], XxxAggrOpHandle *Handle, const XxxValueEnv* Env = NULL)
/ This drops the input from the AggrOpHandle.

virtual XxxValueExprList* ValExprsReferenced()
Returns a list of replications of all value expressions referenced in the expression. It is the caller's responsibility to destroy the list.

virtual XxxExpression* Replicate()
Provides a convenient way to copy arbitrary expressions

virtual XxxErrCode Replace(const XxxExpression *Target, const XxxExpression *Replacement)
Replaces all references to the target expression with references to the replacement expression. Uses the match function to determine if the target expression is referenced.

virtual XxxErrCode Replace(const XxxUnknownValue *Target, const XxxExpression *Replacement)
Replaces all references to the target expression with references to the replacement expression. Used in XxxStrRule (Binquan)

virtual XxxErrCode UpdateUnknowns(int ChildNumber, int OldAttrIndex, int NewAttrIndex, XxxBool &Appears)
Substitutes NewAttrIndex for OldAttrIndex in the SrcAttrIndex field of XxxUnknownValues subexpressions with SrcChild == ChildNumber

XxxBool IsAggr()
Is this an aggregate function?

virtual XxxBool ReferencesAggregate()
Is this expression based in any way on an aggregate expression?

virtual XxxBool Match(const XxxExpression* 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


Direct child classes:
XxxAggrExpression

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de