-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 2.5.4
-
Component/s: Index Maintenance
-
None
-
ALL
With float and booleans, the value is used as-is and also incorporated into the name. I would expect to see validation that the ordering be either negative or positive one (either an integer or float). I also found that invalid index orderings (e.g. the ORLY object below, and strings like "not2d") are simply ignored (reported separately in SERVER-12540).
> db.foo.ensureIndex({a:4.5}) > db.foo.ensureIndex({a:-4.5}) > db.foo.ensureIndex({a:true}) > db.foo.ensureIndex({a:false}) > db.foo.ensureIndex({a:{ORLY:"YARLY"}}) > db.foo.getIndexes() [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test.foo" }, { "v" : 1, "key" : { "a" : 4.5 }, "name" : "a_4.5", "ns" : "test.foo" }, { "v" : 1, "key" : { "a" : -4.5 }, "name" : "a_-4.5", "ns" : "test.foo" }, { "v" : 1, "key" : { "a" : true }, "name" : "a_true", "ns" : "test.foo" }, { "v" : 1, "key" : { "a" : false }, "name" : "a_false", "ns" : "test.foo" } ]
And build info:
> db.runCommand('buildInfo') { "version" : "2.5.5-pre-", "gitVersion" : "92cf0713b74ce2f8b011e6768a66c4e99d75a8ea", "OpenSSLVersion" : "", "sysInfo" : "Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49", "loaderFlags" : "-fPIC -pthread -Wl,-z,now -rdynamic", "compilerFlags" : "-Wnon-virtual-dtor -Woverloaded-virtual -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -Werror -pipe -O3 -Wno-unused-function -Wno-deprecated-declarations -fno-builtin-memcmp", "allocator" : "tcmalloc", "versionArray" : [ 2, 5, 5, -100 ], "javascriptEngine" : "V8", "bits" : 64, "debug" : false, "maxBsonObjectSize" : 16777216, "ok" : 1 }
The above was the latest nightly found on http://www.mongodb.org/downloads. All commits to master since that commit are: https://github.com/mongodb/mongo/compare/92cf0713b74ce2f8b011e6768a66c4e99d75a8ea...master
In particular, https://github.com/mongodb/mongo/commit/4ae262e2715092700e8fab73eb0b2bea1a119a3b (createIndexes command for SERVER-1627) did not exist in the build I tested with; however, hari.khalsa@10gen.com seemed to think that this sort of validation should have been in place for some time now.
- duplicates
-
SERVER-11064 Stricter validation of index key patterns during index creation and startup
- Closed
- is related to
-
SERVER-13383 IndexCatalog should forbid creation of index with multiple special types
- Closed
- related to
-
SERVER-12540 GLE doesn't set error for failed index builds
- Closed