greenplumn CXformResult 源码

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

greenplumn CXformResult 代码

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

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2009 Greenplum, Inc.
//
//	@filename:
//		CXformResult.h
//
//	@doc:
//		Result container for all transformations
//---------------------------------------------------------------------------
#ifndef GPOPT_CXformResult_H
#define GPOPT_CXformResult_H

#include "gpos/base.h"

#include "gpopt/operators/CExpression.h"

namespace gpopt
{
using namespace gpos;

//---------------------------------------------------------------------------
//	@class:
//		CXformResult
//
//	@doc:
//		result container
//
//---------------------------------------------------------------------------
class CXformResult : public CRefCount, public DbgPrintMixin<CXformResult>
{
private:
	// set of alternatives
	CExpressionArray *m_pdrgpexpr;

	// cursor for retrieval
	ULONG m_ulExpr;

public:
	CXformResult(const CXformResult &) = delete;

	// ctor
	explicit CXformResult(CMemoryPool *);

	// dtor
	~CXformResult() override;

	// accessor
	inline CExpressionArray *
	Pdrgpexpr() const
	{
		return m_pdrgpexpr;
	}

	// add alternative
	void Add(CExpression *pexpr);

	// retrieve next alternative
	CExpression *PexprNext();

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

	ULONG
	Size() const
	{
		return m_pdrgpexpr->Size();
	}

};	// class CXformResult

// shorthand for printing
inline IOstream &
operator<<(IOstream &os, CXformResult &xfres)
{
	return xfres.OsPrint(os);
}

}  // namespace gpopt


#endif	// !GPOPT_CXformResult_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDecorrelator 源码

greenplumn CJoinOrder 源码

greenplumn CJoinOrderDP 源码

greenplumn CJoinOrderDPv2 源码

greenplumn CJoinOrderGreedy 源码

greenplumn CJoinOrderMinCard 源码

greenplumn CSubqueryHandler 源码

greenplumn CXform 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinNotInSwap 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinSwap 源码

0  赞