summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/optimizer/optimizer_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/optimizer/optimizer_test.cpp')
-rw-r--r--src/mongo/db/query/optimizer/optimizer_test.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/mongo/db/query/optimizer/optimizer_test.cpp b/src/mongo/db/query/optimizer/optimizer_test.cpp
index 86966e05a7e..f1cffe77303 100644
--- a/src/mongo/db/query/optimizer/optimizer_test.cpp
+++ b/src/mongo/db/query/optimizer/optimizer_test.cpp
@@ -27,6 +27,7 @@
* it in the license file.
*/
+#include "mongo/db/query/optimizer/memo.h"
#include "mongo/db/query/optimizer/node.h"
#include "mongo/unittest/unittest.h"
@@ -35,15 +36,20 @@ namespace {
TEST(Optimizer, Basic) {
Context ctx;
+ MemoGenerator gen;
- NodePtr ptrScan = ScanNode::create(ctx, "test");
- Node::ChildVector v;
- v.push_back(std::move(ptrScan));
- NodePtr ptrJoin = MultiJoinNode::create(ctx, {}, {}, std::move(v));
- ASSERT_EQ("NodeId: 1\nMultiJoin\nNodeId: 0\nScan\n", ptrJoin->generateMemo());
+ PolymorphicNode scanNode = make<ScanNode>(ctx, "test");
+ ASSERT_EQ("NodeId: 0\nScan\n", gen.generateMemo(scanNode));
- NodePtr cloned = ptrJoin->clone(ctx);
- ASSERT_EQ("NodeId: 3\nMultiJoin\nNodeId: 2\nScan\n", cloned->generateMemo());
+ PolymorphicNode joinNode = make<MultiJoinNode>(ctx,
+ MultiJoinNode::FilterSet{},
+ MultiJoinNode::ProjectionMap{},
+ makeSeq(std::move(scanNode)));
+ ASSERT_EQ("NodeId: 1\nMultiJoin\nNodeId: 0\nScan\n", gen.generateMemo(joinNode));
+
+
+ PolymorphicNode cloned = joinNode;
+ ASSERT_EQ("NodeId: 1\nMultiJoin\nNodeId: 0\nScan\n", gen.generateMemo(cloned));
}
} // namespace