You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2020/09/29 20:38:57 UTC

[couchdb] 01/01: Use JSON collation

This is an automated email from the ASF dual-hosted git repository.

davisp pushed a commit to branch fdb-btree-reduce-davisp
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit ecb067ba1a2b32a1d6a5a210d496664adedd55ce
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Tue Sep 29 09:56:19 2020 -0500

    Use JSON collation
---
 src/couch_views/src/couch_views_reduce_fdb.erl | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/couch_views/src/couch_views_reduce_fdb.erl b/src/couch_views/src/couch_views_reduce_fdb.erl
index a5cb905..8ea2061 100644
--- a/src/couch_views/src/couch_views_reduce_fdb.erl
+++ b/src/couch_views/src/couch_views_reduce_fdb.erl
@@ -193,11 +193,18 @@ open_tree(TxDb, Sig, ViewId, ViewReduceFun) ->
 
     TreeOpts = [
         {reduce_fun, get_reducer(ViewReduceFun)},
+        {collate_fun, fun less_json_rows/2},
         {encode_fun, EncodeFun}
     ],
     ebtree:open(Tx, ReduceIdxPrefix, btree_order_size(), TreeOpts).
 
 
+less_json_rows({_, _} = A, {_, _} = B) ->
+    couch_ejson_compare:less_json_ids(A, B);
+less_json_rows(A, B) ->
+    couch_ejson_compare:less_json(A, B).
+
+
 delete_keys(Tx, Tree, DocId, Keys) ->
     lists:foreach(fun (Key) ->
         EK = create_key(Key, DocId),