summaryrefslogtreecommitdiff
path: root/src/mongo/db/index
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index')
-rw-r--r--src/mongo/db/index/2d_access_method.cpp2
-rw-r--r--src/mongo/db/index/2d_access_method.h2
-rw-r--r--src/mongo/db/index/btree_access_method.cpp2
-rw-r--r--src/mongo/db/index/btree_access_method.h2
-rw-r--r--src/mongo/db/index/fts_access_method.cpp2
-rw-r--r--src/mongo/db/index/fts_access_method.h2
-rw-r--r--src/mongo/db/index/hash_access_method.cpp2
-rw-r--r--src/mongo/db/index/hash_access_method.h2
-rw-r--r--src/mongo/db/index/index_access_method.cpp221
-rw-r--r--src/mongo/db/index/index_access_method.h10
-rw-r--r--src/mongo/db/index/s2_access_method.cpp2
-rw-r--r--src/mongo/db/index/s2_access_method.h2
-rw-r--r--src/mongo/db/index/s2_bucket_access_method.cpp2
-rw-r--r--src/mongo/db/index/s2_bucket_access_method.h2
-rw-r--r--src/mongo/db/index/wildcard_access_method.cpp2
-rw-r--r--src/mongo/db/index/wildcard_access_method.h2
16 files changed, 130 insertions, 129 deletions
diff --git a/src/mongo/db/index/2d_access_method.cpp b/src/mongo/db/index/2d_access_method.cpp
index 75dd52ad3de..d81a9f6ea30 100644
--- a/src/mongo/db/index/2d_access_method.cpp
+++ b/src/mongo/db/index/2d_access_method.cpp
@@ -43,7 +43,7 @@ namespace mongo {
TwoDAccessMethod::TwoDAccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)) {
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)) {
const IndexDescriptor* descriptor = btreeState->descriptor();
ExpressionParams::parseTwoDParams(descriptor->infoObj(), &_params);
diff --git a/src/mongo/db/index/2d_access_method.h b/src/mongo/db/index/2d_access_method.h
index 7e4fc8ec003..e9621fcc7a2 100644
--- a/src/mongo/db/index/2d_access_method.h
+++ b/src/mongo/db/index/2d_access_method.h
@@ -40,7 +40,7 @@ class IndexCatalogEntry;
class IndexDescriptor;
struct TwoDIndexingParams;
-class TwoDAccessMethod : public AbstractIndexAccessMethod {
+class TwoDAccessMethod : public SortedDataIndexAccessMethod {
public:
TwoDAccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/btree_access_method.cpp b/src/mongo/db/index/btree_access_method.cpp
index df3500ceb8f..149596739d8 100644
--- a/src/mongo/db/index/btree_access_method.cpp
+++ b/src/mongo/db/index/btree_access_method.cpp
@@ -45,7 +45,7 @@ using std::vector;
// Standard Btree implementation below.
BtreeAccessMethod::BtreeAccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)) {
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)) {
// The key generation wants these values.
vector<const char*> fieldNames;
vector<BSONElement> fixed;
diff --git a/src/mongo/db/index/btree_access_method.h b/src/mongo/db/index/btree_access_method.h
index 0df1032591c..8f0e6304d20 100644
--- a/src/mongo/db/index/btree_access_method.h
+++ b/src/mongo/db/index/btree_access_method.h
@@ -43,7 +43,7 @@ class IndexDescriptor;
* The IndexAccessMethod for a Btree index.
* Any index created with {field: 1} or {field: -1} uses this.
*/
-class BtreeAccessMethod : public AbstractIndexAccessMethod {
+class BtreeAccessMethod : public SortedDataIndexAccessMethod {
public:
BtreeAccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/fts_access_method.cpp b/src/mongo/db/index/fts_access_method.cpp
index 7f688fd2854..4fbda54dae9 100644
--- a/src/mongo/db/index/fts_access_method.cpp
+++ b/src/mongo/db/index/fts_access_method.cpp
@@ -36,7 +36,7 @@ namespace mongo {
FTSAccessMethod::FTSAccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)),
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)),
_ftsSpec(btreeState->descriptor()->infoObj()) {}
void FTSAccessMethod::doGetKeys(OperationContext* opCtx,
diff --git a/src/mongo/db/index/fts_access_method.h b/src/mongo/db/index/fts_access_method.h
index 35b3a8937f4..a1343553916 100644
--- a/src/mongo/db/index/fts_access_method.h
+++ b/src/mongo/db/index/fts_access_method.h
@@ -37,7 +37,7 @@
namespace mongo {
-class FTSAccessMethod : public AbstractIndexAccessMethod {
+class FTSAccessMethod : public SortedDataIndexAccessMethod {
public:
FTSAccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/hash_access_method.cpp b/src/mongo/db/index/hash_access_method.cpp
index 681fcebb18f..ec7b05b3665 100644
--- a/src/mongo/db/index/hash_access_method.cpp
+++ b/src/mongo/db/index/hash_access_method.cpp
@@ -38,7 +38,7 @@ namespace mongo {
HashAccessMethod::HashAccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)) {
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)) {
const IndexDescriptor* descriptor = btreeState->descriptor();
uassert(16764,
diff --git a/src/mongo/db/index/hash_access_method.h b/src/mongo/db/index/hash_access_method.h
index 2384f180537..851c841dbe2 100644
--- a/src/mongo/db/index/hash_access_method.h
+++ b/src/mongo/db/index/hash_access_method.h
@@ -44,7 +44,7 @@ class CollatorInterface;
/**
* This is the access method for "hashed" indices.
*/
-class HashAccessMethod : public AbstractIndexAccessMethod {
+class HashAccessMethod : public SortedDataIndexAccessMethod {
public:
HashAccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/index_access_method.cpp b/src/mongo/db/index/index_access_method.cpp
index a9ac15e953a..b75d6711ae9 100644
--- a/src/mongo/db/index/index_access_method.cpp
+++ b/src/mongo/db/index/index_access_method.cpp
@@ -110,8 +110,8 @@ struct BtreeExternalSortComparison {
}
};
-AbstractIndexAccessMethod::AbstractIndexAccessMethod(const IndexCatalogEntry* btreeState,
- std::unique_ptr<SortedDataInterface> btree)
+SortedDataIndexAccessMethod::SortedDataIndexAccessMethod(const IndexCatalogEntry* btreeState,
+ std::unique_ptr<SortedDataInterface> btree)
: _indexCatalogEntry(btreeState),
_descriptor(btreeState->descriptor()),
_newInterface(std::move(btree)) {
@@ -119,14 +119,14 @@ AbstractIndexAccessMethod::AbstractIndexAccessMethod(const IndexCatalogEntry* bt
}
// Find the keys for obj, put them in the tree pointing to loc.
-Status AbstractIndexAccessMethod::insert(OperationContext* opCtx,
- SharedBufferFragmentBuilder& pooledBufferBuilder,
- const CollectionPtr& coll,
- const BSONObj& obj,
- const RecordId& loc,
- const InsertDeleteOptions& options,
- KeyHandlerFn&& onDuplicateKey,
- int64_t* numInserted) {
+Status SortedDataIndexAccessMethod::insert(OperationContext* opCtx,
+ SharedBufferFragmentBuilder& pooledBufferBuilder,
+ const CollectionPtr& coll,
+ const BSONObj& obj,
+ const RecordId& loc,
+ const InsertDeleteOptions& options,
+ KeyHandlerFn&& onDuplicateKey,
+ int64_t* numInserted) {
invariant(options.fromIndexBuilder || !_indexCatalogEntry->isHybridBuilding());
auto& executionCtx = StorageExecutionContext::get(opCtx);
@@ -157,7 +157,7 @@ Status AbstractIndexAccessMethod::insert(OperationContext* opCtx,
numInserted);
}
-Status AbstractIndexAccessMethod::insertKeysAndUpdateMultikeyPaths(
+Status SortedDataIndexAccessMethod::insertKeysAndUpdateMultikeyPaths(
OperationContext* opCtx,
const CollectionPtr& coll,
const KeyStringSet& keys,
@@ -185,13 +185,13 @@ Status AbstractIndexAccessMethod::insertKeysAndUpdateMultikeyPaths(
return Status::OK();
}
-Status AbstractIndexAccessMethod::insertKeys(OperationContext* opCtx,
- const CollectionPtr& coll,
- const KeyStringSet& keys,
- const RecordId& loc,
- const InsertDeleteOptions& options,
- KeyHandlerFn&& onDuplicateKey,
- int64_t* numInserted) {
+Status SortedDataIndexAccessMethod::insertKeys(OperationContext* opCtx,
+ const CollectionPtr& coll,
+ const KeyStringSet& keys,
+ const RecordId& loc,
+ const InsertDeleteOptions& options,
+ KeyHandlerFn&& onDuplicateKey,
+ int64_t* numInserted) {
// Initialize the 'numInserted' out-parameter to zero in case the caller did not already do so.
if (numInserted) {
*numInserted = 0;
@@ -248,10 +248,10 @@ Status AbstractIndexAccessMethod::insertKeys(OperationContext* opCtx,
return Status::OK();
}
-void AbstractIndexAccessMethod::removeOneKey(OperationContext* opCtx,
- const KeyString::Value& keyString,
- const RecordId& loc,
- bool dupsAllowed) {
+void SortedDataIndexAccessMethod::removeOneKey(OperationContext* opCtx,
+ const KeyString::Value& keyString,
+ const RecordId& loc,
+ bool dupsAllowed) {
try {
_newInterface->unindex(opCtx, keyString, dupsAllowed);
@@ -270,21 +270,21 @@ void AbstractIndexAccessMethod::removeOneKey(OperationContext* opCtx,
}
}
-std::unique_ptr<SortedDataInterface::Cursor> AbstractIndexAccessMethod::newCursor(
+std::unique_ptr<SortedDataInterface::Cursor> SortedDataIndexAccessMethod::newCursor(
OperationContext* opCtx, bool isForward) const {
return _newInterface->newCursor(opCtx, isForward);
}
-std::unique_ptr<SortedDataInterface::Cursor> AbstractIndexAccessMethod::newCursor(
+std::unique_ptr<SortedDataInterface::Cursor> SortedDataIndexAccessMethod::newCursor(
OperationContext* opCtx) const {
return newCursor(opCtx, true);
}
-Status AbstractIndexAccessMethod::removeKeys(OperationContext* opCtx,
- const KeyStringSet& keys,
- const RecordId& loc,
- const InsertDeleteOptions& options,
- int64_t* numDeleted) {
+Status SortedDataIndexAccessMethod::removeKeys(OperationContext* opCtx,
+ const KeyStringSet& keys,
+ const RecordId& loc,
+ const InsertDeleteOptions& options,
+ int64_t* numDeleted) {
for (const auto& key : keys) {
removeOneKey(opCtx, key, loc, options.dupsAllowed);
@@ -294,13 +294,13 @@ Status AbstractIndexAccessMethod::removeKeys(OperationContext* opCtx,
return Status::OK();
}
-Status AbstractIndexAccessMethod::initializeAsEmpty(OperationContext* opCtx) {
+Status SortedDataIndexAccessMethod::initializeAsEmpty(OperationContext* opCtx) {
return _newInterface->initAsEmpty(opCtx);
}
-RecordId AbstractIndexAccessMethod::findSingle(OperationContext* opCtx,
- const CollectionPtr& collection,
- const BSONObj& requestedKey) const {
+RecordId SortedDataIndexAccessMethod::findSingle(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ const BSONObj& requestedKey) const {
// Generate the key for this index.
KeyString::Value actualKey = [&]() {
if (_indexCatalogEntry->getCollator()) {
@@ -341,29 +341,29 @@ RecordId AbstractIndexAccessMethod::findSingle(OperationContext* opCtx,
return RecordId();
}
-void AbstractIndexAccessMethod::validate(OperationContext* opCtx,
- int64_t* numKeys,
- IndexValidateResults* fullResults) const {
+void SortedDataIndexAccessMethod::validate(OperationContext* opCtx,
+ int64_t* numKeys,
+ IndexValidateResults* fullResults) const {
long long keys = 0;
_newInterface->fullValidate(opCtx, &keys, fullResults);
*numKeys = keys;
}
-bool AbstractIndexAccessMethod::appendCustomStats(OperationContext* opCtx,
- BSONObjBuilder* output,
- double scale) const {
+bool SortedDataIndexAccessMethod::appendCustomStats(OperationContext* opCtx,
+ BSONObjBuilder* output,
+ double scale) const {
return _newInterface->appendCustomStats(opCtx, output, scale);
}
-long long AbstractIndexAccessMethod::getSpaceUsedBytes(OperationContext* opCtx) const {
+long long SortedDataIndexAccessMethod::getSpaceUsedBytes(OperationContext* opCtx) const {
return _newInterface->getSpaceUsedBytes(opCtx);
}
-long long AbstractIndexAccessMethod::getFreeStorageBytes(OperationContext* opCtx) const {
+long long SortedDataIndexAccessMethod::getFreeStorageBytes(OperationContext* opCtx) const {
return _newInterface->getFreeStorageBytes(opCtx);
}
-pair<KeyStringSet, KeyStringSet> AbstractIndexAccessMethod::setDifference(
+pair<KeyStringSet, KeyStringSet> SortedDataIndexAccessMethod::setDifference(
const KeyStringSet& left, const KeyStringSet& right) {
// Two iterators to traverse the two sets in sorted order.
auto leftIt = left.begin();
@@ -402,14 +402,14 @@ pair<KeyStringSet, KeyStringSet> AbstractIndexAccessMethod::setDifference(
return {{std::move(outLeft)}, {std::move(outRight)}};
}
-void AbstractIndexAccessMethod::prepareUpdate(OperationContext* opCtx,
- const CollectionPtr& collection,
- const IndexCatalogEntry* index,
- const BSONObj& from,
- const BSONObj& to,
- const RecordId& record,
- const InsertDeleteOptions& options,
- UpdateTicket* ticket) const {
+void SortedDataIndexAccessMethod::prepareUpdate(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ const IndexCatalogEntry* index,
+ const BSONObj& from,
+ const BSONObj& to,
+ const RecordId& record,
+ const InsertDeleteOptions& options,
+ UpdateTicket* ticket) const {
SharedBufferFragmentBuilder pooledBuilder(KeyString::HeapBuilder::kHeapAllocatorDefaultBytes);
const MatchExpression* indexFilter = index->getFilterExpression();
if (!indexFilter || indexFilter->matchesBSON(from)) {
@@ -455,11 +455,11 @@ void AbstractIndexAccessMethod::prepareUpdate(OperationContext* opCtx,
ticket->_isValid = true;
}
-Status AbstractIndexAccessMethod::update(OperationContext* opCtx,
- const CollectionPtr& coll,
- const UpdateTicket& ticket,
- int64_t* numInserted,
- int64_t* numDeleted) {
+Status SortedDataIndexAccessMethod::update(OperationContext* opCtx,
+ const CollectionPtr& coll,
+ const UpdateTicket& ticket,
+ int64_t* numInserted,
+ int64_t* numDeleted) {
invariant(!_indexCatalogEntry->isHybridBuilding());
invariant(ticket.newKeys.size() ==
ticket.oldKeys.size() + ticket.added.size() - ticket.removed.size());
@@ -500,11 +500,11 @@ Status AbstractIndexAccessMethod::update(OperationContext* opCtx,
return Status::OK();
}
-Status AbstractIndexAccessMethod::compact(OperationContext* opCtx) {
+Status SortedDataIndexAccessMethod::compact(OperationContext* opCtx) {
return this->_newInterface->compact(opCtx);
}
-class AbstractIndexAccessMethod::BulkBuilderImpl : public IndexAccessMethod::BulkBuilder {
+class SortedDataIndexAccessMethod::BulkBuilderImpl : public IndexAccessMethod::BulkBuilder {
public:
BulkBuilderImpl(const IndexCatalogEntry* indexCatalogEntry,
size_t maxMemoryUsageBytes,
@@ -566,7 +566,7 @@ private:
KeyStringSet _multikeyMetadataKeys;
};
-std::unique_ptr<IndexAccessMethod::BulkBuilder> AbstractIndexAccessMethod::initiateBulk(
+std::unique_ptr<IndexAccessMethod::BulkBuilder> SortedDataIndexAccessMethod::initiateBulk(
size_t maxMemoryUsageBytes,
const boost::optional<IndexStateInfo>& stateInfo,
StringData dbName) {
@@ -576,15 +576,15 @@ std::unique_ptr<IndexAccessMethod::BulkBuilder> AbstractIndexAccessMethod::initi
: std::make_unique<BulkBuilderImpl>(_indexCatalogEntry, maxMemoryUsageBytes, dbName);
}
-AbstractIndexAccessMethod::BulkBuilderImpl::BulkBuilderImpl(const IndexCatalogEntry* index,
- size_t maxMemoryUsageBytes,
- StringData dbName)
+SortedDataIndexAccessMethod::BulkBuilderImpl::BulkBuilderImpl(const IndexCatalogEntry* index,
+ size_t maxMemoryUsageBytes,
+ StringData dbName)
: _indexCatalogEntry(index), _sorter(_makeSorter(maxMemoryUsageBytes, dbName)) {}
-AbstractIndexAccessMethod::BulkBuilderImpl::BulkBuilderImpl(const IndexCatalogEntry* index,
- size_t maxMemoryUsageBytes,
- const IndexStateInfo& stateInfo,
- StringData dbName)
+SortedDataIndexAccessMethod::BulkBuilderImpl::BulkBuilderImpl(const IndexCatalogEntry* index,
+ size_t maxMemoryUsageBytes,
+ const IndexStateInfo& stateInfo,
+ StringData dbName)
: _indexCatalogEntry(index),
_sorter(
_makeSorter(maxMemoryUsageBytes, dbName, stateInfo.getFileName(), stateInfo.getRanges())),
@@ -592,7 +592,7 @@ AbstractIndexAccessMethod::BulkBuilderImpl::BulkBuilderImpl(const IndexCatalogEn
_isMultiKey(stateInfo.getIsMultikey()),
_indexMultikeyPaths(createMultikeyPaths(stateInfo.getMultikeyPaths())) {}
-Status AbstractIndexAccessMethod::BulkBuilderImpl::insert(
+Status SortedDataIndexAccessMethod::BulkBuilderImpl::insert(
OperationContext* opCtx,
const CollectionPtr& collection,
SharedBufferFragmentBuilder& pooledBuilder,
@@ -667,31 +667,31 @@ Status AbstractIndexAccessMethod::BulkBuilderImpl::insert(
return Status::OK();
}
-const MultikeyPaths& AbstractIndexAccessMethod::BulkBuilderImpl::getMultikeyPaths() const {
+const MultikeyPaths& SortedDataIndexAccessMethod::BulkBuilderImpl::getMultikeyPaths() const {
return _indexMultikeyPaths;
}
-bool AbstractIndexAccessMethod::BulkBuilderImpl::isMultikey() const {
+bool SortedDataIndexAccessMethod::BulkBuilderImpl::isMultikey() const {
return _isMultiKey;
}
IndexAccessMethod::BulkBuilder::Sorter::Iterator*
-AbstractIndexAccessMethod::BulkBuilderImpl::done() {
+SortedDataIndexAccessMethod::BulkBuilderImpl::done() {
_insertMultikeyMetadataKeysIntoSorter();
return _sorter->done();
}
-int64_t AbstractIndexAccessMethod::BulkBuilderImpl::getKeysInserted() const {
+int64_t SortedDataIndexAccessMethod::BulkBuilderImpl::getKeysInserted() const {
return _keysInserted;
}
-AbstractIndexAccessMethod::BulkBuilder::Sorter::PersistedState
-AbstractIndexAccessMethod::BulkBuilderImpl::persistDataForShutdown() {
+SortedDataIndexAccessMethod::BulkBuilder::Sorter::PersistedState
+SortedDataIndexAccessMethod::BulkBuilderImpl::persistDataForShutdown() {
_insertMultikeyMetadataKeysIntoSorter();
return _sorter->persistDataForShutdown();
}
-void AbstractIndexAccessMethod::BulkBuilderImpl::_insertMultikeyMetadataKeysIntoSorter() {
+void SortedDataIndexAccessMethod::BulkBuilderImpl::_insertMultikeyMetadataKeysIntoSorter() {
for (const auto& keyString : _multikeyMetadataKeys) {
_sorter->add(keyString, mongo::NullValue());
++_keysInserted;
@@ -702,15 +702,15 @@ void AbstractIndexAccessMethod::BulkBuilderImpl::_insertMultikeyMetadataKeysInto
_multikeyMetadataKeys.clear();
}
-AbstractIndexAccessMethod::BulkBuilderImpl::Sorter::Settings
-AbstractIndexAccessMethod::BulkBuilderImpl::_makeSorterSettings() const {
+SortedDataIndexAccessMethod::BulkBuilderImpl::Sorter::Settings
+SortedDataIndexAccessMethod::BulkBuilderImpl::_makeSorterSettings() const {
return std::pair<KeyString::Value::SorterDeserializeSettings,
mongo::NullValue::SorterDeserializeSettings>(
{_indexCatalogEntry->accessMethod()->getSortedDataInterface()->getKeyStringVersion()}, {});
}
-AbstractIndexAccessMethod::BulkBuilderImpl::Sorter*
-AbstractIndexAccessMethod::BulkBuilderImpl::_makeSorter(
+SortedDataIndexAccessMethod::BulkBuilderImpl::Sorter*
+SortedDataIndexAccessMethod::BulkBuilderImpl::_makeSorter(
size_t maxMemoryUsageBytes,
StringData dbName,
boost::optional<StringData> fileName,
@@ -725,9 +725,9 @@ AbstractIndexAccessMethod::BulkBuilderImpl::_makeSorter(
_makeSorterSettings());
}
-void AbstractIndexAccessMethod::_yieldBulkLoad(OperationContext* opCtx,
- const Yieldable* yieldable,
- const NamespaceString& ns) const {
+void SortedDataIndexAccessMethod::_yieldBulkLoad(OperationContext* opCtx,
+ const Yieldable* yieldable,
+ const NamespaceString& ns) const {
// Releasing locks means a new snapshot should be acquired when restored.
opCtx->recoveryUnit()->abandonSnapshot();
yieldable->yield();
@@ -757,13 +757,13 @@ void AbstractIndexAccessMethod::_yieldBulkLoad(OperationContext* opCtx,
yieldable->restore();
}
-Status AbstractIndexAccessMethod::commitBulk(OperationContext* opCtx,
- const CollectionPtr& collection,
- BulkBuilder* bulk,
- bool dupsAllowed,
- int32_t yieldIterations,
- const KeyHandlerFn& onDuplicateKeyInserted,
- const RecordIdHandlerFn& onDuplicateRecord) {
+Status SortedDataIndexAccessMethod::commitBulk(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ BulkBuilder* bulk,
+ bool dupsAllowed,
+ int32_t yieldIterations,
+ const KeyHandlerFn& onDuplicateKeyInserted,
+ const RecordIdHandlerFn& onDuplicateRecord) {
Timer timer;
auto ns = _indexCatalogEntry->getNSSFromCatalog(opCtx);
@@ -886,24 +886,24 @@ Status AbstractIndexAccessMethod::commitBulk(OperationContext* opCtx,
return Status::OK();
}
-void AbstractIndexAccessMethod::setIndexIsMultikey(OperationContext* opCtx,
- const CollectionPtr& collection,
- KeyStringSet multikeyMetadataKeys,
- MultikeyPaths paths) {
+void SortedDataIndexAccessMethod::setIndexIsMultikey(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ KeyStringSet multikeyMetadataKeys,
+ MultikeyPaths paths) {
_indexCatalogEntry->setMultikey(opCtx, collection, multikeyMetadataKeys, paths);
}
-void AbstractIndexAccessMethod::getKeys(OperationContext* opCtx,
- const CollectionPtr& collection,
- SharedBufferFragmentBuilder& pooledBufferBuilder,
- const BSONObj& obj,
- GetKeysMode mode,
- GetKeysContext context,
- KeyStringSet* keys,
- KeyStringSet* multikeyMetadataKeys,
- MultikeyPaths* multikeyPaths,
- boost::optional<RecordId> id,
- OnSuppressedErrorFn&& onSuppressedError) const {
+void SortedDataIndexAccessMethod::getKeys(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ SharedBufferFragmentBuilder& pooledBufferBuilder,
+ const BSONObj& obj,
+ GetKeysMode mode,
+ GetKeysContext context,
+ KeyStringSet* keys,
+ KeyStringSet* multikeyMetadataKeys,
+ MultikeyPaths* multikeyPaths,
+ boost::optional<RecordId> id,
+ OnSuppressedErrorFn&& onSuppressedError) const {
invariant(!id || _newInterface->rsKeyFormat() != KeyFormat::String || id->isStr(),
fmt::format("RecordId is not in the same string format as its RecordStore; id: {}",
id->toString()));
@@ -958,18 +958,18 @@ void AbstractIndexAccessMethod::getKeys(OperationContext* opCtx,
}
}
-bool AbstractIndexAccessMethod::shouldMarkIndexAsMultikey(
+bool SortedDataIndexAccessMethod::shouldMarkIndexAsMultikey(
size_t numberOfKeys,
const KeyStringSet& multikeyMetadataKeys,
const MultikeyPaths& multikeyPaths) const {
return numberOfKeys > 1 || isMultikeyFromPaths(multikeyPaths);
}
-void AbstractIndexAccessMethod::validateDocument(const CollectionPtr& collection,
- const BSONObj& obj,
- const BSONObj& keyPattern) const {}
+void SortedDataIndexAccessMethod::validateDocument(const CollectionPtr& collection,
+ const BSONObj& obj,
+ const BSONObj& keyPattern) const {}
-SortedDataInterface* AbstractIndexAccessMethod::getSortedDataInterface() const {
+SortedDataInterface* SortedDataIndexAccessMethod::getSortedDataInterface() const {
return _newInterface.get();
}
@@ -990,9 +990,10 @@ std::string nextFileName() {
<< randomSuffix;
}
-Status AbstractIndexAccessMethod::_handleDuplicateKey(OperationContext* opCtx,
- const KeyString::Value& dataKey,
- const RecordIdHandlerFn& onDuplicateRecord) {
+Status SortedDataIndexAccessMethod::_handleDuplicateKey(
+ OperationContext* opCtx,
+ const KeyString::Value& dataKey,
+ const RecordIdHandlerFn& onDuplicateRecord) {
RecordId recordId = (KeyFormat::Long == _newInterface->rsKeyFormat())
? KeyString::decodeRecordIdLongAtEnd(dataKey.getBuffer(), dataKey.getSize())
: KeyString::decodeRecordIdStrAtEnd(dataKey.getBuffer(), dataKey.getSize());
diff --git a/src/mongo/db/index/index_access_method.h b/src/mongo/db/index/index_access_method.h
index 30d5c9131fc..f9988b7d191 100644
--- a/src/mongo/db/index/index_access_method.h
+++ b/src/mongo/db/index/index_access_method.h
@@ -476,9 +476,9 @@ struct InsertDeleteOptions {
* for the initialization and core functionality of this abstract class. To avoid any circular
* dependencies, it is important that IndexAccessMethod remain an interface.
*/
-class AbstractIndexAccessMethod : public IndexAccessMethod {
- AbstractIndexAccessMethod(const AbstractIndexAccessMethod&) = delete;
- AbstractIndexAccessMethod& operator=(const AbstractIndexAccessMethod&) = delete;
+class SortedDataIndexAccessMethod : public IndexAccessMethod {
+ SortedDataIndexAccessMethod(const SortedDataIndexAccessMethod&) = delete;
+ SortedDataIndexAccessMethod& operator=(const SortedDataIndexAccessMethod&) = delete;
public:
/**
@@ -492,8 +492,8 @@ public:
static std::pair<KeyStringSet, KeyStringSet> setDifference(const KeyStringSet& left,
const KeyStringSet& right);
- AbstractIndexAccessMethod(const IndexCatalogEntry* btreeState,
- std::unique_ptr<SortedDataInterface> btree);
+ SortedDataIndexAccessMethod(const IndexCatalogEntry* btreeState,
+ std::unique_ptr<SortedDataInterface> btree);
Status insert(OperationContext* opCtx,
SharedBufferFragmentBuilder& pooledBufferBuilder,
diff --git a/src/mongo/db/index/s2_access_method.cpp b/src/mongo/db/index/s2_access_method.cpp
index b1c0fdcbe2a..0bced692f3c 100644
--- a/src/mongo/db/index/s2_access_method.cpp
+++ b/src/mongo/db/index/s2_access_method.cpp
@@ -49,7 +49,7 @@ static const string kIndexVersionFieldName("2dsphereIndexVersion");
S2AccessMethod::S2AccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)) {
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)) {
const IndexDescriptor* descriptor = btreeState->descriptor();
ExpressionParams::initialize2dsphereParams(
diff --git a/src/mongo/db/index/s2_access_method.h b/src/mongo/db/index/s2_access_method.h
index 7f4f595e5d8..c25a8b47ce1 100644
--- a/src/mongo/db/index/s2_access_method.h
+++ b/src/mongo/db/index/s2_access_method.h
@@ -38,7 +38,7 @@
namespace mongo {
-class S2AccessMethod : public AbstractIndexAccessMethod {
+class S2AccessMethod : public SortedDataIndexAccessMethod {
public:
S2AccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/s2_bucket_access_method.cpp b/src/mongo/db/index/s2_bucket_access_method.cpp
index 13fafad331d..f838ad2a5e8 100644
--- a/src/mongo/db/index/s2_bucket_access_method.cpp
+++ b/src/mongo/db/index/s2_bucket_access_method.cpp
@@ -49,7 +49,7 @@ static const string kIndexVersionFieldName("2dsphereIndexVersion");
S2BucketAccessMethod::S2BucketAccessMethod(IndexCatalogEntry* btreeState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(btreeState, std::move(btree)) {
+ : SortedDataIndexAccessMethod(btreeState, std::move(btree)) {
const IndexDescriptor* descriptor = btreeState->descriptor();
ExpressionParams::initialize2dsphereParams(
diff --git a/src/mongo/db/index/s2_bucket_access_method.h b/src/mongo/db/index/s2_bucket_access_method.h
index b2214269cff..8996bfe78a5 100644
--- a/src/mongo/db/index/s2_bucket_access_method.h
+++ b/src/mongo/db/index/s2_bucket_access_method.h
@@ -38,7 +38,7 @@
namespace mongo {
-class S2BucketAccessMethod : public AbstractIndexAccessMethod {
+class S2BucketAccessMethod : public SortedDataIndexAccessMethod {
public:
S2BucketAccessMethod(IndexCatalogEntry* btreeState, std::unique_ptr<SortedDataInterface> btree);
diff --git a/src/mongo/db/index/wildcard_access_method.cpp b/src/mongo/db/index/wildcard_access_method.cpp
index 4bbd36149e2..4ea3cfc261c 100644
--- a/src/mongo/db/index/wildcard_access_method.cpp
+++ b/src/mongo/db/index/wildcard_access_method.cpp
@@ -39,7 +39,7 @@ namespace mongo {
WildcardAccessMethod::WildcardAccessMethod(IndexCatalogEntry* wildcardState,
std::unique_ptr<SortedDataInterface> btree)
- : AbstractIndexAccessMethod(wildcardState, std::move(btree)),
+ : SortedDataIndexAccessMethod(wildcardState, std::move(btree)),
_keyGen(_descriptor->keyPattern(),
_descriptor->pathProjection(),
_indexCatalogEntry->getCollator(),
diff --git a/src/mongo/db/index/wildcard_access_method.h b/src/mongo/db/index/wildcard_access_method.h
index bdc02f8dc9b..a82e7e616c2 100644
--- a/src/mongo/db/index/wildcard_access_method.h
+++ b/src/mongo/db/index/wildcard_access_method.h
@@ -43,7 +43,7 @@ namespace mongo {
* $** indexes store a special metadata key for each path in the index that is multikey. This class
* provides an interface to access the multikey metadata: see getMultikeyPaths().
*/
-class WildcardAccessMethod final : public AbstractIndexAccessMethod {
+class WildcardAccessMethod final : public SortedDataIndexAccessMethod {
public:
WildcardAccessMethod(IndexCatalogEntry* wildcardState,
std::unique_ptr<SortedDataInterface> btree);