summaryrefslogtreecommitdiff
path: root/src/mongo/db/index/index_access_method.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index/index_access_method.h')
-rw-r--r--src/mongo/db/index/index_access_method.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/index/index_access_method.h b/src/mongo/db/index/index_access_method.h
index 013a6663c3a..b5adc80e051 100644
--- a/src/mongo/db/index/index_access_method.h
+++ b/src/mongo/db/index/index_access_method.h
@@ -160,6 +160,10 @@ public:
int64_t* numInserted,
int64_t* numDeleted) = 0;
+ virtual std::unique_ptr<SortedDataBuilderInterface> makeBulkBuilder(OperationContext* opCtx,
+ bool dupsAllowed) = 0;
+
+
/**
* Returns an unpositioned cursor over 'this' index.
*/
@@ -242,6 +246,12 @@ public:
const RecordId& loc,
const InsertDeleteOptions& options) = 0;
+ /**
+ * Inserts the keyString directly into the sorter. No additional logic (related to multikey
+ * paths, etc.) is performed.
+ */
+ virtual void addToSorter(const KeyString::Value& keyString) = 0;
+
virtual const MultikeyPaths& getMultikeyPaths() const = 0;
virtual bool isMultikey() const = 0;
@@ -508,6 +518,9 @@ public:
bool isForward) const final;
std::unique_ptr<SortedDataInterface::Cursor> newCursor(OperationContext* opCtx) const final;
+ std::unique_ptr<SortedDataBuilderInterface> makeBulkBuilder(OperationContext* opCtx,
+ bool dupsAllowed) final;
+
Status initializeAsEmpty(OperationContext* opCtx) final;
void validate(OperationContext* opCtx,