In file greedyspj.h:

class RelSPJGreedyOpt : public RelSPJSemiNaiveOpt

Varies from the naive optimizer in that it uses a greedy algorithm based on intermediate tables cardinality to determine the join order

Inheritance:


Protected Methods

XxxErrCode includeNewRel (int CurrentRel, int CurrentRelPos, const RelOptEngine::Cost& InputCost, const RelOptEngine::LogProperties& InputLProps, const RelOptEngine::PhysProperties& InputPProps, RelOptEngine::Cost& OutputCost, RelOptEngine::LogProperties& OutputLProps, RelOptEngine::PhysProperties& OutputPProps, RelOptEngine::JoinMethod& JM)
/ Estimate the properties and cost of joining with CurrentRel

Inherited from RelSPJSemiNaiveOpt:

Protected Methods

XxxErrCode changeRemap(XxxExprPlan::VarRemapping& Remap, int NumChildren, int SourceToChange, int NewSourceValue, int AttrIncrement, int* InputArity)

Inherited from RelSPJNaiveOptimizer:

Public Classes

class SPJNaivePlan: public RelOptEngine::PlanObject

Public Methods

static XxxErrCode CreateSMPlanOp(RelPlanOp*& PlanOp, int NumChildren, RelPlanOp* Children[], RelCatalogInfo* CatInfo, XxxValExprPlanList* ExprPlanList, XxxBooleanExpressionPlan** SelPredPlans, XxxBooleanExpressionPlan** JoinPredPlans, XxxBooleanExpressionPlan** ResidPredPlans, XxxBooleanExpressionPlan* InitPlan, const SMPlanGlue& Glue)
static void MakeSMGlue(int NumChildren, const RelPlanOp** Children, const XxxRelBooleanPlan *JoinPlan, SMPlanGlue& Glue)

Protected Methods

XxxErrCode constructRemap(SPJNaivePlan* SPJPlan, XxxExprPlan::VarRemapping& Remap, int NewArity, int *InputArity, XxxBool MapAttrs)
XxxErrCode createPreds(SPJNaivePlan* SPJPlan, RelSPJOptimizer::PredPlanStruct& PredPlans)
XxxErrCode exprRemap(XxxExprPlan::VarRemapping& Remap, RelSPJOptimizer::PredPlanStruct& PredPlans, int NumChildren, XxxValExprPlanList* ExprPlanList)
XxxErrCode getChildPlans(SPJNaivePlan* SPJPlan, RelPlanOp** ChildPlanOps, int* InputArity)
XxxErrCode getInitPlan(SPJNaivePlan* SPJPlan, XxxBooleanExpressionPlan*& InitPlan)
XxxErrCode getJoinPlans(SPJNaivePlan* SPJPlan, RelSPJOptimizer::PredPlanStruct& PredPlans, int NumChildren, int JoinOffset, int SkipTemporary)

Inherited from RelSPJOptimizer:

Public Classes

class PlanGlue
class RelSPJBlockPlan: public RelBlockPlan
class SMPlanGlue: public PlanGlue
XxxBool MaterializeLtInput
/ indicate whether the inputs need a temp to sort them
int LeftRunSize
/ indicate max run sizes for sorting

Documentation

Varies from the naive optimizer in that it uses a greedy algorithm based on intermediate tables cardinality to determine the join order
XxxErrCode includeNewRel(int CurrentRel, int CurrentRelPos, const RelOptEngine::Cost& InputCost, const RelOptEngine::LogProperties& InputLProps, const RelOptEngine::PhysProperties& InputPProps, RelOptEngine::Cost& OutputCost, RelOptEngine::LogProperties& OutputLProps, RelOptEngine::PhysProperties& OutputPProps, RelOptEngine::JoinMethod& JM)
/ Estimate the properties and cost of joining with CurrentRel


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