greenplumn CMetadataAccessorFactory 源码

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

greenplumn CMetadataAccessorFactory 代码

文件路径:/src/backend/gporca/libgpopt/src/minidump/CMetadataAccessorFactory.cpp

//	Greenplum Database
//	Copyright (C) 2016 VMware, Inc. or its affiliates.

#include "gpopt/minidump/CMetadataAccessorFactory.h"

#include "gpos/common/CAutoRef.h"

#include "gpopt/mdcache/CMDCache.h"
#include "naucrates/md/CMDProviderMemory.h"

namespace gpopt
{
CMetadataAccessorFactory::CMetadataAccessorFactory(CMemoryPool *mp,
												   CDXLMinidump *pdxlmd,
												   const CHAR *file_name)
{
	// set up MD providers
	CAutoRef<CMDProviderMemory> apmdp(GPOS_NEW(mp)
										  CMDProviderMemory(mp, file_name));
	const CSystemIdArray *pdrgpsysid = pdxlmd->GetSysidPtrArray();
	CAutoRef<CMDProviderArray> apdrgpmdp(GPOS_NEW(mp) CMDProviderArray(mp));

	// ensure there is at least ONE system id
	apmdp->AddRef();
	apdrgpmdp->Append(apmdp.Value());

	for (ULONG ul = 1; ul < pdrgpsysid->Size(); ul++)
	{
		apmdp->AddRef();
		apdrgpmdp->Append(apmdp.Value());
	}

	m_apmda = GPOS_NEW(mp) CMDAccessor(
		mp, CMDCache::Pcache(), pdxlmd->GetSysidPtrArray(), apdrgpmdp.Value());
}

CMDAccessor *
CMetadataAccessorFactory::Pmda()
{
	return m_apmda.Value();
}
}  // namespace gpopt

相关信息

greenplumn 源码目录

相关文章

greenplumn CDXLMinidump 源码

greenplumn CMiniDumperDXL 源码

greenplumn CMinidumperUtils 源码

greenplumn CSerializableMDAccessor 源码

greenplumn CSerializableOptimizerConfig 源码

greenplumn CSerializablePlan 源码

greenplumn CSerializableQuery 源码

greenplumn CSerializableStackTrace 源码

0  赞