summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/index_catalog_impl.cpp
diff options
context:
space:
mode:
authorNick Zolnierz <nicholas.zolnierz@mongodb.com>2018-03-20 17:56:02 -0400
committerNick Zolnierz <nicholas.zolnierz@mongodb.com>2018-03-20 17:57:31 -0400
commit2682dbfb28324406f6eded1f22f6e342a392ff13 (patch)
tree1a12a708dd45c159ce3a803090a7397e40fc68b7 /src/mongo/db/catalog/index_catalog_impl.cpp
parent152e55c697613b0d99c619e9569fd6e57c303d2f (diff)
downloadmongo-2682dbfb28324406f6eded1f22f6e342a392ff13.tar.gz
Revert "SERVER-30005: remove $isolated/$atomic option"
This reverts commit cd950b113ee0d00e88036b2fe6306866c7ba27f9.
Diffstat (limited to 'src/mongo/db/catalog/index_catalog_impl.cpp')
-rw-r--r--src/mongo/db/catalog/index_catalog_impl.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mongo/db/catalog/index_catalog_impl.cpp b/src/mongo/db/catalog/index_catalog_impl.cpp
index 525ace9c0e5..bb19de5ab76 100644
--- a/src/mongo/db/catalog/index_catalog_impl.cpp
+++ b/src/mongo/db/catalog/index_catalog_impl.cpp
@@ -686,12 +686,15 @@ Status IndexCatalogImpl::_isSpecOk(OperationContext* opCtx, const BSONObj& spec)
new ExpressionContext(opCtx, collator.get()));
// Parsing the partial filter expression is not expected to fail here since the
- // expression would have been successfully parsed upstream during index creation.
+ // expression would have been successfully parsed upstream during index creation. However,
+ // filters that were allowed in partial filter expressions prior to 3.6 may be present in
+ // the index catalog and must also successfully parse (e.g., partial index filters with the
+ // $isolated/$atomic option).
StatusWithMatchExpression statusWithMatcher =
MatchExpressionParser::parse(filterElement.Obj(),
std::move(expCtx),
ExtensionsCallbackNoop(),
- MatchExpressionParser::kBanAllSpecialFeatures);
+ MatchExpressionParser::kIsolated);
if (!statusWithMatcher.isOK()) {
return statusWithMatcher.getStatus();
}