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

Sylvain Lebresne updated CASSANDRA-3749:
----------------------------------------

    Attachment: 3749-v2.patch

bq. if we are splitting a Bounds on bounds.right, that means that remainder 
overlaps Bounds entirely and so we should add that to the ranges, but instead 
we skip it.

Not absolutely certain about the case you mean, but with an example: let say we 
have Bounds [3, 5]. And say that one of the token nodes is 5 (so we'll split on 
bounds.right). So if you split [3, 5] by 5, you're basically not splitting 
anything, since splitting would end up with [3, 5] and (5, 5], but (5, 5] is an 
empty range (as it happens, we do use allow creating (5, 5] and it means *all 
the ring*. That qualifies as weird honestly but that's the way it work. In any 
case, we shouldn't have split create such a range since it wouldn't be 
correct). So that's a case of the splitting not changing the input 
AbstractBounds and thus null is returned. In SP.GRR, when that happens, we 
simply skip to the next token. If for instance that next token (say 10) isn't 
contained in [3, 5], we'll just add [3, 5] at the end of the loop.

Attaching v2 that incorporates the comment tweaks, adds tests for SP.GRR for 
the two new classes and remove the now useless {{if remainder == null}} test at 
the end of the main loop of SP.GRR.
                
> Allow rangeSlice queries to be start/end inclusive/exclusive 
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-3749
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3749
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>             Fix For: 1.1
>
>         Attachments: 3749-comments.txt, 3749-v2.patch, 3749.patch
>
>
> Currently, given two keys k1 and k2, we can only do a rangeSlice on the 
> intervals (k1, k2] (Range) and [k1, k2] (Bounds). CQL goes around this 
> "manually", by querying one more row if the start is exclusive and removing 
> the start/end post-query if necessary. This doesn't work however with the new 
> option introduced by CASSANDRA-3742. So this ticket proposes to add support 
> (internally) for doing a rangeSlice for the intervals (k1, k2) an [k1, k2).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to