summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/index_catalog_impl.h
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2020-04-22 01:00:21 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-10 16:19:05 +0000
commitb63e8cc9ba5c3897c47a33a6aec9981f2e3c53de (patch)
tree0aab1c0364cc481eb1b5f0d25851e3d8214919f3 /src/mongo/db/catalog/index_catalog_impl.h
parent07169364c2aece0fb99f4a97b796196edb033efa (diff)
downloadmongo-b63e8cc9ba5c3897c47a33a6aec9981f2e3c53de.tar.gz
SERVER-47873 Eliminate the Collection* saved in IndexDescriptor
Diffstat (limited to 'src/mongo/db/catalog/index_catalog_impl.h')
-rw-r--r--src/mongo/db/catalog/index_catalog_impl.h28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/mongo/db/catalog/index_catalog_impl.h b/src/mongo/db/catalog/index_catalog_impl.h
index fa195004756..2b5ff4f5f4a 100644
--- a/src/mongo/db/catalog/index_catalog_impl.h
+++ b/src/mongo/db/catalog/index_catalog_impl.h
@@ -218,23 +218,8 @@ public:
// ---- modify single index
- /**
- * Returns true if the index 'idx' is multikey, and returns false otherwise.
- */
- bool isMultikey(const IndexDescriptor* const idx) override;
-
- /**
- * Returns the path components that cause the index 'idx' to be multikey if the index supports
- * path-level multikey tracking, and returns an empty vector if path-level multikey tracking
- * isn't supported.
- *
- * If the index supports path-level multikey tracking but isn't multikey, then this function
- * returns a vector with size equal to the number of elements in the index key pattern where
- * each element in the vector is an empty set.
- */
- MultikeyPaths getMultikeyPaths(OperationContext* opCtx, const IndexDescriptor* idx) override;
-
void setMultikeyPaths(OperationContext* const opCtx,
+ Collection* coll,
const IndexDescriptor* desc,
const MultikeyPaths& multikeyPaths) override;
@@ -247,6 +232,7 @@ public:
* This method may throw.
*/
Status indexRecords(OperationContext* opCtx,
+ Collection* coll,
const std::vector<BsonRecord>& bsonRecords,
int64_t* keysInsertedOut) override;
@@ -254,6 +240,7 @@ public:
* See IndexCatalog::updateRecord
*/
Status updateRecord(OperationContext* const opCtx,
+ Collection* coll,
const BSONObj& oldDoc,
const BSONObj& newDoc,
const RecordId& recordId,
@@ -286,10 +273,13 @@ public:
* index constraints, as needed by replication.
*/
void prepareInsertDeleteOptions(OperationContext* opCtx,
+ const NamespaceString&,
const IndexDescriptor* desc,
InsertDeleteOptions* options) const override;
- void indexBuildSuccess(OperationContext* opCtx, IndexCatalogEntry* index) override;
+ void indexBuildSuccess(OperationContext* opCtx,
+ const Collection* collection,
+ IndexCatalogEntry* index) override;
private:
static const BSONObj _idObj; // { _id : 1 }
@@ -303,6 +293,7 @@ private:
std::string _getAccessMethodName(const BSONObj& keyPattern) const;
Status _indexKeys(OperationContext* opCtx,
+ Collection* coll,
IndexCatalogEntry* index,
const KeyStringSet& keys,
const KeyStringSet& multikeyMetadataKeys,
@@ -313,16 +304,19 @@ private:
int64_t* keysInsertedOut);
Status _indexFilteredRecords(OperationContext* opCtx,
+ Collection* coll,
IndexCatalogEntry* index,
const std::vector<BsonRecord>& bsonRecords,
int64_t* keysInsertedOut);
Status _indexRecords(OperationContext* opCtx,
+ Collection* coll,
IndexCatalogEntry* index,
const std::vector<BsonRecord>& bsonRecords,
int64_t* keysInsertedOut);
Status _updateRecord(OperationContext* const opCtx,
+ Collection* coll,
IndexCatalogEntry* index,
const BSONObj& oldDoc,
const BSONObj& newDoc,