[ https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080518#comment-13080518 ]
Paul Joseph Davis commented on COUCHDB-1228: -------------------------------------------- @Jason, Looks pretty good. Though I'd implement collation_for_view slightly differently: collationv_for_view({reduce, _N, _Lang, View}) -> collation_for_view(View); collation_for_view(View) -> fun(A, B) -> couch_btree:less(View#view.btree, A, B) end. You'll need to export couch_btree:less, but that's no biggy. I think this should simplify the rest of the collation logic further down. Only tricky thing is for _all_docs to just remember and pass fun(A, B) -> A < B end. instead of raw as the Collation thing. > Key range error apparently ignores view collation > ------------------------------------------------- > > Key: COUCHDB-1228 > URL: https://issues.apache.org/jira/browse/COUCHDB-1228 > Project: CouchDB > Issue Type: Bug > Components: HTTP Interface > Affects Versions: 1.1 > Environment: Debian > Reporter: Victor Nicollet > Fix For: 1.1.1 > > Attachments: 0001-Whitespace-and-comment-clarification.patch, > 0002-Unit-tests-for-proper-key-range-support-during-raw-c.patch, > 0003-Support-correct-key-range-semantics-for-raw-collatio.patch, > trunk.0001-Whitespace-and-comment-clarification.patch, > trunk.0002-Unit-tests-for-proper-key-range-support-during-raw-c.patch, > trunk.0003-Support-correct-key-range-semantics-for-raw-collatio.patch > > > I have created a view (no reduce function) with "options":{"collation":"raw"} > and emit documents with keys "A", "C" and "b". Running a request on that view > with no parameters, I get as expected all three documents in order "A", "C" > and "b" as required by the raw collation (instead of "A", "b", "C" for the > default ICU collation). > However, when I run a request with start key "B" and end key "a", I expect > the "C" document to be returned alone (as "B" < "C" < "a") but couchDB > responds: > { "error": "query_parse_error", "reason": "No rows can match your key range, > reverse your start_key and end_key or set descending=true" } > This error would make sense if I had been using the default ICU collation, > where "B" > "a", but with the raw collation the reverse ("B" > "a") is true. > It looks as if the key order warning does not take the view collation into > account. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira