summaryrefslogtreecommitdiff
path: root/jstests/sharding/updated_existing.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sharding/updated_existing.js')
-rw-r--r--jstests/sharding/updated_existing.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/jstests/sharding/updated_existing.js b/jstests/sharding/updated_existing.js
new file mode 100644
index 00000000000..bd03c535099
--- /dev/null
+++ b/jstests/sharding/updated_existing.js
@@ -0,0 +1,29 @@
+/**
+* SERVER-5872 : This test checks that the return message "updatedExisting" of
+* an upsert is not missing when autosplit takes place.
+*/
+
+var st = new ShardingTest({ shards : 1, mongos : 1, verbose : 1, chunksize : 1 });
+
+var testDB = st.getDB("test");
+var coll = "foo";
+testDB[coll].drop();
+
+st.adminCommand({ enablesharding : 'test' });
+st.adminCommand({ shardcollection : 'test.' + coll, key : { "shardkey2" : 1, "shardkey1" : 1 } });
+
+var bigString = "";
+while ( bigString.length < 1024 * 50 )
+ bigString += "asocsancdnsjfnsdnfsjdhfasdfasdfasdfnsadofnsadlkfnsaldknfsad";
+
+
+
+for (var i = 0; i < 10000; ++i) {
+ testDB[coll].update({ "shardkey1" : "test" + i, "shardkey2" : "test" + i },
+ { $set : { "test_upsert": bigString } },
+ true, // upsert
+ false); // multi
+ assert.eq(testDB.getLastErrorObj().updatedExisting, false);
+}
+
+st.stop();