diff options
Diffstat (limited to 'src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp')
-rw-r--r-- | src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp | 120 |
1 files changed, 62 insertions, 58 deletions
diff --git a/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp b/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp index 2434e811de1..03980eb5db4 100644 --- a/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp +++ b/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp @@ -74,10 +74,10 @@ TEST(LogicalRewriter, RootNodeMerge) { " Source []\n", rootNode); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT rewritten = std::move(rootNode); phaseManager.optimize(rewritten); @@ -288,10 +288,10 @@ TEST(LogicalRewriter, FilterProjectRewrite) { " Source []\n", rootNode); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -399,10 +399,10 @@ TEST(LogicalRewriter, FilterProjectComplexRewrite) { " Source []\n", rootNode); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -477,10 +477,10 @@ TEST(LogicalRewriter, FilterProjectGroupRewrite) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"c"}}, std::move(filterANode)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -547,10 +547,10 @@ TEST(LogicalRewriter, FilterProjectUnwindRewrite) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"a", "b"}}, std::move(filterBNode)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -618,10 +618,10 @@ TEST(LogicalRewriter, FilterProjectExchangeRewrite) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"a", "b"}}, std::move(filterANode)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -690,10 +690,10 @@ TEST(LogicalRewriter, UnwindCollationRewrite) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"a", "b"}}, std::move(unwindNode)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -802,11 +802,11 @@ TEST(LogicalRewriter, FilterUnionReorderSingleProjection) { " Source []\n", latest); - OptPhaseManager phaseManager( - {OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, - prefixId, - {{{"test1", createScanDef({}, {})}, {"test2", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = + makePhaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, + prefixId, + {{{"test1", createScanDef({}, {})}, {"test2", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); phaseManager.optimize(latest); ASSERT_EXPLAIN_V2( @@ -966,11 +966,11 @@ TEST(LogicalRewriter, MultipleFilterUnionReorder) { " Source []\n", latest); - OptPhaseManager phaseManager( - {OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, - prefixId, - {{{"test1", createScanDef({}, {})}, {"test2", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = + makePhaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, + prefixId, + {{{"test1", createScanDef({}, {})}, {"test2", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); phaseManager.optimize(latest); ASSERT_EXPLAIN_V2( @@ -1070,12 +1070,12 @@ TEST(LogicalRewriter, FilterUnionUnionPushdown) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"ptest"}}, std::move(filter)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test1", createScanDef({}, {})}, - {"test2", createScanDef({}, {})}, - {"test3", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test1", createScanDef({}, {})}, + {"test2", createScanDef({}, {})}, + {"test3", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); ASSERT_EXPLAIN_V2( @@ -1216,10 +1216,11 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) { // Run the reordering rewrite such that the scan produces a hash partition. PrefixId prefixId; - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, - prefixId, - metadata, - DebugInfo::kDefaultForTests); + auto phaseManager = + makePhaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, + prefixId, + metadata, + DebugInfo::kDefaultForTests); ABT optimized = rootNode; phaseManager.optimize(optimized); @@ -1432,10 +1433,11 @@ TEST(LogicalRewriter, SargableCE) { PrefixId prefixId; ABT rootNode = sargableCETestSetup(); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = + makePhaseManager({OptPhase::MemoSubstitutionPhase, OptPhase::MemoExplorationPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); @@ -1474,7 +1476,8 @@ TEST(LogicalRewriter, SargableCE) { " | | projections: \n" " | | ptest\n" " | | indexingAvailability: \n" - " | | [groupId: 0, scanProjection: ptest, scanDefName: test, eqPredsOnly]\n" + " | | [groupId: 0, scanProjection: ptest, scanDefName: test, eqPredsOnly, " + "hasProperInterval]\n" " | | collectionAvailability: \n" " | | test\n" " | | distributionAvailability: \n" @@ -1508,7 +1511,8 @@ TEST(LogicalRewriter, SargableCE) { " | | projections: \n" " | | ptest\n" " | | indexingAvailability: \n" - " | | [groupId: 0, scanProjection: ptest, scanDefName: test, eqPredsOnly]\n" + " | | [groupId: 0, scanProjection: ptest, scanDefName: test, eqPredsOnly, " + "hasProperInterval]\n" " | | collectionAvailability: \n" " | | test\n" " | | distributionAvailability: \n" @@ -1540,10 +1544,10 @@ TEST(LogicalRewriter, RemoveNoopFilter) { ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"ptest"}}, std::move(filterANode)); - OptPhaseManager phaseManager({OptPhase::MemoSubstitutionPhase}, - prefixId, - {{{"test", createScanDef({}, {})}}}, - DebugInfo::kDefaultForTests); + auto phaseManager = makePhaseManager({OptPhase::MemoSubstitutionPhase}, + prefixId, + {{{"test", createScanDef({}, {})}}}, + DebugInfo::kDefaultForTests); ABT latest = std::move(rootNode); phaseManager.optimize(latest); |