summaryrefslogtreecommitdiff
path: root/src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp
diff options
context:
space:
mode:
authorMihai Andrei <mihai.andrei@10gen.com>2020-08-07 08:17:59 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-09-23 21:31:18 +0000
commit10b0f02da33d62c992671e86ce882459f5a3184c (patch)
treef355e586a8e65f97ef9e3b8351de0ce040e64fbc /src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp
parent64746898ab41516760bf21a7ba7f6372fc0ec094 (diff)
downloadmongo-10b0f02da33d62c992671e86ce882459f5a3184c.tar.gz
SERVER-49444 Implement validation error generation for jsonSchema logical keywords
Diffstat (limited to 'src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp')
-rw-r--r--src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp b/src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp
index b3a0554982c..263b23cc4e9 100644
--- a/src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp
+++ b/src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp
@@ -39,11 +39,13 @@ namespace mongo {
constexpr StringData InternalSchemaEqMatchExpression::kName;
-InternalSchemaEqMatchExpression::InternalSchemaEqMatchExpression(StringData path, BSONElement rhs)
+InternalSchemaEqMatchExpression::InternalSchemaEqMatchExpression(
+ StringData path, BSONElement rhs, clonable_ptr<ErrorAnnotation> annotation)
: LeafMatchExpression(MatchType::INTERNAL_SCHEMA_EQ,
path,
ElementPath::LeafArrayBehavior::kNoTraversal,
- ElementPath::NonLeafArrayBehavior::kTraverse),
+ ElementPath::NonLeafArrayBehavior::kTraverse,
+ std::move(annotation)),
_rhsElem(rhs) {
invariant(_rhsElem);
}
@@ -83,7 +85,8 @@ bool InternalSchemaEqMatchExpression::equivalent(const MatchExpression* other) c
}
std::unique_ptr<MatchExpression> InternalSchemaEqMatchExpression::shallowClone() const {
- auto clone = std::make_unique<InternalSchemaEqMatchExpression>(path(), _rhsElem);
+ auto clone =
+ std::make_unique<InternalSchemaEqMatchExpression>(path(), _rhsElem, _errorAnnotation);
if (getTag()) {
clone->setTag(getTag()->clone());
}