greenplumn CPartPruneStepsBuilder 代码
文件路径:/src/include/gpopt/translate/CPartPruneStepsBuilder.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2011 Greenplum, Inc.
/
/ @filename:
/ CPartPruneStepsBuilder.h
/
/ @doc:
/ Utility class to construct PartPruneInfos with appropriate
/ PartPruningSteps from partitioning filter expressions
/---------------------------------------------------------------------------
#ifndef GPDXL_CPartPruneStepsBuilder_H
#define GPDXL_CPartPruneStepsBuilder_H
#include "gpos/base.h"
#include "gpopt/translate/CMappingColIdVarPlStmt.h"
#include "gpopt/translate/CTranslatorDXLToScalar.h"
#include "naucrates/dxl/operators/CDXLNode.h"
using namespace gpos;
namespace gpdxl
{
class CPartPruneStepsBuilder
{
private:
/ root partitioned tabled
Relation m_relation;
/ index in the rtable
Index m_rtindex;
/ list of pruned scan nodes denoted as an index of the relation's partition_mdids
ULongPtrArray *m_part_indexes;
/ colid -> var mapping from the subtree
CMappingColIdVarPlStmt *m_colid_var_mapping;
/ dxl -> scalar translator
CTranslatorDXLToScalar *m_translator_dxl_to_scalar;
/ ctor
CPartPruneStepsBuilder(Relation relation, Index rtindex,
ULongPtrArray *part_indexes,
CMappingColIdVarPlStmt *colid_var_mapping,
CTranslatorDXLToScalar *translator_dxl_to_scalar);
CPartPruneStepsBuilder(const CPartPruneStepsBuilder &) = default;
public:
/ dtor
~CPartPruneStepsBuilder() = default;
static List *CreatePartPruneInfos(
CDXLNode *filterNode, Relation relation, Index rtindex,
ULongPtrArray *part_indexes, CMappingColIdVarPlStmt *colid_var_mapping,
CTranslatorDXLToScalar *translator_dxl_to_scalar);
PartitionedRelPruneInfo *CreatePartPruneInfoForOneLevel(
CDXLNode *filterNode);
List *PartPruneStepsFromFilter(CDXLNode *filterNode, INT *step_id,
List *steps_list);
List *PartPruneStepFromScalarCmp(CDXLNode *node, INT *step_id,
List *steps_list);
List *PartPruneStepFromScalarBoolExpr(CDXLNode *node, INT *step_id,
List *steps_list);
};
} / namespace gpdxl
#endif / !GPDXL_CPartPruneStepsBuilder_H
/EOF
相关信息
相关文章
greenplumn CContextDXLToPlStmt 源码
greenplumn CContextQueryToDXL 源码
greenplumn CDXLTranslateContext 源码
greenplumn CDXLTranslateContextBaseTable 源码