greenplumn CDXLMinidump 源码

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

greenplumn CDXLMinidump 代码

文件路径:/src/backend/gporca/libgpopt/include/gpopt/minidump/CDXLMinidump.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2012 EMC Corp.
//
//	@filename:
//		CDXLMinidump.h
//
//	@doc:
//		DXL-based minidump structure
//---------------------------------------------------------------------------
#ifndef GPOPT_CDXLMinidump_H
#define GPOPT_CDXLMinidump_H

#include "gpos/base.h"

#include "naucrates/dxl/CDXLUtils.h"

// fwd decl
namespace gpos
{
class CBitSet;
}

namespace gpdxl
{
class CDXLNode;
}

using namespace gpos;
using namespace gpdxl;

namespace gpopt
{
//---------------------------------------------------------------------------
//	@class:
//		CDXLMinidump
//
//	@doc:
//		DXL-based minidump
//
//---------------------------------------------------------------------------
class CDXLMinidump
{
private:
	// traceflags
	CBitSet *m_pbs;

	// optimizer configuration
	COptimizerConfig *m_optimizer_config;

	// DXL query tree
	CDXLNode *m_query_dxl_root;

	// Array of DXL nodes that represent the query output
	CDXLNodeArray *m_query_output;

	// Array of DXL nodes that represent the CTE producers
	CDXLNodeArray *m_cte_producers;

	// DXL plan
	CDXLNode *m_plan_dxl_root;

	// metadata objects
	IMDCacheObjectArray *m_mdid_cached_obj_array;

	// source system ids
	CSystemIdArray *m_system_id_array;

	// plan Id
	ULLONG m_plan_id;

	// plan space size
	ULLONG m_plan_space_size;

public:
	CDXLMinidump(const CDXLMinidump &) = delete;

	// ctor
	CDXLMinidump(CBitSet *pbs, COptimizerConfig *optimizer_config,
				 CDXLNode *query, CDXLNodeArray *query_output_dxlnode_array,
				 CDXLNodeArray *cte_producers, CDXLNode *pdxlnPlan,
				 IMDCacheObjectArray *mdcache_obj_array,
				 CSystemIdArray *pdrgpsysid, ULLONG plan_id,
				 ULLONG plan_space_size);

	// dtor
	~CDXLMinidump();

	// traceflags
	const CBitSet *Pbs() const;

	// optimizer configuration
	COptimizerConfig *
	GetOptimizerConfig() const
	{
		return m_optimizer_config;
	}

	// query object
	const CDXLNode *GetQueryDXLRoot() const;

	// query output columns
	const CDXLNodeArray *PdrgpdxlnQueryOutput() const;

	// CTE list
	const CDXLNodeArray *GetCTEProducerDXLArray() const;

	// plan
	const CDXLNode *PdxlnPlan() const;

	// metadata objects
	const IMDCacheObjectArray *GetMdIdCachedObjArray() const;

	// source system ids
	const CSystemIdArray *GetSysidPtrArray() const;

	// return plan id
	ULLONG GetPlanId() const;

	// return plan space size
	ULLONG GetPlanSpaceSize() const;

};	// class CDXLMinidump
}  // namespace gpopt

#endif	// !GPOPT_CDXLMinidump_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CMetadataAccessorFactory 源码

greenplumn CMiniDumperDXL 源码

greenplumn CMinidumperUtils 源码

greenplumn CSerializableMDAccessor 源码

greenplumn CSerializableOptimizerConfig 源码

greenplumn CSerializablePlan 源码

greenplumn CSerializableQuery 源码

greenplumn CSerializableStackTrace 源码

0  赞