greenplumn CMDKey 源码
greenplumn CMDKey 代码
文件路径:/src/backend/gporca/libgpopt/src/mdcache/CMDKey.cpp
//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2011 EMC Corp.
//
//	@filename:
//		CMDKey.cpp
//
//	@doc:
//		Implementation of a key for metadata cache objects
//---------------------------------------------------------------------------
#include "gpopt/mdcache/CMDKey.h"
#include "gpos/io/COstreamString.h"
#include "naucrates/dxl/CDXLUtils.h"
using namespace gpos;
using namespace gpmd;
using namespace gpopt;
//---------------------------------------------------------------------------
//	@function:
//		CMDKey::CMDKey
//
//	@doc:
//		Constructs a md cache key
//
//---------------------------------------------------------------------------
CMDKey::CMDKey(const IMDId *mdid) : m_mdid(mdid)
{
	GPOS_ASSERT(mdid->IsValid());
}
//---------------------------------------------------------------------------
//	@function:
//		CMDKey::Equals
//
//	@doc:
//		Equality function
//
//---------------------------------------------------------------------------
BOOL
CMDKey::Equals(const CMDKey &mdkey) const
{
	return mdkey.MDId()->Equals(m_mdid);
}
//---------------------------------------------------------------------------
//	@function:
//		CMDKey::FEqualMDKey
//
//	@doc:
//		Equality function for using MD keys in a cache
//
//---------------------------------------------------------------------------
BOOL
CMDKey::FEqualMDKey(CMDKey *const &pvLeft, CMDKey *const &pvRight)
{
	if (nullptr == pvLeft && nullptr == pvRight)
	{
		return true;
	}
	if (nullptr == pvLeft || nullptr == pvRight)
	{
		return false;
	}
	GPOS_ASSERT(nullptr != pvLeft && nullptr != pvRight);
	return pvLeft->MDId()->Equals(pvRight->MDId());
}
//---------------------------------------------------------------------------
//	@function:
//		CMDKey::HashValue
//
//	@doc:
//		Hash function
//
//---------------------------------------------------------------------------
ULONG
CMDKey::HashValue() const
{
	return m_mdid->HashValue();
}
//---------------------------------------------------------------------------
//	@function:
//		CMDKey::UlHashMDKey
//
//	@doc:
//		Hash function for using MD keys in a cache
//
//---------------------------------------------------------------------------
ULONG
CMDKey::UlHashMDKey(CMDKey *const &pv)
{
	return pv->MDId()->HashValue();
}
// EOF
相关信息
相关文章
                        
                            0
                        
                        
                             赞
                        
                    
                    
                热门推荐
- 
                        2、 - 优质文章
- 
                        3、 gate.io
- 
                        8、 openharmony
- 
                        9、 golang