greenplumn IMDProvider 源码

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

greenplumn IMDProvider 代码

文件路径:/src/backend/gporca/libnaucrates/include/naucrates/md/IMDProvider.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2011 Greenplum, Inc.
//
//	@filename:
//		IMDProvider.h
//
//	@doc:
//		Abstract class for retrieving metadata from an external location.
//---------------------------------------------------------------------------



#ifndef GPMD_IMDProvider_H
#define GPMD_IMDProvider_H

#include "gpos/base.h"
#include "gpos/common/CHashMap.h"
#include "gpos/string/CWStringBase.h"
#include "gpos/string/CWStringConst.h"

#include "naucrates/md/IMDFunction.h"
#include "naucrates/md/IMDId.h"
#include "naucrates/md/IMDType.h"

namespace gpmd
{
using namespace gpos;

//---------------------------------------------------------------------------
//	@class:
//		IMDProvider
//
//	@doc:
//		Abstract class for retrieving metadata from an external location.
//
//---------------------------------------------------------------------------
class IMDProvider : public CRefCount
{
protected:
	// return the mdid for the requested type
	static IMDId *GetGPDBTypeMdid(CMemoryPool *mp, CSystemId sysid,
								  IMDType::ETypeInfo type_info);

public:
	~IMDProvider() override = default;

	// returns the DXL string of the requested metadata object
	virtual CWStringBase *GetMDObjDXLStr(CMemoryPool *mp,
										 CMDAccessor *md_accessor,
										 IMDId *mdid) const = 0;

	// return the requested metadata object
	virtual IMDCacheObject *GetMDObj(CMemoryPool *mp, CMDAccessor *md_accessor,
									 IMDId *mdid) const = 0;

	// return the mdid for the specified system id and type
	virtual IMDId *MDId(CMemoryPool *mp, CSystemId sysid,
						IMDType::ETypeInfo type_info) const = 0;
};

// arrays of MD providers
using CMDProviderArray = CDynamicPtrArray<IMDProvider, CleanupRelease>;

}  // namespace gpmd



#endif	// !GPMD_IMDProvider_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDXLBucket 源码

greenplumn CDXLColStats 源码

greenplumn CDXLRelStats 源码

greenplumn CDXLStatsDerivedColumn 源码

greenplumn CDXLStatsDerivedRelation 源码

greenplumn CGPDBTypeHelper 源码

greenplumn CMDAggregateGPDB 源码

greenplumn CMDArrayCoerceCastGPDB 源码

greenplumn CMDCastGPDB 源码

greenplumn CMDCheckConstraintGPDB 源码

0  赞