summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCharlie Swanson <charlie.swanson@mongodb.com>2018-04-13 13:35:54 -0400
committerCharlie Swanson <charlie.swanson@mongodb.com>2018-04-13 16:18:35 -0400
commit2f5da2d8e05cfb461539fca31ad40f8fb6d0b532 (patch)
tree8a3515deccf97ac06d3183bcd79227dfdb712a20 /src
parenta820491e9402a52d7575157a9897306d49129370 (diff)
downloadmongo-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/SConscript1
-rw-r--r--src/mongo/db/pipeline/document_source_change_stream.cpp9
-rw-r--r--src/mongo/db/pipeline/document_source_change_stream_test.cpp29
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));