greenplumn CDistributionSpecUniversal 源码

  • 2022-08-18
  • 浏览 (527)

greenplumn CDistributionSpecUniversal 代码

文件路径:/src/backend/gporca/libgpopt/include/gpopt/base/CDistributionSpecUniversal.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2012 EMC Corp.
//
//	@filename:
//		CDistributionSpecUniversal.h
//
//	@doc:
//		Description of a general distribution which reports availability everywhere;
//		Can be used only as a derived property;
//---------------------------------------------------------------------------
#ifndef GPOPT_CDistributionSpecUniversal_H
#define GPOPT_CDistributionSpecUniversal_H

#include "gpos/base.h"

#include "gpopt/base/CDistributionSpec.h"
#include "gpopt/base/CDistributionSpecHashed.h"

namespace gpopt
{
using namespace gpos;

//---------------------------------------------------------------------------
//	@class:
//		CDistributionSpecUniversal
//
//	@doc:
//		Class for representing general distribution specification which
//		reports availability everywhere.
//
//---------------------------------------------------------------------------
class CDistributionSpecUniversal : public CDistributionSpec
{
private:
public:
	CDistributionSpecUniversal(const CDistributionSpecUniversal &) = delete;

	//ctor
	CDistributionSpecUniversal();

	// accessor
	EDistributionType Edt() const override;

	// does current distribution satisfy the given one
	BOOL FSatisfies(const CDistributionSpec *pds) const override;

	// return true if distribution spec can be required
	BOOL FRequirable() const override;

	// does this distribution match the given one
	BOOL Matches(const CDistributionSpec *pds) const override;

	// append enforcers to dynamic array for the given plan properties
	void AppendEnforcers(CMemoryPool *,		   //mp,
						 CExpressionHandle &,  // exprhdl
						 CReqdPropPlan *,	   //prpp,
						 CExpressionArray *,   // pdrgpexpr,
						 CExpression *		   // pexpr
						 ) override;

	// print
	IOstream &OsPrint(IOstream &os) const override;

	// return distribution partitioning type
	EDistributionPartitioningType Edpt() const override;

	// conversion function
	static CDistributionSpecUniversal *PdsConvert(CDistributionSpec *pds);

};	// class CDistributionSpecUniversal

}  // namespace gpopt

#endif	// !GPOPT_CDistributionSpecUniversal_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoOptCtxt 源码

greenplumn CCTEInfo 源码

greenplumn CCTEMap 源码

greenplumn CCTEReq 源码

greenplumn CCastUtils 源码

greenplumn CColConstraintsArrayMapper 源码

greenplumn CColConstraintsHashMapper 源码

greenplumn CColRef 源码

greenplumn CColRefComputed 源码

greenplumn CColRefSet 源码

0  赞