38 lines
948 B
JavaScript
38 lines
948 B
JavaScript
/**
|
|
* Regression test confirming unique index constraints are upheld. See SERVER-58943 for details.
|
|
*
|
|
* @tags: [
|
|
* cannot_create_unique_index_when_using_hashed_shard_key,
|
|
* does_not_support_transactions
|
|
* ]
|
|
*/
|
|
(function() {
|
|
"use strict";
|
|
const dbName = "unique_index_insert";
|
|
const collName = "test";
|
|
const testDB = db.getSiblingDB("unique_index_insert");
|
|
|
|
testDB[collName].drop();
|
|
const coll = testDB[collName];
|
|
|
|
assert.commandWorked(coll.createIndex({i: 1, x: -1}, {unique: true}));
|
|
|
|
const n = 100;
|
|
const xStr = "x".repeat(50000);
|
|
|
|
const bulk = coll.initializeUnorderedBulkOp();
|
|
for (let i = 0; i < n; i++) {
|
|
bulk.insert({i, x: xStr});
|
|
}
|
|
assert.commandWorked(bulk.execute());
|
|
|
|
assert.eq(coll.find().itcount(), 100);
|
|
|
|
const maxIters = 2;
|
|
for (let iter = 0; iter < maxIters; iter++) {
|
|
for (let i = 0; i < n; i++) {
|
|
assert.commandFailed(coll.insert({i, x: xStr}), `Failed with i ${i}, iter ${iter}`);
|
|
}
|
|
}
|
|
}());
|