summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/multi_bson_stream_cursor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/multi_bson_stream_cursor.h')
-rw-r--r--src/mongo/db/storage/multi_bson_stream_cursor.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mongo/db/storage/multi_bson_stream_cursor.h b/src/mongo/db/storage/multi_bson_stream_cursor.h
index 1b896f6a6c5..d71e7240326 100644
--- a/src/mongo/db/storage/multi_bson_stream_cursor.h
+++ b/src/mongo/db/storage/multi_bson_stream_cursor.h
@@ -29,9 +29,10 @@
#pragma once
-#include "mongo/db/storage/external_record_store.h"
+#include "mongo/db/catalog/virtual_collection_options.h"
#include "mongo/db/storage/input_stream.h"
#include "mongo/db/storage/named_pipe.h"
+#include "mongo/db/storage/record_store.h"
namespace mongo {
class MultiBsonStreamCursor : public SeekableRecordCursor {
@@ -39,8 +40,7 @@ public:
MultiBsonStreamCursor(const VirtualCollectionOptions& vopts)
: _numStreams(vopts.dataSources.size()), _vopts(vopts) {
tassert(6968310, "_numStreams {} <= 0"_format(_numStreams), _numStreams > 0);
- _streamReader =
- std::make_unique<InputStream<NamedPipeInput>>(_vopts.dataSources[0].url.c_str());
+ _streamReader = getInputStream(_vopts.dataSources[_streamIdx].url);
}
boost::optional<Record> next() override;
@@ -71,6 +71,7 @@ public:
private:
void expandBuffer(int32_t bsonSize);
boost::optional<Record> nextFromCurrentStream();
+ static std::unique_ptr<InputStream<NamedPipeInput>> getInputStream(const std::string& url);
// The size in bytes of a BSON object's "size" prefix.
static constexpr int kSizeSize = static_cast<int>(sizeof(int32_t));