greenplumn CPruneColumnsTest 源码
greenplumn CPruneColumnsTest 代码
文件路径:/src/backend/gporca/server/src/unittest/gpopt/minidump/CPruneColumnsTest.cpp
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2016 VMware, Inc. or its affiliates.
//
// @filename:
// CPruneColumnsTest.cpp
//
// @doc:
// Test for optimizing queries where intermediate columns are pruned
//---------------------------------------------------------------------------
#include "unittest/gpopt/minidump/CPruneColumnsTest.h"
#include "gpos/base.h"
#include "gpos/memory/CAutoMemoryPool.h"
#include "gpos/task/CAutoTraceFlag.h"
#include "gpos/test/CUnittest.h"
#include "gpopt/exception.h"
#include "gpopt/minidump/CMinidumperUtils.h"
#include "unittest/gpopt/CTestUtils.h"
using namespace gpopt;
ULONG CPruneColumnsTest::m_ulPruneColumnsTestCounter =
0; // start from first test
// minidump files
const CHAR *rgszPruneColumnsFileNames[] = {
"../data/dxl/minidump/RemoveUnusedProjElementsInGbAgg.mdp",
"../data/dxl/minidump/RemoveUnusedProjElements.mdp",
"../data/dxl/minidump/CPruneColumnsTest/PruneIntermediateUnusedColumns.mdp", // prune all unused columns
"../data/dxl/minidump/CPruneColumnsTest/AggTopOfSingleSetRetFuncs.mdp", // no pruning done
"../data/dxl/minidump/CPruneColumnsTest/AggTopOfSetRetFuncsAndUnusedScalar.mdp", // partial pruning
"../data/dxl/minidump/CPruneColumnsTest/AggTopOfMultipleSetRetFuncs.mdp", // no pruning done
"../data/dxl/minidump/CPruneColumnsTest/AggTopOfMultipleSetRetFuncsAndUnusedScalar.mdp", // partial prune
"../data/dxl/minidump/CPruneColumnsTest/AggTopOfSetRefFuncsOnTopTbl.mdp", // no pruning done
"../data/dxl/minidump/CPruneColumnsTest/AllColsUsed.mdp", // no pruning done
"../data/dxl/minidump/CPruneColumnsTest/UsedSetRetFuncAndUnusedScalarFunc.mdp", // partial pruning
"../data/dxl/minidump/CPruneColumnsTest/UnusedSetRetFuncAndUsedScalarFunc.mdp", // partial pruning ---> BUG
"../data/dxl/minidump/CPruneColumnsTest/MultiLevelSubqueryWithSetRetFuncs.mdp", // expect error in optimizer and planner: "Expected no more than one row to be returned by expression"
"../data/dxl/minidump/CPruneColumnsTest/MultiLevelSubqueryWithSetRetFuncsAndScalarFuncs.mdp", // if pruning subquery is handled then we should prune some columns
};
//---------------------------------------------------------------------------
// @function:
// CPruneColumnsTest::EresUnittest
//
// @doc:
// Unittest for expressions
//
//---------------------------------------------------------------------------
GPOS_RESULT
CPruneColumnsTest::EresUnittest()
{
CUnittest rgut[] = {
GPOS_UNITTEST_FUNC(EresUnittest_RunTests),
};
GPOS_RESULT eres = CUnittest::EresExecute(rgut, GPOS_ARRAY_SIZE(rgut));
// reset metadata cache
CMDCache::Reset();
return eres;
}
//---------------------------------------------------------------------------
// @function:
// CPruneColumnsTest::EresUnittest_RunTests
//
// @doc:
// Run all Minidump-based tests with plan matching
//
//---------------------------------------------------------------------------
GPOS_RESULT
CPruneColumnsTest::EresUnittest_RunTests()
{
return CTestUtils::EresUnittest_RunTests(
rgszPruneColumnsFileNames, &m_ulPruneColumnsTestCounter,
GPOS_ARRAY_SIZE(rgszPruneColumnsFileNames));
}
// EOF
相关信息
相关文章
greenplumn CArrayExpansionTest 源码
greenplumn CCollapseProjectTest 源码
greenplumn CConstTblGetTest 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦