diff options
Diffstat (limited to 'jstests/indexOtherNamespace.js')
-rw-r--r-- | jstests/indexOtherNamespace.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/jstests/indexOtherNamespace.js b/jstests/indexOtherNamespace.js new file mode 100644 index 00000000000..5bb7355ddb6 --- /dev/null +++ b/jstests/indexOtherNamespace.js @@ -0,0 +1,21 @@ +// SERVER-8814: Test that only the system.indexes namespace can be used to build indexes. + +function assertGLENotOK(status) { + assert(status.ok && status.err !== null, + "Expected not-OK status object; found " + tojson(status)); +} + +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); + +otherDB.randomNS.system.indexes.insert({ns:"indexOtherNS.foo", key:{a:1}, name:"a_1"}); +assertGLENotOK(otherDB.getLastErrorObj()); +// 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(); |