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:31:48 UTC

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

    [ https://issues.apache.org/jira/browse/CASSANDRA-5892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13741068#comment-13741068 ] 

Adam Masters commented on CASSANDRA-5892:
-----------------------------------------

Ive written a custom method inside CqlPagingRecordReader to remove GT comparator statements from the custom where clauses when paging kicks in (on the same composite key). This has allowed me to configure jobs along the lines of: CqlConfigHelper.setInputWhereClauses(conf, "ts > '634926385000000000' and ts <= '634926438000000000'"); Let me know if you are interested in this code.
                
> 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