greenplumn CJoinOrderMinCard 源码

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

greenplumn CJoinOrderMinCard 代码

文件路径:/src/backend/gporca/libgpopt/include/gpopt/xforms/CJoinOrderMinCard.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2012 EMC Corp.
//
//	@filename:
//		CJoinOrderMinCard.h
//
//	@doc:
//		Cardinality-based join order generation
//---------------------------------------------------------------------------
#ifndef GPOPT_CJoinOrderMinCard_H
#define GPOPT_CJoinOrderMinCard_H

#include "gpos/base.h"
#include "gpos/common/CBitSet.h"
#include "gpos/common/CRefCount.h"
#include "gpos/io/IOstream.h"

#include "gpopt/xforms/CJoinOrder.h"

namespace gpopt
{
using namespace gpos;

//---------------------------------------------------------------------------
//	@class:
//		CJoinOrderMinCard
//
//	@doc:
//		Helper class for creating join orders based on cardinality of results
//
//---------------------------------------------------------------------------
class CJoinOrderMinCard : public CJoinOrder
{
private:
	// result component
	SComponent *m_pcompResult;

public:
	// ctor
	CJoinOrderMinCard(CMemoryPool *mp, CExpressionArray *pdrgpexprComponents,
					  CExpressionArray *pdrgpexprConjuncts);

	// dtor
	~CJoinOrderMinCard() override;

	// main handler
	virtual CExpression *PexprExpand();

	// print function
	IOstream &OsPrint(IOstream &) const;

	CXform::EXformId
	EOriginXForm() const override
	{
		return CXform::ExfExpandNAryJoinMinCard;
	}

};	// class CJoinOrderMinCard

}  // namespace gpopt

#endif	// !GPOPT_CJoinOrderMinCard_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDecorrelator 源码

greenplumn CJoinOrder 源码

greenplumn CJoinOrderDP 源码

greenplumn CJoinOrderDPv2 源码

greenplumn CJoinOrderGreedy 源码

greenplumn CSubqueryHandler 源码

greenplumn CXform 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinNotInSwap 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinSwap 源码

greenplumn CXformAntiSemiJoinInnerJoinSwap 源码

0  赞