greenplumn CMDArrayCoerceCastGPDB 源码

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

greenplumn CMDArrayCoerceCastGPDB 代码

文件路径:/src/backend/gporca/libnaucrates/include/naucrates/md/CMDArrayCoerceCastGPDB.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2017 VMware, Inc. or its affiliates.
//
//	@filename:
//		CMDArrayCoerceCastGPDB.h
//
//	@doc:
//		Implementation of GPDB-specific array coerce cast functions in the
//		metadata cache
//---------------------------------------------------------------------------


#ifndef GPMD_CMDArrayCoerceCastGPDB_H
#define GPMD_CMDArrayCoerceCastGPDB_H

#include "gpos/base.h"

#include "naucrates/dxl/operators/CDXLScalar.h"
#include "naucrates/md/CMDCastGPDB.h"

namespace gpmd
{
using namespace gpdxl;

class CMDArrayCoerceCastGPDB : public CMDCastGPDB
{
private:
	// DXL for object
	const CWStringDynamic *m_dxl_str;

	// type mod
	INT m_type_modifier;

	// is explicit
	BOOL m_is_explicit;

	// CoercionForm
	EdxlCoercionForm m_dxl_coerce_format;

	// location
	INT m_location;

public:
	CMDArrayCoerceCastGPDB(const CMDArrayCoerceCastGPDB &) = delete;

	// ctor
	CMDArrayCoerceCastGPDB(CMemoryPool *mp, IMDId *mdid, CMDName *mdname,
						   IMDId *mdid_src, IMDId *mdid_dest,
						   BOOL is_binary_coercible, IMDId *mdid_cast_func,
						   EmdCoercepathType path_type, INT type_modifier,
						   BOOL is_explicit, EdxlCoercionForm dxl_coerce_format,
						   INT location);

	// dtor
	~CMDArrayCoerceCastGPDB() override;

	// accessors
	virtual const CWStringDynamic *
	Pstr() const
	{
		return m_dxl_str;
	}

	// return type modifier
	virtual INT TypeModifier() const;

	virtual BOOL IsExplicit() const;

	// return coercion form
	virtual EdxlCoercionForm GetCoercionForm() const;

	// return token location
	virtual INT Location() const;

	// serialize object in DXL format
	void Serialize(gpdxl::CXMLSerializer *xml_serializer) const override;

#ifdef GPOS_DEBUG
	// debug print of the type in the provided stream
	void DebugPrint(IOstream &os) const override;
#endif
};
}  // namespace gpmd

#endif	// !GPMD_CMDArrayCoerceCastGPDB_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CDXLBucket 源码

greenplumn CDXLColStats 源码

greenplumn CDXLRelStats 源码

greenplumn CDXLStatsDerivedColumn 源码

greenplumn CDXLStatsDerivedRelation 源码

greenplumn CGPDBTypeHelper 源码

greenplumn CMDAggregateGPDB 源码

greenplumn CMDCastGPDB 源码

greenplumn CMDCheckConstraintGPDB 源码

greenplumn CMDColumn 源码

0  赞