I see "The CompareWith attribute tells Cassandra how to sort the columns for slicing operations." on wiki (http://wiki.apache.org/cassandra/StorageConfiguration). So the CompareWith defines how to sort column (or super-columns) in scope of one row. So this option is relate to (multi)get_slice operation.

I'm not sure if you can retrieve sorted rows. The only way how to get more rows is "get_range_slices" method (and "get_indexed_slices") and there is no sorting.


2011/2/18 cbertu81@libero.it <cbertu81@libero.it>
Hi all,
I created a CF in which i need to get, sorted by time, the Rows inside. Each
Row represents a comment.

<ColumnFamily name="Comments" compareWith="TimeUUIDType" / >

I've created a few rows using as Row Key a generated TimeUUID but when I call
the Pelops method "GetColumnsFromRows" I don't get the data back as I expect:
rows are not sorted by TimeUUID.
I though it was probably cause of the random-part of the TimeUUID so I create
a new CF ...

<ColumnFamily name="Comments2" compareWith="LongType" / >

This time I created a few rows using the java System.CurrentTimeMillis() that
retrieve a long. I call again the "GetColumnsFromRows" and again the same
results: data are not sorted!
I've read many times that Rows are sorted as specified in the compareWith but
I can't see it.
To solve this problem for the moment I've used a SuperColumnFamily with an
UNIQUE ROW ... but I think this is just a workaround and not the solution.

<ColumnFamily name="Comments" type="Super" compareWith="TimeUUIDType"
CompareSubcolumnsWith="BytesType"/ >

Now when I call the "GetSuperColumnsFromRow" I get all the SuperColumns as I
expected: sorted by TimeUUID. Why it does not happen the same with the Rows?
I'm confused.

TIA for any help.

Best Regards