diff options
author | Varun Ravichandran <varun.ravichandran@mongodb.com> | 2022-03-29 21:08:06 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-04-12 01:15:19 +0000 |
commit | ceb27a18202caf692f595f978fecc7b416a6f6a2 (patch) | |
tree | 8361a978537e25f3a51268fd3d6e534530e9e51c /src/mongo/db/pipeline | |
parent | 1e9543d5b465e29bf3ee05e21434062cbc9f22f2 (diff) | |
download | mongo-ceb27a18202caf692f595f978fecc7b416a6f6a2.tar.gz |
SERVER-61802: Create changeStreamOptions cluster server parameter
Diffstat (limited to 'src/mongo/db/pipeline')
-rw-r--r-- | src/mongo/db/pipeline/SConscript | 2 | ||||
-rw-r--r-- | src/mongo/db/pipeline/change_stream_expired_pre_image_remover.cpp | 16 | ||||
-rw-r--r-- | src/mongo/db/pipeline/change_stream_expired_pre_image_remover.h | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/mongo/db/pipeline/SConscript b/src/mongo/db/pipeline/SConscript index bb37a5b15ba..6b54a25e0b8 100644 --- a/src/mongo/db/pipeline/SConscript +++ b/src/mongo/db/pipeline/SConscript @@ -645,8 +645,8 @@ env.CppUnitTest( LIBDEPS=[ '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/db/auth/authmocks', + '$BUILD_DIR/mongo/db/change_stream_options', '$BUILD_DIR/mongo/db/change_stream_options_manager', - '$BUILD_DIR/mongo/db/commands/change_stream_options', '$BUILD_DIR/mongo/db/cst/cst', '$BUILD_DIR/mongo/db/exec/document_value/document_value', '$BUILD_DIR/mongo/db/exec/document_value/document_value_test_util', diff --git a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.cpp b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.cpp index f015f39680c..02a6b932ffd 100644 --- a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.cpp +++ b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.cpp @@ -70,13 +70,14 @@ bool PreImageAttributes::isExpiredPreImage(const boost::optional<Date_t>& preIma return preImageOplogEntryIsDeleted || operationTime <= expirationTime; } -// Get the 'expireAfterSeconds' from the 'ChangeStreamOptions' if present, boost::none otherwise. +// Get the 'expireAfterSeconds' from the 'ChangeStreamOptions' if not 'off', boost::none otherwise. boost::optional<std::int64_t> getExpireAfterSecondsFromChangeStreamOptions( ChangeStreamOptions& changeStreamOptions) { - if (auto preAndPostImages = changeStreamOptions.getPreAndPostImages(); preAndPostImages && - preAndPostImages->getExpireAfterSeconds() && - !stdx::holds_alternative<std::string>(*preAndPostImages->getExpireAfterSeconds())) { - return stdx::get<std::int64_t>(*preAndPostImages->getExpireAfterSeconds()); + const stdx::variant<std::string, std::int64_t>& expireAfterSeconds = + changeStreamOptions.getPreAndPostImages().getExpireAfterSeconds(); + + if (!stdx::holds_alternative<std::string>(expireAfterSeconds)) { + return stdx::get<std::int64_t>(expireAfterSeconds); } return boost::none; @@ -88,9 +89,8 @@ boost::optional<Date_t> getPreImageExpirationTime(OperationContext* opCtx, Date_ boost::optional<std::int64_t> expireAfterSeconds = boost::none; // Get the expiration time directly from the change stream manager. - if (auto changeStreamOptions = ChangeStreamOptionsManager::get(opCtx).getOptions(opCtx)) { - expireAfterSeconds = getExpireAfterSecondsFromChangeStreamOptions(*changeStreamOptions); - } + auto changeStreamOptions = ChangeStreamOptionsManager::get(opCtx).getOptions(opCtx); + expireAfterSeconds = getExpireAfterSecondsFromChangeStreamOptions(changeStreamOptions); // A pre-image is eligible for deletion if: // pre-image's op-time + expireAfterSeconds < currentTime. diff --git a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.h b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.h index 89849552b0a..0ddd491991f 100644 --- a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.h +++ b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover.h @@ -29,7 +29,7 @@ #pragma once -#include "mongo/db/commands/change_stream_options_gen.h" +#include "mongo/db/change_stream_options_gen.h" #include "mongo/db/service_context.h" namespace mongo { |