[jira] [Commented] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Paul Joseph Davis (JIRA)

[ 
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




[jira] [Updated] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Jason Smith (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Smith updated COUCHDB-1228:
-

Attachment: 
trunk.0003-Support-correct-key-range-semantics-for-raw-collatio.patch

trunk.0002-Unit-tests-for-proper-key-range-support-during-raw-c.patch
trunk.0001-Whitespace-and-comment-clarification.patch

Original patches are against 1.1.x. Next patch set is against trunk.

> 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




[jira] [Updated] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Jason Smith (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Smith updated COUCHDB-1228:
-

Attachment: 0003-Support-correct-key-range-semantics-for-raw-collatio.patch
0002-Unit-tests-for-proper-key-range-support-during-raw-c.patch

Proposed patch with unit tests

> 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
>
>
> 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




[jira] [Updated] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Jason Smith (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Smith updated COUCHDB-1228:
-

Attachment: 0001-Whitespace-and-comment-clarification.patch

Prep for real work

> 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
>
>
> 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




[jira] [Commented] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Paul Joseph Davis (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080417#comment-13080417
 ] 

Paul Joseph Davis commented on COUCHDB-1228:


@Bob

Quite right. Though that code will have to poke into the design doc to handle 
that warning case. I'm not sure what _all_docs has to do with it. It only uses 
raw collation.

> 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
>
>
> 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




[jira] [Commented] (COUCHDB-1228) Key range error apparently ignores view collation

2011-08-06 Thread Bob Dionne (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080394#comment-13080394
 ] 

Bob Dionne commented on COUCHDB-1228:
-

Looks like the problem is in couch_httpd_view:warn_on_empty_key_range, it makes 
use of couch_view:less_json as the default instead of taking the collation 
option into account.

Shouldn't be too hard to fix in the view case but I'm not sure how to handle 
the case of _all_docs

> 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
>
>
> 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