summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_match_test.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/pipeline/document_source_match_test.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (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/pipeline/document_source_match_test.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_match_test.cpp71
1 files changed, 6 insertions, 65 deletions
diff --git a/src/mongo/db/pipeline/document_source_match_test.cpp b/src/mongo/db/pipeline/document_source_match_test.cpp
index 04e5f895469..f5b53a393e8 100644
--- a/src/mongo/db/pipeline/document_source_match_test.cpp
+++ b/src/mongo/db/pipeline/document_source_match_test.cpp
@@ -54,6 +54,7 @@ using std::string;
// This provides access to getExpCtx(), but we'll use a different name for this test suite.
using DocumentSourceMatchTest = AggregationContextFixture;
+constexpr auto kExplain = ExplainOptions::Verbosity::kQueryPlanner;
TEST_F(DocumentSourceMatchTest, RedactSafePortion) {
auto expCtx = getExpCtx();
@@ -603,6 +604,8 @@ DEATH_TEST_REGEX_F(DocumentSourceMatchTest,
const auto matchSpec = BSON("a" << BSON("$elemMatch" << BSON("a.b" << 1)));
const auto matchExpression =
unittest::assertGet(MatchExpressionParser::parse(matchSpec, expCtx));
+ BSONObjBuilder out;
+ matchExpression->serialize(&out);
DocumentSourceMatch::descendMatchOnPath(matchExpression.get(), "a", expCtx);
}
@@ -695,71 +698,9 @@ TEST_F(DocumentSourceMatchTest, ShouldShowOptimizationsInExplainOutputWhenOptimi
auto expectedMatch = fromjson("{$match: {a:{$eq: 1}}}");
- ASSERT_VALUE_EQ(Value((static_cast<DocumentSourceMatch*>(optimizedMatch.get()))
- ->serialize(SerializationOptions{
- boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)})),
- Value(expectedMatch));
-}
-
-TEST_F(DocumentSourceMatchTest, RedactionWithAnd) {
- auto spec = fromjson(R"({
- $match: {
- $and: [
- {
- "a.c": "abc"
- },
- {
- "b": {
- $gt: 10
- }
- }
- ]
- }})");
- auto docSource = DocumentSourceMatch::createFromBson(spec.firstElement(), getExpCtx());
- ASSERT_BSONOBJ_EQ_AUTO( // NOLINT
- R"({
- "$match": {
- "$and": [
- {
- "HASH<a>.HASH<c>": {
- "$eq": "?string"
- }
- },
- {
- "HASH<b>": {
- "$gt": "?number"
- }
- }
- ]
- }
- })",
- redact(*docSource));
-}
-
-TEST_F(DocumentSourceMatchTest, RedactionWithExprPipeline) {
- auto spec = fromjson(R"({
- $match: {
- $expr: {
- $eq: [
- '$foo',
- '$bar'
- ]
- }
- }
- })");
- auto docSource = DocumentSourceMatch::createFromBson(spec.firstElement(), getExpCtx());
- ASSERT_BSONOBJ_EQ_AUTO( // NOLINT
- R"({
- "$match": {
- "$expr": {
- "$eq": [
- "$HASH<foo>",
- "$HASH<bar>"
- ]
- }
- }
- })",
- redact(*docSource));
+ ASSERT_VALUE_EQ(
+ Value((static_cast<DocumentSourceMatch*>(optimizedMatch.get()))->serialize(kExplain)),
+ Value(expectedMatch));
}
} // namespace