greenplumn CMDIndexInfo 源码
greenplumn CMDIndexInfo 代码
文件路径:/src/backend/gporca/libnaucrates/src/md/CMDIndexInfo.cpp
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2017 VMware, Inc. or its affiliates.
//
// @filename:
// CMDIndexInfo.cpp
//
// @doc:
// Implementation of the class for representing indexinfo
//---------------------------------------------------------------------------
#include "naucrates/md/CMDIndexInfo.h"
#include "naucrates/dxl/xml/CXMLSerializer.h"
using namespace gpdxl;
using namespace gpmd;
// ctor
CMDIndexInfo::CMDIndexInfo(IMDId *mdid, BOOL is_partial)
: m_mdid(mdid), m_is_partial(is_partial)
{
GPOS_ASSERT(mdid->IsValid());
}
// dtor
CMDIndexInfo::~CMDIndexInfo()
{
m_mdid->Release();
}
// returns the metadata id of this index
IMDId *
CMDIndexInfo::MDId() const
{
return m_mdid;
}
// is the index partial
BOOL
CMDIndexInfo::IsPartial() const
{
return m_is_partial;
}
// serialize indexinfo in DXL format
void
CMDIndexInfo::Serialize(gpdxl::CXMLSerializer *xml_serializer) const
{
xml_serializer->OpenElement(
CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix),
CDXLTokens::GetDXLTokenStr(EdxltokenIndexInfo));
m_mdid->Serialize(xml_serializer,
CDXLTokens::GetDXLTokenStr(EdxltokenMdid));
xml_serializer->AddAttribute(
CDXLTokens::GetDXLTokenStr(EdxltokenIndexPartial), m_is_partial);
xml_serializer->CloseElement(
CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix),
CDXLTokens::GetDXLTokenStr(EdxltokenIndexInfo));
}
#ifdef GPOS_DEBUG
// prints a indexinfo to the provided output
void
CMDIndexInfo::DebugPrint(IOstream &os) const
{
os << "Index id: ";
MDId()->OsPrint(os);
os << std::endl;
os << "Is partial index: " << m_is_partial << std::endl;
}
#endif // GPOS_DEBUG
相关信息
相关文章
greenplumn CDXLStatsDerivedColumn 源码
greenplumn CDXLStatsDerivedRelation 源码
greenplumn CMDAggregateGPDB 源码
greenplumn CMDArrayCoerceCastGPDB 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦