diff options
| author | Militsa Sotirova <militsa.sotirova@mongodb.com> | 2023-05-04 12:56:43 +0000 |
|---|---|---|
| committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-04 13:22:34 +0000 |
| commit | b9e32aafd715da4a7b9f638b5363b3f75f79f403 (patch) | |
| tree | 1ad6c208a79b719583c1e273d2f246210cdbbc02 | |
| parent | ced3d69805716ec47160ae74fb8b0286ff1cc39f (diff) | |
SERVER-66009 Avoid use of mongo process interface if search is in an update pipeliner4.4.22-rc1
| -rw-r--r-- | src/mongo/db/ops/parsed_update.cpp | 3 | ||||
| -rw-r--r-- | src/mongo/db/pipeline/expression_context.h | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/db/ops/parsed_update.cpp b/src/mongo/db/ops/parsed_update.cpp index 31bfa8bbdc8..fd53932a974 100644 --- a/src/mongo/db/ops/parsed_update.cpp +++ b/src/mongo/db/ops/parsed_update.cpp @@ -177,11 +177,12 @@ void ParsedUpdate::parseUpdate() { _driver.setCollator(_expCtx->getCollator()); _driver.setLogOp(true); _driver.setFromOplogApplication(_request->isFromOplogApplication()); - + _expCtx->isParsingPipelineUpdate = true; _driver.parse(_request->getUpdateModification(), _arrayFilters, _request->getUpdateConstants(), _request->isMulti()); + _expCtx->isParsingPipelineUpdate = false; } StatusWith<std::map<StringData, std::unique_ptr<ExpressionWithPlaceholder>>> diff --git a/src/mongo/db/pipeline/expression_context.h b/src/mongo/db/pipeline/expression_context.h index 232df5486a3..78b54283a86 100644 --- a/src/mongo/db/pipeline/expression_context.h +++ b/src/mongo/db/pipeline/expression_context.h @@ -405,6 +405,9 @@ public: // True if this ExpressionContext is used to parse a view definition pipeline. bool isParsingViewDefinition = false; + // True if this ExpressionContext is being used to parse an update pipeline. + bool isParsingPipelineUpdate = false; + // True if this ExpressionContext is used to parse a collection validator expression. bool isParsingCollectionValidator = false; |
