cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-5457) Ordering is ignored when using 'CLUSTERING ORDER BY'
Date Fri, 12 Apr 2013 10:56:16 GMT

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

Sylvain Lebresne commented on CASSANDRA-5457:
---------------------------------------------

I'm afraid this has to do with the fact that clustering order doesn't do what you think. Namely,
it should just be seen as an "hint" to the storage engine that basically says "I will do most
of my queries with field1 in descending order so optimize for that". So in particular, it
doesn't give you any particular guarantee on the sort order of queries, you still have to
use ORDER BY in the query for that (and as it happens, you won't be allowed to order on 'field1'
unless you specify 'id' because we have no way to do that efficiently).

I'll not that if you did a query like:
{noformat}
SELECT * FROM reverse_sort_test WHERE id=0;
{noformat}
and that was returning multiple results, then those result would be ordered by descending
field1, while it would be in ascending order if you don't add the clustering order during
the definition. *But*, that's just CQL3 using the fact you haven't specify any ORDER BY for
your query to return the result in the order that is the easier.
                
> Ordering is ignored when using 'CLUSTERING ORDER BY' 
> -----------------------------------------------------
>
>                 Key: CASSANDRA-5457
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5457
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.4
>            Reporter: Patrick McFadin
>            Assignee: Sylvain Lebresne
>
> Creating the following table:
> create table reverse_sort_test (
> 	id int,
> 	field1 int,
> 	field2 int
> 	PRIMARY KEY (id, field1, field2)
> ) WITH CLUSTERING ORDER BY (field1 DESC);
> I would expect field1 to be reverse ordered. 
> Inserting this data:
> insert into reverse_sort_test (id,field1,field2) values (1,1,1);
> insert into reverse_sort_test (id,field1,field2) values (3,3,3);
> insert into reverse_sort_test (id,field1,field2) values (2,2,2);
> insert into reverse_sort_test (id,field1,field2) values (4,4,4);
> insert into reverse_sort_test (id,field1,field2) values (6,6,6);
> insert into reverse_sort_test (id,field1,field2) values (5,5,5);
> And running a select:
> select * from reverse_sort_test;
>  id | field1 | field2
> ----+--------+--------
>   5 |      5 |      5
>   1 |      1 |      1
>   2 |      2 |      2
>   4 |      4 |      4
>   6 |      6 |      6
>   3 |      3 |      3
> The order looks random.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message