diff options
Diffstat (limited to 'jstests/core/indexOtherNamespace.js')
-rw-r--r-- | jstests/core/indexOtherNamespace.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/jstests/core/indexOtherNamespace.js b/jstests/core/indexOtherNamespace.js new file mode 100644 index 00000000000..7df55188606 --- /dev/null +++ b/jstests/core/indexOtherNamespace.js @@ -0,0 +1,27 @@ +// SERVER-8814: Test that only the system.indexes namespace can be used to build indexes. + +var otherDB = db.getSiblingDB("indexOtherNS"); +otherDB.dropDatabase(); + +otherDB.foo.insert({a:1}) +assert.eq(1, otherDB.system.indexes.count()); +assert.eq("BasicCursor", otherDB.foo.find({a:1}).explain().cursor); + +if (db.getMongo().writeMode() == 'commands') { + assert.throws(function() { + otherDB.randomNS.system.indexes.insert({ ns: "indexOtherNS.foo", + key: { a: 1}, name: "a_1" }); + }); +} +else { + assert.writeError(otherDB.randomNS.system.indexes.insert({ ns: "indexOtherNS.foo", + key: { a: 1 }, name: "a_1"})); +} + + + +// Assert that index didn't actually get built +assert.eq(1, otherDB.system.indexes.count()); +assert.eq(null, otherDB.system.namespaces.findOne({name : "indexOtherNS.foo.$a_1"})); +assert.eq("BasicCursor", otherDB.foo.find({a:1}).explain().cursor); +otherDB.dropDatabase(); |