greenplumn CSearchStrategyTest 源码
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
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦