diff options
author | Will Holley <willholley@gmail.com> | 2017-11-28 11:30:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-28 11:30:14 +0000 |
commit | 27dcd6b3eb85017d4103c89182fd11f82d1a7752 (patch) | |
tree | 398375d8711d86db7e4441146de8695bf830fccd | |
parent | a406cc0b6f9ebd1e7aecd258b2b015daab9393e0 (diff) | |
download | couchdb-27dcd6b3eb85017d4103c89182fd11f82d1a7752.tar.gz |
Fix _explain for sort descending (#1025)
Handle the case when startkey and endkey
are reversed. To create valid JSON we need to
replace the internal representation of the startkey
with a string.
Fixes #1023
-rw-r--r-- | src/mango/src/mango_cursor_view.erl | 2 | ||||
-rw-r--r-- | src/mango/test/05-index-selection-test.py | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mango/src/mango_cursor_view.erl b/src/mango/src/mango_cursor_view.erl index 3fcec07be..7c57b1414 100644 --- a/src/mango/src/mango_cursor_view.erl +++ b/src/mango/src/mango_cursor_view.erl @@ -66,7 +66,7 @@ explain(Cursor) -> {include_docs, Args#mrargs.include_docs}, {view_type, Args#mrargs.view_type}, {reduce, Args#mrargs.reduce}, - {start_key, Args#mrargs.start_key}, + {start_key, maybe_replace_max_json(Args#mrargs.start_key)}, {end_key, maybe_replace_max_json(Args#mrargs.end_key)}, {direction, Args#mrargs.direction}, {stable, Args#mrargs.stable}, diff --git a/src/mango/test/05-index-selection-test.py b/src/mango/test/05-index-selection-test.py index f8cc82576..ef662a918 100644 --- a/src/mango/test/05-index-selection-test.py +++ b/src/mango/test/05-index-selection-test.py @@ -181,6 +181,14 @@ class IndexSelectionTests: self.db.save_doc(design_doc) + def test_explain_sort_reverse(self): + selector = { + "manager": {"$gt": None} + } + resp_explain = self.db.find(selector, fields=["manager"], sort=[{"manager":"desc"}], explain=True) + self.assertEqual(resp_explain["index"]["type"], "json") + + class JSONIndexSelectionTests(mango.UserDocsTests, IndexSelectionTests): @classmethod |