summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
diff options
context:
space:
mode:
authorBernard Gorman <bernard.gorman@gmail.com>2019-01-23 16:32:45 +0000
committerBernard Gorman <bernard.gorman@gmail.com>2019-02-28 01:13:38 +0000
commit25dea813a6f3a63bd0c39c075457379daadc1e32 (patch)
tree6a53fd3cf6c27ce5ae81224e380470acaaf03874 /src/mongo/db/pipeline/document_source_change_stream_transform.cpp
parenta74b2f39025fee2c59aa5437deea6e06f05e18ca (diff)
downloadmongo-25dea813a6f3a63bd0c39c075457379daadc1e32.tar.gz
SERVER-38414 Upgrade/Downgrade testing for change stream high water marks
Diffstat (limited to 'src/mongo/db/pipeline/document_source_change_stream_transform.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_change_stream_transform.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/db/pipeline/document_source_change_stream_transform.cpp b/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
index 2f1fbdfc552..59c54714ad0 100644
--- a/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
+++ b/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
@@ -178,7 +178,11 @@ ResumeTokenData DocumentSourceChangeStreamTransform::getResumeToken(Value ts,
if (!uuid.missing())
resumeTokenData.uuid = uuid.getUuid();
- if (_fcv < ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo42) {
+ // If 'needsMerge' is true, 'mergeByPBRT' is false, and FCV is less than 4.2, then we are
+ // running on a sharded cluster that is mid-upgrade, and so we generate v0 resume tokens.
+ // Otherwise, we always generate v1 resume tokens whether the FCV is 4.0 or 4.2.
+ if (pExpCtx->needsMerge && !pExpCtx->mergeByPBRT &&
+ _fcv < ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo42) {
resumeTokenData.version = 0;
}