diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2018-04-05 11:12:13 -0400 |
---|---|---|
committer | Henrik Edin <henrik.edin@mongodb.com> | 2018-04-06 14:55:48 -0400 |
commit | 1c0c35ba16ab6f03902db70f9e5750a74877e8a4 (patch) | |
tree | c68eaa1368e1f690630edcba6dee3ba03bafe7ba | |
parent | 91e426664fdfb52070275c2a498f71d7d196ea02 (diff) | |
download | mongo-1c0c35ba16ab6f03902db70f9e5750a74877e8a4.tar.gz |
SERVER-34320 Fix index building in embedded.
3 files changed, 29 insertions, 6 deletions
diff --git a/src/mongo/client/embedded/libmongodbcapi_test.cpp b/src/mongo/client/embedded/libmongodbcapi_test.cpp index 967b59b1acd..918778ff7c8 100644 --- a/src/mongo/client/embedded/libmongodbcapi_test.cpp +++ b/src/mongo/client/embedded/libmongodbcapi_test.cpp @@ -173,6 +173,30 @@ TEST_F(MongodbCAPITest, IsMaster) { ASSERT(output.getBoolField("ismaster")); } +TEST_F(MongodbCAPITest, CreateIndex) { + // create the client object + auto client = createClient(); + + // craft the createIndexes message + mongo::BSONObj inputObj = mongo::fromjson( + R"raw_delimiter({ + createIndexes: 'items', + indexes: + [ + { + key: { + task: 1 + }, + name: 'task_1' + } + ] + })raw_delimiter"); + auto inputOpMsg = mongo::OpMsgRequest::fromDBAndBody("todo", inputObj); + auto output = performRpc(client, inputOpMsg); + + ASSERT(output.getIntField("numIndexesAfter") == output.getIntField("numIndexesBefore") + 1); +} + TEST_F(MongodbCAPITest, TrimMemory) { // create the client object auto client = createClient(); diff --git a/src/mongo/client/embedded/replication_coordinator_embedded.cpp b/src/mongo/client/embedded/replication_coordinator_embedded.cpp index affd8a085ba..2667506d914 100644 --- a/src/mongo/client/embedded/replication_coordinator_embedded.cpp +++ b/src/mongo/client/embedded/replication_coordinator_embedded.cpp @@ -129,6 +129,10 @@ WriteConcernOptions ReplicationCoordinatorEmbedded::populateUnsetWriteConcernOpt return writeConcern; } +bool ReplicationCoordinatorEmbedded::buildsIndexes() { + return true; +} + OpTime ReplicationCoordinatorEmbedded::getCurrentCommittedSnapshotOpTime() const { UASSERT_NOT_IMPLEMENTED; } @@ -328,10 +332,6 @@ Status ReplicationCoordinatorEmbedded::processReplSetUpdatePosition(const Update UASSERT_NOT_IMPLEMENTED; } -bool ReplicationCoordinatorEmbedded::buildsIndexes() { - UASSERT_NOT_IMPLEMENTED; -} - std::vector<HostAndPort> ReplicationCoordinatorEmbedded::getHostsWrittenTo(const OpTime&, bool) { UASSERT_NOT_IMPLEMENTED; } diff --git a/src/mongo/client/embedded/replication_coordinator_embedded.h b/src/mongo/client/embedded/replication_coordinator_embedded.h index 6e6e9368936..8ebd438ea46 100644 --- a/src/mongo/client/embedded/replication_coordinator_embedded.h +++ b/src/mongo/client/embedded/replication_coordinator_embedded.h @@ -83,6 +83,7 @@ public: WriteConcernOptions populateUnsetWriteConcernOptionsSyncMode(WriteConcernOptions wc) override; + bool buildsIndexes() override; // Not implemented members that should not be called. Will assert or invariant. @@ -176,8 +177,6 @@ public: Status processReplSetUpdatePosition(const repl::UpdatePositionArgs&, long long*) override; - bool buildsIndexes() override; - std::vector<HostAndPort> getHostsWrittenTo(const repl::OpTime&, bool) override; std::vector<HostAndPort> getOtherNodesInReplSet() const override; |