|
The goal of this ticket is to create a function which allows the aggregation pipeline to easily be sent to a remote (donor) shard and for the aggregation pipeline to be unit-testable with DocumentSourceMock. It is preferable to use DocumentSourceXX::create() functions (or DocumentSourceXX::parseFromBSON() when the former isn't available or is too tedious) rather than building it up with string concatenation. DocumentSources can be conditionally added to the Pipeline::SourceContainer, for example, to reflect a stage being added only when resuming on a new cursor.
std::unique_ptr<Pipeline, PipelineDeleter> createConfigTxnCloningPipelineForResharding(
|
mongo::Timestamp fetchTimestamp, /* never isNull() */
|
BSONObj startAfter, /* expected to be an object of the form {_id: <any>} or isEmpty() */
|
);
|
Some of these parameters are probably more appropriate to take by const-ref because their contents can only be copied into the Pipeline anyway.
|