You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Marc Zbyszynski (JIRA)" <ji...@apache.org> on 2015/08/04 00:39:05 UTC

[jira] [Created] (CASSANDRA-9970) CQL 3.3 ordering in where clause produces different results when using "IN...ORDER BY"

Marc Zbyszynski created CASSANDRA-9970:
------------------------------------------

             Summary: CQL 3.3 ordering in where clause produces different results when using "IN...ORDER BY"
                 Key: CASSANDRA-9970
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9970
             Project: Cassandra
          Issue Type: Bug
          Components: API
            Reporter: Marc Zbyszynski
            Priority: Minor


This is an issue I found with
{code}
[cqlsh 5.0.1 | Cassandra 2.2.0 | CQL spec 3.3.0 | Native protocol v4]
{code}

Given this table and data:

{code:sql}
cqlsh> CREATE TABLE myschema.in_test (
   ...     col_1 int,
   ...     col_2 int,
   ...     col_3 int,
   ...     PRIMARY KEY ((col_1, col_2), col_3)
   ... );
cqlsh> INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 1);
cqlsh> INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 2);
cqlsh> INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 13);
cqlsh> INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 2, 10);
cqlsh> INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 2, 11);
{code}

This query behaves as expected (as described in [http://docs.datastax.com/en/cql/3.3/cql/cql_using/useQueryIN.html])

{code:sql}
cqlsh> select * from myschema.in_test where col_1=1 and col_2 IN (1,2) order by col_3 desc;
InvalidRequest: code=2200 [Invalid query] message="Cannot page queries with both ORDER BY and a IN restriction on the partition key; you must either remove the ORDER BY or the IN and sort client side, or disable paging for this query"
{code}

But if you swap the order of the statements in the where clause, the query executes without error and doesn't totally honor the _order by_ clause:

{code:sql}
cqlsh> select * from myschema.in_test where col_2 IN (1,2) and col_1=1 order by col_3 desc;

 col_1 | col_2 | col_3
-------+-------+-------
     1 |     2 |    11
     1 |     2 |    10
     1 |     1 |    13
     1 |     1 |     2
     1 |     1 |     1

(5 rows)
{code}

Apologies in advance if this is working as intended, or I'm duplicating an existing issue. Also please let me know if you need any additional info.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)