[
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