diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
| commit | 4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch) | |
| tree | 1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/exec/inclusion_projection_executor_test.cpp | |
| parent | aa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff) | |
| parent | 8f0827553e09872941945a093b647a4211a9db7f (diff) | |
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0'
with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/db/exec/inclusion_projection_executor_test.cpp')
| -rw-r--r-- | src/mongo/db/exec/inclusion_projection_executor_test.cpp | 70 |
1 files changed, 5 insertions, 65 deletions
diff --git a/src/mongo/db/exec/inclusion_projection_executor_test.cpp b/src/mongo/db/exec/inclusion_projection_executor_test.cpp index b31899043ca..84ed31a9bb4 100644 --- a/src/mongo/db/exec/inclusion_projection_executor_test.cpp +++ b/src/mongo/db/exec/inclusion_projection_executor_test.cpp @@ -814,20 +814,18 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, "i: {$meta: 'recordId'}, " "j: {$meta: 'indexKey'}, " "k: {$meta: 'sortKey'}, " - "l: {$meta: 'searchScoreDetails'}}, " - "m: {$meta: 'vectorSearchScore'}")); + "l: {$meta: 'searchScoreDetails'}}")); DepsTracker deps; inclusion->addDependencies(&deps); ASSERT_EQ(deps.fields.size(), 2UL); - // We do not add the dependencies for searchScore, searchHighlights, searchScoreDetails, or - // distance because those values are not stored in the collection (or in mongod at all). + // We do not add the dependencies for searchScore, searchHighlights, or searchScoreDetails + // because those values are not stored in the collection (or in mongod at all). ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]); ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]); ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]); - ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]); ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kTextScore]); ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kRandVal]); @@ -849,8 +847,7 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ShouldEvaluateMeta "i: {$meta: 'recordId'}, " "j: {$meta: 'indexKey'}, " "k: {$meta: 'sortKey'}, " - "l: {$meta: 'searchScoreDetails'}, " - "m: {$meta: 'vectorSearchScore'}}")); + "l: {$meta: 'searchScoreDetails'}}")); MutableDocument inputDocBuilder(Document{{"a", 1}}); inputDocBuilder.metadata().setTextScore(0.0); @@ -864,7 +861,6 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ShouldEvaluateMeta inputDocBuilder.metadata().setSortKey(Value{Document{{"bar", 8}}}, true); inputDocBuilder.metadata().setSearchScoreDetails(BSON("scoreDetails" << "foo")); - inputDocBuilder.metadata().setVectorSearchScore(9.0); Document inputDoc = inputDocBuilder.freeze(); auto result = inclusion->applyTransformation(inputDoc); @@ -872,7 +868,7 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ShouldEvaluateMeta ASSERT_DOCUMENT_EQ(result, Document{fromjson("{a: 1, c: 0.0, d: 1.0, e: 2.0, f: 'foo', g: 3.0, " "h: [4, 5], i: 6, j: {foo: 7}, k: [{bar: 8}], " - "l: {scoreDetails: 'foo'}, m: 9.0}")}); + "l: {scoreDetails: 'foo'}}")}); } // @@ -1094,62 +1090,6 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ASSERT_DOCUMENT_EQ(expectedProjection, inclusion->serializeTransformation(boost::none)); } -TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, - ExtractComputedProjectionInProjectShouldNotIncludeId) { - auto inclusion = makeInclusionProjectionWithDefaultPolicies( - BSON("a" << BSON("$sum" << BSON_ARRAY("$myMeta" - << "$_id")))); - - auto r = static_cast<InclusionProjectionExecutor*>(inclusion.get())->getRoot(); - const std::set<StringData> reservedNames{}; - auto [addFields, deleteFlag] = - r->extractComputedProjectionsInProject("myMeta", "meta", reservedNames); - - ASSERT_EQ(addFields.nFields(), 0); - ASSERT_EQ(deleteFlag, false); - - auto expectedProjection = Document(fromjson("{_id: true, a: {$sum: ['$myMeta', '$_id']}}")); - ASSERT_DOCUMENT_EQ(expectedProjection, inclusion->serializeTransformation(boost::none)); -} - -TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, - ExtractComputedProjectionInProjectShouldNotHideDependentSubFields) { - auto inclusion = makeInclusionProjectionWithDefaultPolicies(BSON("a" - << "$myMeta" - << "b" - << "$a.x")); - - auto r = static_cast<InclusionProjectionExecutor*>(inclusion.get())->getRoot(); - const std::set<StringData> reservedNames{}; - auto [addFields, deleteFlag] = - r->extractComputedProjectionsInProject("myMeta", "meta", reservedNames); - - ASSERT_EQ(addFields.nFields(), 0); - ASSERT_EQ(deleteFlag, false); - - auto expectedProjection = Document(fromjson("{_id: true, a: '$myMeta', b: '$a.x'}")); - ASSERT_DOCUMENT_EQ(expectedProjection, inclusion->serializeTransformation(boost::none)); -} - -TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, - ExtractComputedProjectionInProjectShouldNotHideDependentSubFieldsWithDottedSibling) { - auto inclusion = makeInclusionProjectionWithDefaultPolicies(BSON("a" - << "$myMeta" - << "c.b" - << "$a.x")); - - auto r = static_cast<InclusionProjectionExecutor*>(inclusion.get())->getRoot(); - const std::set<StringData> reservedNames{}; - auto [addFields, deleteFlag] = - r->extractComputedProjectionsInProject("myMeta", "meta", reservedNames); - - ASSERT_EQ(addFields.nFields(), 0); - ASSERT_EQ(deleteFlag, false); - - auto expectedProjection = Document(fromjson("{_id: true, a: '$myMeta', c: {b: '$a.x'}}")); - ASSERT_DOCUMENT_EQ(expectedProjection, inclusion->serializeTransformation(boost::none)); -} - TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ApplyProjectionAfterSplit) { auto inclusion = makeInclusionProjectionWithDefaultPolicies( BSON("a" << true << "computedMeta1" |
