cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-6950) Secondary index query fails with tc range query when ordered by DESC
Date Tue, 06 May 2014 13:21:15 GMT


Sylvain Lebresne updated CASSANDRA-6950:

    Attachment: 6950.txt

The problem is that when the 2ndary code checks if an indexed row satisfies the extra filters
(so {{tc>0}} in the example of the description), it does so (in {{ExtendedFilter.isSatisfiedBy}})
using the underlying reverse comparator (so it check if the {{tc}} value is greated than 0
in reverse order, i.e. if {{tc}} is negative basically).

As far as CQL3 goes we could fix it in {{ExtendedFilter.isSatisfiedBy}} by check for ReversedType
and ignoring it since the IndexExpression are really refering to the non-reverse order, but
I guess that would break thrift. So attaching a patch that just reverse the IndexExpression
in the first place in SelectStatement.

> Secondary index query fails with tc range query when ordered by DESC
> --------------------------------------------------------------------
>                 Key: CASSANDRA-6950
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: RHEL 6.3 virtual guest, apache-cassandra-2.0.6-SNAPSHOT-src.tar.gz
from build #284 (also tried with 2.0.5 with CASSANDRA-6666 patch custom-applied with same
>            Reporter: Andre Campeau
>            Assignee: Sylvain Lebresne
>             Fix For: 2.0.8
>         Attachments: 6950.txt
>     create table test4 ( name text, lname text, tc bigint, record text, PRIMARY KEY ((name,
lname), tc)) WITH CLUSTERING ORDER BY (tc DESC) AND compaction={'class': 'LeveledCompactionStrategy'};
>     create index test4_index ON test4(lname);
> Populate it with some data and non-zero tc values, then try:
>     select * from test4 where lname='blah' and tc>0 allow filtering;
> And, (0 rows) returned, even though there are rows which should be found.
> When I create the table using CLUSTERING ORDER BY (tc ASC), the above query works. Rows
are correctly returned based on the range check.
> Tried various combinations but with descending order on tc nothing works.

This message was sent by Atlassian JIRA

View raw message