diff options
author | Mihai Andrei <mihai.andrei@10gen.com> | 2020-08-07 08:17:59 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-09-23 21:31:18 +0000 |
commit | 10b0f02da33d62c992671e86ce882459f5a3184c (patch) | |
tree | f355e586a8e65f97ef9e3b8351de0ce040e64fbc /src/mongo/db/matcher/schema/expression_internal_schema_eq.cpp | |
parent | 64746898ab41516760bf21a7ba7f6372fc0ec094 (diff) | |
download | mongo-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.cpp | 9 |
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()); } |