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)