summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Holley <willholley@gmail.com>2017-11-28 11:30:14 +0000
committerGitHub <noreply@github.com>2017-11-28 11:30:14 +0000
commit27dcd6b3eb85017d4103c89182fd11f82d1a7752 (patch)
tree398375d8711d86db7e4441146de8695bf830fccd
parenta406cc0b6f9ebd1e7aecd258b2b015daab9393e0 (diff)
downloadcouchdb-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.erl2
-rw-r--r--src/mango/test/05-index-selection-test.py8
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