According to this blog:
http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause

I should be able to do multi-column restrictions on clustering columns, as
in the blog example: WHERE (server, time) >= (‘196.8.0.0’, 12:00) AND
(server, time) <= (‘196.8.255.255’, 14:00)

However, I am getting data returned from such query that does not match the
restrictions. Tried on Cassandra 2.17 and 2.2.3. Here's an example:

CREATE TABLE IF NOT EXISTS dur (
    s      text,
    nd     bigint,
    ts     bigint,
    tid    bigint,
    PRIMARY KEY (s, nd, ts)
) WITH CLUSTERING ORDER BY (nd ASC, ts DESC);

insert INTO dur (s, nd, ts, tid) values ('x', 1, 10, 99);
insert INTO dur (s, nd, ts, tid) values ('x', 2, 11, 98) ;
insert INTO dur (s, nd, ts, tid) values ('x', 3, 10, 97) ;
insert INTO dur (s, nd, ts, tid) values ('x', 1, 11, 96) ;
insert INTO dur (s, nd, ts, tid) values ('x', 1, 12, 95) ;
insert INTO dur (s, nd, ts, tid) values ('x', 2, 10, 94) ;
insert INTO dur (s, nd, ts, tid) values ('x', 2, 12, 93) ;
insert INTO dur (s, nd, ts, tid) values ('x', 3, 11, 92) ;
insert INTO dur (s, nd, ts, tid) values ('x', 3, 12, 91) ;

select * from dur where s='x' and (nd,ts) > (2, 11);

 s | nd | ts | tid
---+----+----+-----
 x |  2 | 10 |  94
 x |  3 | 12 |  91
 x |  3 | 11 |  92
 x |  3 | 10 |  97
(4 rows)

The first row in the result does not satisfy the restriction (nd,ts) > (2,
11). Am I doing something incorrectly?

Thanks,
--Yuri

Reply via email to