greenplumn CSearchStrategyTest 源码

2022-08-18 浏览 (311)

greenplumn CSearchStrategyTest 代码

文件路径:/src/backend/gporca/server/include/unittest/gpopt/search/CSearchStrategyTest.h

/---------------------------------------------------------------------------
/	Greenplum Database
/	Copyright (C) 2012 EMC Corp.
/
/	@filename:
/		CSearchStrategyTest.h
/
/	@doc:
/		Test for search strategy
/---------------------------------------------------------------------------
#ifndef GPOPT_CSearchStrategyTest_H
#define GPOPT_CSearchStrategyTest_H

#include "gpos/base.h"

#include "gpopt/operators/CExpression.h"
#include "gpopt/search/CSearchStage.h"

namespace gpopt
{
/---------------------------------------------------------------------------
/	@class:
/		CSearchStrategyTest
/
/	@doc:
/		unittest for search strategy
/
/---------------------------------------------------------------------------
class CSearchStrategyTest
{
private:
	/ type definition for of expression generator
	using Pfpexpr = CExpression *(*) (CMemoryPool *);

	/ type definition for of optimize function
	using PfnOptimize = void (*)(CMemoryPool *, CExpression *,
								 CSearchStageArray *);

	/ generate random search strategy
	static CSearchStageArray *PdrgpssRandom(CMemoryPool *mp);

	/ run optimize function on given expression
	static void Optimize(CMemoryPool *mp, Pfpexpr pfnGenerator,
						 CSearchStageArray *search_stage_array,
						 PfnOptimize pfnOptimize);

	static void BuildMemo(CMemoryPool *mp, CExpression *pexprInput,
						  CSearchStageArray *search_stage_array);

public:
	/ unittests driver
	static GPOS_RESULT EresUnittest();

#ifdef GPOS_DEBUG
	/ test search strategy with recursive optimization
	static GPOS_RESULT EresUnittest_RecursiveOptimize();
#endif	/ GPOS_DEBUG

	/ test search strategy with multi-threaded optimization
	static GPOS_RESULT EresUnittest_MultiThreadedOptimize();

	/ test reading search strategy from XML file
	static GPOS_RESULT EresUnittest_Parsing();

	/ test search strategy that times out
	static GPOS_RESULT EresUnittest_Timeout();

	/ test exception handling when parsing search strategy
	static GPOS_RESULT EresUnittest_ParsingWithException();

};	/ CSearchStrategyTest

}  / namespace gpopt

#endif	/ !GPOPT_CSearchStrategyTest_H


/ EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn COptimizationJobsTest 源码

greenplumn CTreeMapTest 源码

^