summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/kv/kv_engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/kv/kv_engine.h')
-rw-r--r--src/mongo/db/storage/kv/kv_engine.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/mongo/db/storage/kv/kv_engine.h b/src/mongo/db/storage/kv/kv_engine.h
index 4f622259075..e6801dab6c7 100644
--- a/src/mongo/db/storage/kv/kv_engine.h
+++ b/src/mongo/db/storage/kv/kv_engine.h
@@ -39,6 +39,7 @@
#include "mongo/db/catalog/collection_options.h"
#include "mongo/db/storage/kv/kv_prefix.h"
#include "mongo/db/storage/record_store.h"
+#include "mongo/db/storage/sorted_data_interface.h"
#include "mongo/db/storage/storage_engine.h"
namespace mongo {
@@ -47,7 +48,6 @@ class IndexDescriptor;
class JournalListener;
class OperationContext;
class RecoveryUnit;
-class SortedDataInterface;
class SnapshotManager;
class KVEngine {
@@ -87,9 +87,8 @@ public:
return getRecordStore(opCtx, ns, ident, options);
}
- virtual SortedDataInterface* getSortedDataInterface(OperationContext* opCtx,
- StringData ident,
- const IndexDescriptor* desc) = 0;
+ virtual std::unique_ptr<SortedDataInterface> getSortedDataInterface(
+ OperationContext* opCtx, StringData ident, const IndexDescriptor* desc) = 0;
/**
* Get a SortedDataInterface that may share an underlying table with other
@@ -100,10 +99,8 @@ public:
* between indexes sharing an underlying table. A value of `KVPrefix::kNotPrefixed`
* guarantees the index is the sole resident of the table.
*/
- virtual SortedDataInterface* getGroupedSortedDataInterface(OperationContext* opCtx,
- StringData ident,
- const IndexDescriptor* desc,
- KVPrefix prefix) {
+ virtual std::unique_ptr<SortedDataInterface> getGroupedSortedDataInterface(
+ OperationContext* opCtx, StringData ident, const IndexDescriptor* desc, KVPrefix prefix) {
invariant(prefix == KVPrefix::kNotPrefixed);
return getSortedDataInterface(opCtx, ident, desc);
}