summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp
diff options
context:
space:
mode:
authorMatt Boros <matt.boros@mongodb.com>2022-08-29 14:46:10 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-29 16:08:45 +0000
commitfb2209b3a862e819fed0f21eecd15b8fd4fa9a45 (patch)
treec285080910e97cd8dd14d3a8f8feae38de3ee798 /src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp
parent0fbba9495da3c621deddbee47cff3fda00b07bec (diff)
downloadmongo-fb2209b3a862e819fed0f21eecd15b8fd4fa9a45.tar.gz
SERVER-66783 Explain improvement add triggering rules to memo
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.cpp40
1 files changed, 22 insertions, 18 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 d5664d3cc2b..9912c2fb5a2 100644
--- a/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp
+++ b/src/mongo/db/query/optimizer/logical_rewriter_optimizer_test.cpp
@@ -29,6 +29,7 @@
#include "mongo/db/query/optimizer/cascades/ce_heuristic.h"
#include "mongo/db/query/optimizer/cascades/logical_props_derivation.h"
+#include "mongo/db/query/optimizer/cascades/rewriter_rules.h"
#include "mongo/db/query/optimizer/explain.h"
#include "mongo/db/query/optimizer/node.h"
#include "mongo/db/query/optimizer/opt_phase_manager.h"
@@ -138,7 +139,7 @@ TEST(LogicalRewriter, Memo) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Scan [test]\n"
" | BindBlock:\n"
" | [ptest]\n"
@@ -158,7 +159,7 @@ TEST(LogicalRewriter, Memo) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Filter []\n"
" | | EvalFilter []\n"
" | | | Variable [ptest]\n"
@@ -182,7 +183,7 @@ TEST(LogicalRewriter, Memo) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Evaluation []\n"
" | | BindBlock:\n"
" | | [P1]\n"
@@ -1234,7 +1235,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Scan [test1]\n"
" | BindBlock:\n"
" | [ptest1]\n"
@@ -1266,7 +1267,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Sargable [Complete]\n"
" | | | | | | requirementsMap: \n"
" | | | | | | refProjection: ptest1, path: 'PathGet [a] "
@@ -1296,7 +1297,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Scan [test2]\n"
" | BindBlock:\n"
" | [ptest2]\n"
@@ -1328,7 +1329,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Sargable [Complete]\n"
" | | | | | | requirementsMap: \n"
" | | | | | | refProjection: ptest2, path: 'PathGet [a] "
@@ -1364,7 +1365,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Union []\n"
" | | | BindBlock:\n"
" | | | [a]\n"
@@ -1393,7 +1394,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
" | | distribution: \n"
" | | type: UnknownPartitioning\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Root []\n"
" | | | projections: \n"
" | | | a\n"
@@ -1404,10 +1405,7 @@ TEST(LogicalRewriter, UnionPreservesCommonLogicalProps) {
phaseManager.getMemo());
}
-TEST(LogicalRewriter, SargableCE) {
- using namespace properties;
- PrefixId prefixId;
-
+ABT sargableCETestSetup() {
ABT scanNode = make<ScanNode>("ptest", "test");
ABT filterANode = make<FilterNode>(
@@ -1419,9 +1417,15 @@ TEST(LogicalRewriter, SargableCE) {
make<Variable>("ptest")),
std::move(filterANode));
- ABT rootNode = make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"ptest"}},
- std::move(filterBNode));
+ return make<RootNode>(properties::ProjectionRequirement{ProjectionNameVector{"ptest"}},
+ std::move(filterBNode));
+}
+TEST(LogicalRewriter, SargableCE) {
+ using namespace properties;
+
+ PrefixId prefixId;
+ ABT rootNode = sargableCETestSetup();
OptPhaseManager phaseManager({OptPhaseManager::OptPhase::MemoSubstitutionPhase,
OptPhaseManager::OptPhase::MemoExplorationPhase},
prefixId,
@@ -1447,7 +1451,7 @@ TEST(LogicalRewriter, SargableCE) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Scan [test]\n"
" | BindBlock:\n"
" | [ptest]\n"
@@ -1472,7 +1476,7 @@ TEST(LogicalRewriter, SargableCE) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Sargable [Complete]\n"
" | | | | | | requirementsMap: \n"
" | | | | | | refProjection: ptest, path: 'PathGet [a] "
@@ -1506,7 +1510,7 @@ TEST(LogicalRewriter, SargableCE) {
" | | distribution: \n"
" | | type: Centralized\n"
" | logicalNodes: \n"
- " | logicalNodeId: 0\n"
+ " | logicalNodeId: 0, rule: Root\n"
" | Root []\n"
" | | | projections: \n"
" | | | ptest\n"