greenplumn CName 源码

2022-08-18 浏览 (591)

greenplumn CName 代码

文件路径:/src/backend/gporca/libgpopt/include/gpopt/metadata/CName.h

/---------------------------------------------------------------------------
/	Greenplum Database
/	Copyright (C) 2009 Greenplum, Inc.
/
/	@filename:
/		CName.h
/
/	@doc:
/		Name abstraction for metadata names to keep optimizer
/		agnostic of encodings etc.
/---------------------------------------------------------------------------
#ifndef GPOPT_CName_H
#define GPOPT_CName_H

#include "gpos/base.h"
#include "gpos/common/DbgPrintMixin.h"
#include "gpos/string/CWStringConst.h"

#define GPOPT_NAME_QUOTE_BEGIN "\""
#define GPOPT_NAME_QUOTE_END "\""

#define GPOPT_NAME_SEPARATOR GPOS_WSZ_LIT(".")

namespace gpopt
{
using namespace gpos;

/---------------------------------------------------------------------------
/	@class:
/		CName
/
/	@doc:
/		Names consist of a null terminated wide character string;
/		No assumptions about format and encoding; only semantics
/		enforced is zero termination of string;
/
/---------------------------------------------------------------------------
class CName : public DbgPrintMixin<CName>
{
private:
	/ actual name
	const CWStringConst *m_str_name;

	/ keep track of copy status
	BOOL m_fDeepCopy;

	/ deep copy function
	void DeepCopy(CMemoryPool *mp, const CWStringConst *str);

public:
	/ ctors
	CName(CMemoryPool *, const CWStringBase *);
	CName(const CWStringConst *, BOOL fOwnsMemory = false);
	CName(const CName &);

	CName(CMemoryPool *mp, const CName &);
	CName(CMemoryPool *mp, const CName &, const CName &);

	/ dtor
	~CName();

	/ accessors
	const CWStringConst *
	Pstr() const
	{
		return m_str_name;
	}

	ULONG
	Length() const
	{
		return m_str_name->Length();
	}

	/ comparison
	BOOL Equals(const CName &) const;

	/ debug print
	IOstream &OsPrint(IOstream &) const;

};	/ class CName
}  / namespace gpopt

#endif	/ !GPOPT_CName_H

/ EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CColumnDescriptor 源码

greenplumn CIndexDescriptor 源码

greenplumn CPartConstraint 源码

greenplumn CTableDescriptor 源码

^