diff options
author | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-04-13 13:35:54 -0400 |
---|---|---|
committer | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-04-13 16:18:35 -0400 |
commit | 2f5da2d8e05cfb461539fca31ad40f8fb6d0b532 (patch) | |
tree | 8a3515deccf97ac06d3183bcd79227dfdb712a20 /src | |
parent | a820491e9402a52d7575157a9897306d49129370 (diff) | |
download | mongo-2f5da2d8e05cfb461539fca31ad40f8fb6d0b532.tar.gz |
SERVER-34283 Allow change streams on whole-db or whole-cluster
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/pipeline/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/pipeline/document_source_change_stream.cpp | 9 | ||||
-rw-r--r-- | src/mongo/db/pipeline/document_source_change_stream_test.cpp | 29 |
3 files changed, 1 insertions, 38 deletions
diff --git a/src/mongo/db/pipeline/SConscript b/src/mongo/db/pipeline/SConscript index 9bf8d695a42..02f5c3a0520 100644 --- a/src/mongo/db/pipeline/SConscript +++ b/src/mongo/db/pipeline/SConscript @@ -225,7 +225,6 @@ env.CppUnitTest( ], LIBDEPS=[ '$BUILD_DIR/mongo/db/auth/authorization_manager_mock_init', - '$BUILD_DIR/mongo/db/commands/test_commands_enabled', '$BUILD_DIR/mongo/db/repl/oplog_entry', '$BUILD_DIR/mongo/db/repl/replmocks', '$BUILD_DIR/mongo/db/service_context', diff --git a/src/mongo/db/pipeline/document_source_change_stream.cpp b/src/mongo/db/pipeline/document_source_change_stream.cpp index 70b69b14cda..40e12524f9e 100644 --- a/src/mongo/db/pipeline/document_source_change_stream.cpp +++ b/src/mongo/db/pipeline/document_source_change_stream.cpp @@ -34,7 +34,6 @@ #include "mongo/db/bson/bson_helper.h" #include "mongo/db/catalog/uuid_catalog.h" #include "mongo/db/commands/feature_compatibility_version_documentation.h" -#include "mongo/db/commands/test_commands_enabled.h" #include "mongo/db/logical_clock.h" #include "mongo/db/pipeline/change_stream_constants.h" #include "mongo/db/pipeline/document_path_support.h" @@ -539,14 +538,6 @@ void DocumentSourceChangeStream::assertIsLegalSpecification( const intrusive_ptr<ExpressionContext>& expCtx, const DocumentSourceChangeStreamSpec& spec, ServerGlobalParams::FeatureCompatibility::Version fcv) { - // Prevent $changeStream from running on an entire database (or cluster-wide) unless we are in - // test mode. - // TODO SERVER-34283: remove once whole-database $changeStream is feature-complete. - uassert(ErrorCodes::QueryFeatureNotAllowed, - "Running $changeStream on an entire database or cluster is not permitted unless the " - "deployment is in test mode.", - !(expCtx->ns.isCollectionlessAggregateNS() && !getTestCommandsEnabled())); - // Change stream on an entire database is a new 4.0 feature. uassert(ErrorCodes::QueryFeatureNotAllowed, str::stream() << "$changeStream on an entire database is not allowed in the current " diff --git a/src/mongo/db/pipeline/document_source_change_stream_test.cpp b/src/mongo/db/pipeline/document_source_change_stream_test.cpp index cdbbf4d8b86..f96c374081d 100644 --- a/src/mongo/db/pipeline/document_source_change_stream_test.cpp +++ b/src/mongo/db/pipeline/document_source_change_stream_test.cpp @@ -35,7 +35,6 @@ #include "mongo/bson/json.h" #include "mongo/db/catalog/collection_mock.h" #include "mongo/db/catalog/uuid_catalog.h" -#include "mongo/db/commands/test_commands_enabled.h" #include "mongo/db/pipeline/aggregation_context_fixture.h" #include "mongo/db/pipeline/document.h" #include "mongo/db/pipeline/document_source.h" @@ -947,35 +946,9 @@ TEST_F(ChangeStreamStageTest, CloseCursorEvenIfInvalidateEntriesGetFilteredOut) class ChangeStreamStageDBTest : public ChangeStreamStageTest { public: ChangeStreamStageDBTest() - : ChangeStreamStageTest(NamespaceString::makeCollectionlessAggregateNSS(nss.db())) { - setTestCommandsEnabled(true); - } + : ChangeStreamStageTest(NamespaceString::makeCollectionlessAggregateNSS(nss.db())) {} }; -// TODO SERVER-34283: remove once whole-database $changeStream is feature-complete. -TEST_F(ChangeStreamStageDBTest, ShouldSucceedIfTestCommandsEnabled) { - const auto spec = fromjson("{$changeStream: {}}"); - - const auto stages = DSChangeStream::createFromBson(spec.firstElement(), getExpCtx()); - ASSERT_TRUE(dynamic_cast<DocumentSourceMatch*>(stages.front().get())); - ASSERT_EQUALS(stages.size(), 3UL); - - for (auto&& stage : stages) { - ASSERT_EQUALS(string(stage->getSourceName()), DSChangeStream::kStageName); - } -} - -// TODO SERVER-34283: remove once whole-database $changeStream is feature-complete. -TEST_F(ChangeStreamStageDBTest, ShouldFailIfTestCommandsDisabled) { - setTestCommandsEnabled(false); - - const auto spec = fromjson("{$changeStream: {}}"); - - ASSERT_THROWS_CODE(DSChangeStream::createFromBson(spec.firstElement(), getExpCtx()), - AssertionException, - ErrorCodes::QueryFeatureNotAllowed); -} - TEST_F(ChangeStreamStageDBTest, TransformInsert) { auto insert = makeOplogEntry(OpTypeEnum::kInsert, nss, BSON("_id" << 1 << "x" << 2)); |