diff options
author | Geert Bosch <geert.bosch@mongodb.com> | 2019-10-22 16:51:40 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-10-22 16:51:40 +0000 |
commit | 48706d5d2779e16e4f4183bc0fd6343510cb17e0 (patch) | |
tree | ff6b794cf384287fe42c22825d51b68621cd58c8 | |
parent | f21fbad4a68fb9447a26c355a006e387b9eccd7b (diff) | |
download | mongo-48706d5d2779e16e4f4183bc0fd6343510cb17e0.tar.gz |
SERVER-44098 Pass only number of keys in shouldMarkIndexAsMultiKey
-rw-r--r-- | src/mongo/db/catalog/validate_adaptor.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/index/index_access_method.cpp | 10 | ||||
-rw-r--r-- | src/mongo/db/index/index_access_method.h | 4 | ||||
-rw-r--r-- | src/mongo/db/index/wildcard_access_method.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/index/wildcard_access_method.h | 2 |
5 files changed, 10 insertions, 10 deletions
diff --git a/src/mongo/db/catalog/validate_adaptor.cpp b/src/mongo/db/catalog/validate_adaptor.cpp index 1bee0a64c0a..61e592abc25 100644 --- a/src/mongo/db/catalog/validate_adaptor.cpp +++ b/src/mongo/db/catalog/validate_adaptor.cpp @@ -105,7 +105,7 @@ Status ValidateAdaptor::validateRecord(OperationContext* opCtx, if (!descriptor->isMultikey() && iam->shouldMarkIndexAsMultikey( - {documentKeySet.begin(), documentKeySet.end()}, + documentKeySet.size(), {multikeyMetadataKeys.begin(), multikeyMetadataKeys.end()}, multikeyPaths)) { std::string msg = str::stream() diff --git a/src/mongo/db/index/index_access_method.cpp b/src/mongo/db/index/index_access_method.cpp index 05a93d4ebfe..321c682a5ec 100644 --- a/src/mongo/db/index/index_access_method.cpp +++ b/src/mongo/db/index/index_access_method.cpp @@ -179,7 +179,7 @@ Status AbstractIndexAccessMethod::insertKeys(OperationContext* opCtx, result->numInserted += keys.size() + multikeyMetadataKeys.size(); } - if (shouldMarkIndexAsMultikey(keys, multikeyMetadataKeys, multikeyPaths)) { + if (shouldMarkIndexAsMultikey(keys.size(), multikeyMetadataKeys, multikeyPaths)) { _btreeState->setMultikey(opCtx, multikeyPaths); } return Status::OK(); @@ -407,7 +407,7 @@ Status AbstractIndexAccessMethod::update(OperationContext* opCtx, } if (shouldMarkIndexAsMultikey( - {ticket.newKeys.begin(), ticket.newKeys.end()}, + ticket.newKeys.size(), {ticket.newMultikeyMetadataKeys.begin(), ticket.newMultikeyMetadataKeys.end()}, ticket.newMultikeyPaths)) { _btreeState->setMultikey(opCtx, ticket.newMultikeyPaths); @@ -514,7 +514,7 @@ Status AbstractIndexAccessMethod::BulkBuilderImpl::insert(OperationContext* opCt _isMultiKey = _isMultiKey || _real->shouldMarkIndexAsMultikey( - {keys.begin(), keys.end()}, + keys.size(), {_multikeyMetadataKeys.begin(), _multikeyMetadataKeys.end()}, multikeyPaths); @@ -704,10 +704,10 @@ void AbstractIndexAccessMethod::getKeys(const BSONObj& obj, } bool AbstractIndexAccessMethod::shouldMarkIndexAsMultikey( - const vector<KeyString::Value>& keys, + size_t numberOfKeys, const vector<KeyString::Value>& multikeyMetadataKeys, const MultikeyPaths& multikeyPaths) const { - return (keys.size() > 1 || isMultikeyFromPaths(multikeyPaths)); + return numberOfKeys > 1 || isMultikeyFromPaths(multikeyPaths); } SortedDataInterface* AbstractIndexAccessMethod::getSortedDataInterface() const { diff --git a/src/mongo/db/index/index_access_method.h b/src/mongo/db/index/index_access_method.h index b769dfe5a08..0961321b269 100644 --- a/src/mongo/db/index/index_access_method.h +++ b/src/mongo/db/index/index_access_method.h @@ -304,7 +304,7 @@ public: * document, return 'true' if the index should be marked as multikey and 'false' otherwise. */ virtual bool shouldMarkIndexAsMultikey( - const std::vector<KeyString::Value>& keys, + size_t numberOfKeys, const std::vector<KeyString::Value>& multikeyMetadataKeys, const MultikeyPaths& multikeyPaths) const = 0; @@ -504,7 +504,7 @@ public: MultikeyPaths* multikeyPaths, boost::optional<RecordId> id = boost::none) const final; - bool shouldMarkIndexAsMultikey(const std::vector<KeyString::Value>& keys, + bool shouldMarkIndexAsMultikey(size_t numberOfKeys, const std::vector<KeyString::Value>& multikeyMetadataKeys, const MultikeyPaths& multikeyPaths) const override; diff --git a/src/mongo/db/index/wildcard_access_method.cpp b/src/mongo/db/index/wildcard_access_method.cpp index 0f483710727..f77fe1d84a4 100644 --- a/src/mongo/db/index/wildcard_access_method.cpp +++ b/src/mongo/db/index/wildcard_access_method.cpp @@ -47,7 +47,7 @@ WildcardAccessMethod::WildcardAccessMethod(IndexCatalogEntry* wildcardState, getSortedDataInterface()->getOrdering()) {} bool WildcardAccessMethod::shouldMarkIndexAsMultikey( - const std::vector<KeyString::Value>& keys, + size_t numberOfKeys, const std::vector<KeyString::Value>& multikeyMetadataKeys, const MultikeyPaths& multikeyPaths) const { return !multikeyMetadataKeys.empty(); diff --git a/src/mongo/db/index/wildcard_access_method.h b/src/mongo/db/index/wildcard_access_method.h index 3390261a0f8..69ca0ad80dd 100644 --- a/src/mongo/db/index/wildcard_access_method.h +++ b/src/mongo/db/index/wildcard_access_method.h @@ -66,7 +66,7 @@ public: * more multikey metadata keys have been generated; that is, if the 'multikeyMetadataKeys' * vector is non-empty. */ - bool shouldMarkIndexAsMultikey(const std::vector<KeyString::Value>& keys, + bool shouldMarkIndexAsMultikey(size_t numberOfKeys, const std::vector<KeyString::Value>& multikeyMetadataKeys, const MultikeyPaths& multikeyPaths) const final; |