greenplumn CStatsPredArrayCmp 源码

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

greenplumn CStatsPredArrayCmp 代码

文件路径:/src/backend/gporca/libnaucrates/include/naucrates/statistics/CStatsPredArrayCmp.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2020 VMware, Inc.
//
//	@filename:
//		CStatsPredArrayCmp.h
//
//	@doc:
//		ArrayCmp filter on statistics
//---------------------------------------------------------------------------
#ifndef GPNAUCRATES_CStatsPredArrayCmp_H
#define GPNAUCRATES_CStatsPredArrayCmp_H

#include "gpos/base.h"

#include "naucrates/md/IMDType.h"
#include "naucrates/statistics/CPoint.h"
#include "naucrates/statistics/CStatsPred.h"

// fwd declarations
namespace gpopt
{
class CColRef;
}

namespace gpnaucrates
{
using namespace gpos;
using namespace gpmd;
using namespace gpopt;

class CStatsPredArrayCmp : public CStatsPred
{
private:
	// comparison type
	CStatsPred::EStatsCmpType m_stats_cmp_type;

	CPointArray *m_points;

public:
	CStatsPredArrayCmp &operator=(CStatsPredArrayCmp &) = delete;

	CStatsPredArrayCmp(const CStatsPredArrayCmp &) = delete;

	// ctor
	CStatsPredArrayCmp(ULONG colid, CStatsPred::EStatsCmpType stats_cmp_type,
					   CPointArray *points);

	// dtor
	~CStatsPredArrayCmp() override
	{
		m_points->Release();
	}

	// comparison types for stats computation
	virtual CStatsPred::EStatsCmpType
	GetCmpType() const
	{
		return m_stats_cmp_type;
	}

	// filter type id
	EStatsPredType
	GetPredStatsType() const override
	{
		return CStatsPred::EsptArrayCmp;
	}

	virtual CPointArray *
	GetPoints() const
	{
		return m_points;
	}

	// conversion function
	static CStatsPredArrayCmp *
	ConvertPredStats(CStatsPred *pred_stats)
	{
		GPOS_ASSERT(nullptr != pred_stats);
		GPOS_ASSERT(CStatsPred::EsptArrayCmp == pred_stats->GetPredStatsType());

		return dynamic_cast<CStatsPredArrayCmp *>(pred_stats);
	}

};	// class CStatsPredArrayCmp

}  // namespace gpnaucrates

#endif	// !GPNAUCRATES_CStatsPredArrayCmp_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CBucket 源码

greenplumn CFilterStatsProcessor 源码

greenplumn CGroupByStatsProcessor 源码

greenplumn CHistogram 源码

greenplumn CInnerJoinStatsProcessor 源码

greenplumn CJoinStatsProcessor 源码

greenplumn CLeftAntiSemiJoinStatsProcessor 源码

greenplumn CLeftOuterJoinStatsProcessor 源码

greenplumn CLeftSemiJoinStatsProcessor 源码

greenplumn CLimitStatsProcessor 源码

0  赞