summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
diff options
context:
space:
mode:
authorCharlie Swanson <charlie.swanson@mongodb.com>2018-08-27 18:12:31 -0400
committerCharlie Swanson <charlie.swanson@mongodb.com>2018-09-04 11:04:17 -0400
commit92f108d9379c8b7f7d5769ed38be517b45858b28 (patch)
tree93c1fca99110af4b07a3459895fc901250f1b028 /src/mongo/db/pipeline/document_source_change_stream_transform.cpp
parent23794c14b03bb272daad7a2b25eca0b80c03a31c (diff)
downloadmongo-92f108d9379c8b7f7d5769ed38be517b45858b28.tar.gz
SERVER-35776 Basic 4.0-4.2 up/downgrade for change streams
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.cpp19
1 files changed, 14 insertions, 5 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 c1432f4d960..a7f6e01d235 100644
--- a/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
+++ b/src/mongo/db/pipeline/document_source_change_stream_transform.cpp
@@ -68,16 +68,21 @@ constexpr auto checkValueType = &DocumentSourceChangeStream::checkValueType;
} // namespace
boost::intrusive_ptr<DocumentSourceChangeStreamTransform>
-DocumentSourceChangeStreamTransform::create(const boost::intrusive_ptr<ExpressionContext>& expCtx,
- BSONObj changeStreamSpec) {
- return new DocumentSourceChangeStreamTransform(expCtx, changeStreamSpec);
+DocumentSourceChangeStreamTransform::create(
+ const boost::intrusive_ptr<ExpressionContext>& expCtx,
+ const ServerGlobalParams::FeatureCompatibility::Version& fcv,
+ BSONObj changeStreamSpec) {
+ return new DocumentSourceChangeStreamTransform(expCtx, fcv, changeStreamSpec);
}
DocumentSourceChangeStreamTransform::DocumentSourceChangeStreamTransform(
- const boost::intrusive_ptr<ExpressionContext>& expCtx, BSONObj changeStreamSpec)
+ const boost::intrusive_ptr<ExpressionContext>& expCtx,
+ const ServerGlobalParams::FeatureCompatibility::Version& fcv,
+ BSONObj changeStreamSpec)
: DocumentSource(expCtx),
_changeStreamSpec(changeStreamSpec.getOwned()),
- _isIndependentOfAnyCollection(expCtx->ns.isCollectionlessAggregateNS()) {
+ _isIndependentOfAnyCollection(expCtx->ns.isCollectionlessAggregateNS()),
+ _fcv(fcv) {
_nsRegex.emplace(DocumentSourceChangeStream::getNsRegexForChangeStream(expCtx->ns));
@@ -174,6 +179,10 @@ ResumeTokenData DocumentSourceChangeStreamTransform::getResumeToken(Value ts,
if (!uuid.missing())
resumeTokenData.uuid = uuid.getUuid();
+ if (_fcv < ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo42) {
+ resumeTokenData.version = 0;
+ }
+
return resumeTokenData;
}