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、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦