You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Adam Masters (JIRA)" <ji...@apache.org> on 2013/08/15 17:27:47 UTC

[jira] [Updated] (CASSANDRA-5892) CqlConfigHelper.setInputWhereClauses() doesnt handle GT (>) comparators

     [ https://issues.apache.org/jira/browse/CASSANDRA-5892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Masters updated CASSANDRA-5892:
------------------------------------

    Description: 
When using CqlPagingRecordReader, specifying a custom where clause using CqlConfigHelper.setInputWhereClauses() throws an exception when a GT (>) comparator is used.

Exception:
java.lang.RuntimeException at org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:646) Caused by: InvalidRequestException(why:Invalid restrictions found on ts) at org.apache.cassandra.thrift.Cassandra$prepare_cql3_query_result.read(Cassandra.java:39567)

This is due to the paging mechanism inserting a GT comparator on the same composite key as the custom where clause, resulting in an invalid CQL statement. For example ("ts > '634926385000000000'" being the custom where clause):

SELECT * FROM "test_cf"
    WHERE token("key") = token( ? )  AND "ts" > ?
    AND ts > '634926385000000000' LIMIT 3 ALLOW FILTERING

  was:
When using CqlPagingRecordReader, specifying a custom where clause using CqlConfigHelper.setInputWhereClauses() throws an exception when a GT (>) comparator is used.

Exception:
java.lang.RuntimeException at org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:646) Caused by: InvalidRequestException(why:Invalid restrictions found on ts) at org.apache.cassandra.thrift.Cassandra$prepare_cql3_query_result.read(Cassandra.java:39567)

This is due to the paging mechanism inserting a GT comparator on the same composite key as the custom where clause, resulting in an invalid CQL statement. For example ("ts > '634926385000000000'" being the custom where clause):

SELECT * FROM "test_cf"
    WHERE token("key") = token(?)  AND "ts" > ?
    AND ts > '634926385000000000' LIMIT 3 ALLOW FILTERING

    
> CqlConfigHelper.setInputWhereClauses() doesnt handle GT (>) comparators
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-5892
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5892
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Hadoop
>            Reporter: Adam Masters
>            Priority: Minor
>             Fix For: 1.2.8
>
>
> When using CqlPagingRecordReader, specifying a custom where clause using CqlConfigHelper.setInputWhereClauses() throws an exception when a GT (>) comparator is used.
> Exception:
> java.lang.RuntimeException at org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:646) Caused by: InvalidRequestException(why:Invalid restrictions found on ts) at org.apache.cassandra.thrift.Cassandra$prepare_cql3_query_result.read(Cassandra.java:39567)
> This is due to the paging mechanism inserting a GT comparator on the same composite key as the custom where clause, resulting in an invalid CQL statement. For example ("ts > '634926385000000000'" being the custom where clause):
> SELECT * FROM "test_cf"
>     WHERE token("key") = token( ? )  AND "ts" > ?
>     AND ts > '634926385000000000' LIMIT 3 ALLOW FILTERING

--
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