diff options
Diffstat (limited to 'src/mongo/db/query/optimizer/optimizer_test.cpp')
-rw-r--r-- | src/mongo/db/query/optimizer/optimizer_test.cpp | 20 |
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 |