greenplumn CXformExploration 源码

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

greenplumn CXformExploration 代码

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

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2011 EMC Corp.
//
//	@filename:
//		CXformExploration.h
//
//	@doc:
//		Base class for exploration transforms
//---------------------------------------------------------------------------
#ifndef GPOPT_CXformExploration_H
#define GPOPT_CXformExploration_H

#include "gpos/base.h"

#include "gpopt/xforms/CXform.h"

namespace gpopt
{
using namespace gpos;

//---------------------------------------------------------------------------
//	@class:
//		CXformExploration
//
//	@doc:
//		Base class for all explorations
//
//---------------------------------------------------------------------------
class CXformExploration : public CXform
{
private:
public:
	CXformExploration(const CXformExploration &) = delete;

	// ctor
	explicit CXformExploration(CExpression *pexpr);

	// dtor
	~CXformExploration() override;

	// type of operator
	BOOL
	FExploration() const override
	{
		GPOS_ASSERT(!FSubstitution() && !FImplementation());
		return true;
	}

	// is transformation a subquery unnesting (Subquery To Apply) xform?
	virtual BOOL
	FSubqueryUnnesting() const
	{
		return false;
	}

	// is transformation an Apply decorrelation (Apply To Join) xform?
	virtual BOOL
	FApplyDecorrelating() const
	{
		return false;
	}

	// do stats need to be computed before applying xform?
	virtual BOOL
	FNeedsStats() const
	{
		return false;
	}

	// conversion function
	static CXformExploration *
	Pxformexp(CXform *pxform)
	{
		GPOS_ASSERT(nullptr != pxform);
		GPOS_ASSERT(pxform->FExploration());

		return dynamic_cast<CXformExploration *>(pxform);
	}

};	// class CXformExploration

}  // namespace gpopt


#endif	// !GPOPT_CXformExploration_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDecorrelator 源码

greenplumn CJoinOrder 源码

greenplumn CJoinOrderDP 源码

greenplumn CJoinOrderDPv2 源码

greenplumn CJoinOrderGreedy 源码

greenplumn CJoinOrderMinCard 源码

greenplumn CSubqueryHandler 源码

greenplumn CXform 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinNotInSwap 源码

greenplumn CXformAntiSemiJoinAntiSemiJoinSwap 源码

0  赞