greenplumn CMDProviderGeneric 源码

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

greenplumn CMDProviderGeneric 代码

文件路径:/src/backend/gporca/libnaucrates/src/md/CMDProviderGeneric.cpp

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2012 EMC Corp.
//
//	@filename:
//		CMDProviderGeneric.cpp
//
//	@doc:
//		Implementation of a generic MD provider.
//---------------------------------------------------------------------------

#include "naucrates/md/CMDProviderGeneric.h"

#include "gpos/error/CAutoTrace.h"
#include "gpos/io/COstreamString.h"
#include "gpos/memory/CMemoryPool.h"

#include "naucrates/dxl/CDXLUtils.h"
#include "naucrates/exception.h"
#include "naucrates/md/CDXLColStats.h"
#include "naucrates/md/CDXLRelStats.h"
#include "naucrates/md/CMDTypeBoolGPDB.h"
#include "naucrates/md/CMDTypeInt2GPDB.h"
#include "naucrates/md/CMDTypeInt4GPDB.h"
#include "naucrates/md/CMDTypeInt8GPDB.h"

using namespace gpdxl;
using namespace gpmd;

//---------------------------------------------------------------------------
//	@function:
//		CMDProviderGeneric::CMDProviderGeneric
//
//	@doc:
//		Constructs a file-based metadata provider
//
//---------------------------------------------------------------------------
CMDProviderGeneric::CMDProviderGeneric(CMemoryPool *mp)
{
	// TODO:  - Jan 25, 2012; those should not be tied to a particular system
	m_mdid_int2 = GPOS_NEW(mp) CMDIdGPDB(GPDB_INT2);
	m_mdid_int4 = GPOS_NEW(mp) CMDIdGPDB(GPDB_INT4);
	m_mdid_int8 = GPOS_NEW(mp) CMDIdGPDB(GPDB_INT8);
	m_mdid_bool = GPOS_NEW(mp) CMDIdGPDB(GPDB_BOOL);
	m_mdid_oid = GPOS_NEW(mp) CMDIdGPDB(GPDB_OID);
}

//---------------------------------------------------------------------------
//	@function:
//		CMDProviderGeneric::~CMDProviderGeneric
//
//	@doc:
//		Destructor
//
//---------------------------------------------------------------------------
CMDProviderGeneric::~CMDProviderGeneric()
{
	m_mdid_int2->Release();
	m_mdid_int4->Release();
	m_mdid_int8->Release();
	m_mdid_bool->Release();
	m_mdid_oid->Release();
}

//---------------------------------------------------------------------------
//	@function:
//		CMDProviderGeneric::MDId
//
//	@doc:
//		return the mdid of a requested type
//
//---------------------------------------------------------------------------
IMDId *
CMDProviderGeneric::MDId(IMDType::ETypeInfo type_info) const
{
	GPOS_ASSERT(IMDType::EtiGeneric > type_info);

	switch (type_info)
	{
		case IMDType::EtiInt2:
			return m_mdid_int2;

		case IMDType::EtiInt4:
			return m_mdid_int4;

		case IMDType::EtiInt8:
			return m_mdid_int8;

		case IMDType::EtiBool:
			return m_mdid_bool;

		case IMDType::EtiOid:
			return m_mdid_oid;

		default:
			return nullptr;
	}
}

//---------------------------------------------------------------------------
//	@function:
//		CMDProviderGeneric::SysidDefault
//
//	@doc:
//		Get the default system id of the MD provider
//
//---------------------------------------------------------------------------
CSystemId
CMDProviderGeneric::SysidDefault()
{
	return CSystemId(IMDId::EmdidGPDB, GPMD_GPDB_SYSID);
}

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDXLBucket 源码

greenplumn CDXLColStats 源码

greenplumn CDXLRelStats 源码

greenplumn CDXLStatsDerivedColumn 源码

greenplumn CDXLStatsDerivedRelation 源码

greenplumn CMDAggregateGPDB 源码

greenplumn CMDArrayCoerceCastGPDB 源码

greenplumn CMDCastGPDB 源码

greenplumn CMDCheckConstraintGPDB 源码

greenplumn CMDColumn 源码

0  赞