Sylvain Lebresne created CASSANDRA-7281:
-------------------------------------------

             Summary: SELECT on tuple relations are broken for mixed ASC/DESC 
clustering order
                 Key: CASSANDRA-7281
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7281
             Project: Cassandra
          Issue Type: Bug
            Reporter: Sylvain Lebresne
             Fix For: 2.0.9


As noted on 
[CASSANDRA-6875|https://issues.apache.org/jira/browse/CASSANDRA-6875?focusedCommentId=13992153&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13992153],
 the tuple notation is broken when the clustering order mixes ASC and DESC 
directives because the range of data they describe don't correspond to a single 
continuous slice internally. To copy the example from CASSANDRA-6875:
{noformat}
cqlsh:ks> create table foo (a int, b int, c int, PRIMARY KEY (a, b, c)) WITH 
CLUSTERING ORDER BY (b DESC, c ASC);
cqlsh:ks> INSERT INTO foo (a, b, c) VALUES (0, 2, 0);
cqlsh:ks> INSERT INTO foo (a, b, c) VALUES (0, 1, 0);
cqlsh:ks> INSERT INTO foo (a, b, c) VALUES (0, 1, 1);
cqlsh:ks> INSERT INTO foo (a, b, c) VALUES (0, 0, 0);
cqlsh:ks> SELECT * FROM foo WHERE a=0;

 a | b | c
---+---+---
 0 | 2 | 0
 0 | 1 | 0
 0 | 1 | 1
 0 | 0 | 0

(4 rows)

cqlsh:ks> SELECT * FROM foo WHERE a=0 AND (b, c) > (1, 0);

 a | b | c
---+---+---
 0 | 2 | 0

(1 rows)
{noformat}
The last query should really return {{(0, 2, 0)}} and {{(0, 1, 1)}}.

For that specific example we should generate 2 internal slices, but I believe 
that with more clustering columns we may have more slices.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to