greenplumn CMDProviderMemory 源码
greenplumn CMDProviderMemory 代码
文件路径:/src/backend/gporca/libnaucrates/include/naucrates/md/CMDProviderMemory.h
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2014 VMware, Inc. or its affiliates.
//
// @filename:
// CMDProviderMemory.h
//
// @doc:
// Memory-based provider of metadata objects.
//---------------------------------------------------------------------------
#ifndef GPMD_CMDProviderMemory_H
#define GPMD_CMDProviderMemory_H
#include "gpos/base.h"
#include "gpos/string/CWStringDynamic.h"
#include "naucrates/md/IMDCacheObject.h"
#include "naucrates/md/IMDId.h"
#include "naucrates/md/IMDProvider.h"
namespace gpmd
{
using namespace gpos;
using namespace gpnaucrates;
//---------------------------------------------------------------------------
// @class:
// CMDProviderMemory
//
// @doc:
// Memory-based provider of metadata objects.
//
//---------------------------------------------------------------------------
class CMDProviderMemory : public IMDProvider
{
protected:
// hash map of serialized MD objects indexed by their MD id
using MDIdToSerializedMDIdMap =
CHashMap<IMDId, CWStringDynamic, IMDId::MDIdHash, IMDId::MDIdCompare,
CleanupRelease, CleanupDelete>;
// metadata objects indexed by their metadata id
MDIdToSerializedMDIdMap *m_mdmap;
// load MD objects in the hash map
void LoadMetadataObjectsFromArray(CMemoryPool *mp,
IMDCacheObjectArray *mdcache_obj_array);
// private copy ctor
CMDProviderMemory(const CMDProviderMemory &);
public:
// ctor
CMDProviderMemory(CMemoryPool *mp, IMDCacheObjectArray *mdcache_obj_array);
// ctor
CMDProviderMemory(CMemoryPool *mp, const CHAR *file_name);
//dtor
~CMDProviderMemory() override;
// returns the DXL string of the requested metadata object
CWStringBase *GetMDObjDXLStr(CMemoryPool *mp, CMDAccessor *md_accessor,
IMDId *mdid) const override;
// returns the requested metadata object
IMDCacheObject *GetMDObj(CMemoryPool *mp, CMDAccessor *md_accessor,
IMDId *mdid) const override;
// return the mdid for the specified system id and type
IMDId *MDId(CMemoryPool *mp, CSystemId sysid,
IMDType::ETypeInfo type_info) const override;
};
} // namespace gpmd
#endif // !GPMD_CMDProviderMemory_H
// EOF
相关信息
相关文章
greenplumn CDXLStatsDerivedColumn 源码
greenplumn CDXLStatsDerivedRelation 源码
greenplumn CMDAggregateGPDB 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦