greenplumn CMDIdGPDBCtas 源码

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

greenplumn CMDIdGPDBCtas 代码

文件路径:/src/backend/gporca/libnaucrates/src/md/CMDIdGPDBCtas.cpp

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2014 VMware, Inc. or its affiliates.
//
//	@filename:
//		CMDIdGPDBCtas.cpp
//
//	@doc:
//		Implementation of metadata identifiers for GPDB CTAS queries
//---------------------------------------------------------------------------

#include "naucrates/md/CMDIdGPDBCtas.h"

#include "naucrates/dxl/xml/CXMLSerializer.h"

using namespace gpos;
using namespace gpmd;

#define GPMD_GPDB_CTAS_SYSID GPOS_WSZ_LIT("CTAS")

// invalid key
CMDIdGPDBCtas CMDIdGPDBCtas::m_mdid_invalid_key(0);

//---------------------------------------------------------------------------
//	@function:
//		CMDIdGPDBCtas::CMDIdGPDBCtas
//
//	@doc:
//		Ctor
//
//---------------------------------------------------------------------------
CMDIdGPDBCtas::CMDIdGPDBCtas(OID oid)
	: CMDIdGPDB(CSystemId(IMDId::EmdidGPDB, GPMD_GPDB_CTAS_SYSID), oid)
{
	Serialize();
}


//---------------------------------------------------------------------------
//	@function:
//		CMDIdGPDBCtas::CMDIdGPDBCtas
//
//	@doc:
//		Copy constructor
//
//---------------------------------------------------------------------------
CMDIdGPDBCtas::CMDIdGPDBCtas(const CMDIdGPDBCtas &mdid_source)
	: CMDIdGPDB(mdid_source.Sysid(), mdid_source.Oid())
{
	GPOS_ASSERT(mdid_source.IsValid());
	GPOS_ASSERT(IMDId::EmdidGPDBCtas == mdid_source.MdidType());
	Serialize();
}

//---------------------------------------------------------------------------
//	@function:
//		CMDIdGPDBCtas::Equals
//
//	@doc:
//		Checks if the version of the current object is compatible with another version
//		of the same object
//
//---------------------------------------------------------------------------
BOOL
CMDIdGPDBCtas::Equals(const IMDId *mdid) const
{
	if (nullptr == mdid || EmdidGPDBCtas != mdid->MdidType())
	{
		return false;
	}

	const CMDIdGPDBCtas *mdidGPDBCTAS =
		CMDIdGPDBCtas::CastMdid(const_cast<IMDId *>(mdid));

	return m_oid == mdidGPDBCTAS->Oid();
}

//---------------------------------------------------------------------------
//	@function:
//		CMDIdGPDBCtas::IsValid
//
//	@doc:
//		Is the mdid valid
//
//---------------------------------------------------------------------------
BOOL
CMDIdGPDBCtas::IsValid() const
{
	return !Equals(&CMDIdGPDBCtas::m_mdid_invalid_key);
}

//---------------------------------------------------------------------------
//	@function:
//		CMDIdGPDBCtas::OsPrint
//
//	@doc:
//		Debug print of the id in the provided stream
//
//---------------------------------------------------------------------------
IOstream &
CMDIdGPDBCtas::OsPrint(IOstream &os) const
{
	os << "(" << Oid() << "," << VersionMajor() << "." << VersionMinor() << ")";
	return os;
}

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDXLBucket 源码

greenplumn CDXLColStats 源码

greenplumn CDXLRelStats 源码

greenplumn CDXLStatsDerivedColumn 源码

greenplumn CDXLStatsDerivedRelation 源码

greenplumn CMDAggregateGPDB 源码

greenplumn CMDArrayCoerceCastGPDB 源码

greenplumn CMDCastGPDB 源码

greenplumn CMDCheckConstraintGPDB 源码

greenplumn CMDColumn 源码

0  赞