summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/planner_analysis_test.cpp
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2016-08-12 15:58:56 -0400
committerDavid Storch <david.storch@10gen.com>2016-08-18 11:14:17 -0400
commit26543060c852aac22f26143a04bf7789ec8fec53 (patch)
treedf3ae49e5c4745058be29b7ec8a8e4b528b50a9a /src/mongo/db/query/planner_analysis_test.cpp
parent13fa28982d008568f7620d73ddec0c61fad7cbc8 (diff)
downloadmongo-26543060c852aac22f26143a04bf7789ec8fec53.tar.gz
SERVER-24508 BSONObj::ComparatorInterface
BSONObj instances should now be compared via the comparator interface's evaluate() method. This preferred over using BSONObj::woCompare() directly. If the comparison doesn't require any database semantics (e.g. there is no collation), there is a global instance of the SimpleBSONObjComparator which should be used for BSONObj comparisons. If the comparison requires special semantics, then callers must instantiate their own comparator object.
Diffstat (limited to 'src/mongo/db/query/planner_analysis_test.cpp')
-rw-r--r--src/mongo/db/query/planner_analysis_test.cpp111
1 files changed, 60 insertions, 51 deletions
diff --git a/src/mongo/db/query/planner_analysis_test.cpp b/src/mongo/db/query/planner_analysis_test.cpp
index a47e6780787..d01f9b72dcb 100644
--- a/src/mongo/db/query/planner_analysis_test.cpp
+++ b/src/mongo/db/query/planner_analysis_test.cpp
@@ -41,63 +41,72 @@ using namespace mongo;
namespace {
TEST(QueryPlannerAnalysis, GetSortPatternBasic) {
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1}")));
- ASSERT_EQUALS(fromjson("{a: -1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1}")));
- ASSERT_EQUALS(fromjson("{a: 1, b: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1}")));
- ASSERT_EQUALS(fromjson("{a: 1, b: -1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: -1}")));
- ASSERT_EQUALS(fromjson("{a: -1, b: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: 1}")));
- ASSERT_EQUALS(fromjson("{a: -1, b: -1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: -1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1, b: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1, b: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: -1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1, b: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: 1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1, b: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: -1}")));
}
TEST(QueryPlannerAnalysis, GetSortPatternOtherElements) {
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 0}")));
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 100}")));
- ASSERT_EQUALS(fromjson("{a: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: Infinity}")));
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: true}")));
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: false}")));
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: []}")));
- ASSERT_EQUALS(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: {}}")));
-
- ASSERT_EQUALS(fromjson("{a: -1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: -100}")));
- ASSERT_EQUALS(fromjson("{a: -1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: -Infinity}")));
-
- ASSERT_EQUALS(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 0}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 100}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: Infinity}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: true}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: false}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: []}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: {}}")));
+
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -100}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -Infinity}")));
+
+ ASSERT_BSONOBJ_EQ(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{}")));
}
TEST(QueryPlannerAnalysis, GetSortPatternSpecialIndexTypes) {
- ASSERT_EQUALS(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'hashed'}")));
- ASSERT_EQUALS(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'text'}")));
- ASSERT_EQUALS(fromjson("{}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: '2dsphere'}")));
- ASSERT_EQUALS(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: ''}")));
- ASSERT_EQUALS(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'foo'}")));
-
- ASSERT_EQUALS(fromjson("{a: -1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: 'text'}")));
- ASSERT_EQUALS(fromjson("{a: -1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: '2dsphere'}")));
- ASSERT_EQUALS(fromjson("{a: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 'text'}")));
- ASSERT_EQUALS(fromjson("{a: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: '2dsphere'}")));
-
- ASSERT_EQUALS(fromjson("{a: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 'text', c: 1}")));
- ASSERT_EQUALS(fromjson("{a: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: '2dsphere',"
- " c: 1}")));
-
- ASSERT_EQUALS(fromjson("{a: 1, b: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1, c: 'text'}")));
- ASSERT_EQUALS(fromjson("{a: 1, b: 1}"),
- QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1, c: 'text',"
- " d: 1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'hashed'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'text'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: '2dsphere'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: ''}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{}"), QueryPlannerAnalysis::getSortPattern(fromjson("{a: 'foo'}")));
+
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: 'text'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: -1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: -1, b: '2dsphere'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 'text'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: '2dsphere'}")));
+
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 'text', c: 1}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: '2dsphere',"
+ " c: 1}")));
+
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1, b: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1, c: 'text'}")));
+ ASSERT_BSONOBJ_EQ(fromjson("{a: 1, b: 1}"),
+ QueryPlannerAnalysis::getSortPattern(fromjson("{a: 1, b: 1, c: 'text',"
+ " d: 1}")));
}
// Test the generation of sort orders provided by an index scan done by