[ https://issues.apache.org/jira/browse/CASSANDRA-9606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653664#comment-14653664 ]
Sam Tunnicliffe commented on CASSANDRA-9606: -------------------------------------------- Sorry this review has taken so long, it fell behind a couple of other tasks in my backlog and then this is a particularly esoteric corner of the code (though thankfully it does get clearer in later branches). I just have a few remarks: In all three patches, there are changes to how partition key restrictions are handled; explictly in the 2.0 & 2.1 patches in {{SelectStatement#updateRestrictionsForRelation}} and implicitly (I think) in 2.2, but there aren't any new or updated tests that cover a change in behaviour. Is it possible to add some? In the 2.0 and 2.1 patches, {{SelectStatement#updateSingleColumnRestriction}} had me scratching my head for a while, maybe a comment on the new check at line 1945/1953 might help clarify what's going on there. Nits (can be fixed on commit) In the 2.1 patch, there's an unused import in {{Restriction}} (it isn't new, but may as well remove it) In the 2.2 patch indentation error in {{MultiColumnRestriction.Slice}} where the private modifier has been removed The merge from 2.2 to trunk after applying the 2.2 patch generates a few conflicts, but they're reasonably straightforward to resolve so I don't think there's any need for a 3.0 specific patch. > this query is not supported in new version > ------------------------------------------ > > Key: CASSANDRA-9606 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9606 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: cassandra 2.1.6 > jdk 1.7.0_55 > Reporter: zhaoyan > Assignee: Benjamin Lerer > Attachments: 9606-2.0.txt, 9606-2.1.txt, 9606-2.2.txt > > > Background: > 1、create a table: > {code} > CREATE TABLE test ( > a int, > b int, > c int, > d int, > PRIMARY KEY (a, b, c) > ); > {code} > 2、query by a=1 and b<6 > {code} > select * from test where a=1 and b<6; > a | b | c | d > ---+---+---+--- > 1 | 3 | 1 | 2 > 1 | 3 | 2 | 2 > 1 | 3 | 4 | 2 > 1 | 3 | 5 | 2 > 1 | 4 | 4 | 2 > 1 | 5 | 5 | 2 > (6 rows) > {code} > 3、query by page > first page: > {code} > select * from test where a=1 and b<6 limit 2; > a | b | c | d > ---+---+---+--- > 1 | 3 | 1 | 2 > 1 | 3 | 2 | 2 > (2 rows) > {code} > second page: > {code} > select * from test where a=1 and b<6 and (b,c) > (3,2) limit 2; > a | b | c | d > ---+---+---+--- > 1 | 3 | 4 | 2 > 1 | 3 | 5 | 2 > (2 rows) > {code} > last page: > {code} > select * from test where a=1 and b<6 and (b,c) > (3,5) limit 2; > a | b | c | d > ---+---+---+--- > 1 | 4 | 4 | 2 > 1 | 5 | 5 | 2 > (2 rows) > {code} > question: > this query by page is ok when cassandra 2.0.8. > but is not supported in the latest version 2.1.6 > when execute: > {code} > select * from test where a=1 and b<6 and (b,c) > (3,2) limit 2; > {code} > get one error message: > InvalidRequest: code=2200 [Invalid query] message="Column "b" cannot have > both tuple-notation inequalities and single-column inequalities: (b, c) > (3, > 2)" -- This message was sent by Atlassian JIRA (v6.3.4#6332)