XxxAggrExpression
In file aggrexpr.h:
An aggregate expression is a slight variant of a FuncExpression
Inheritance:
Public Classes
class FuncPlan: public XxxValueExprPlan
Public Methods
virtual XxxValueExprList* DirectSubexpressions()
-
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()
virtual XxxBool Match(const XxxExpression* RuleExpr, XxxBindingEnv *BindEnv)
virtual XxxBool ReferencesAggregate()
virtual XxxErrCode Replace(const XxxExpression *Target, const XxxExpression *Replacement)
virtual XxxErrCode Replace(const XxxUnknownValue *Target, const XxxExpression *Replacement)
virtual XxxExpression* Replicate()
virtual XxxErrCode UpdateUnknowns(int ChildNumber, int OldAttrIndex, int NewAttrIndex, XxxBool &Appears)
virtual XxxValueExprList* ValExprsReferenced()
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
An aggregate expression is a slight variant of a FuncExpression.
For standard aggregates like MIN, MAX, etc, they are represented
as methods of XXX_GENFUNC_ADT. For extensible aggregates,
although textually, the aggregate looks like Foo(A, B, C),
we represent it internally as A.Foo(B, C)
- This class has no child classes.
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