Hector: hector-core-1.0-5 Cassandra-1.1.2
I need to model a query in Hector like:
select * from table1 where rowkey='x' and secondary_indexed_column='y'
If I use an IndexedSliceQuery with setStartKey set to rowKey 'x', I still get all rows containing secondary_indexed_column='y'. If I add the row_key field in addEqualsExpression("row_key",'x'), I get the following exception:
org.apache.thrift.protocol.TProtocolException: Required field 'value' was not present! Struct: IndexExpression(column_name:64 65 76 69 63 65 5F 69 64, op:EQ, value:null)
at org.apache.cassandra.thrift.IndexExpression.validate(IndexExpression.java:562)
at org.apache.cassandra.thrift.IndexExpression.write(IndexExpression.java:499)
at org.apache.cassandra.thrift.IndexClause.write(IndexClause.java:521)
at org.apache.cassandra.thrift.Cassandra$get_indexed_slices_args.write(Cassandra.java:13469)
at org.apache.cassandra.thrift.Cassandra$Client.send_get_indexed_slices(Cassandra.java:793)
at org.apache.cassandra.thrift.Cassandra$Client.get_indexed_slices(Cassandra.java:781)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl$19.execute(KeyspaceServiceImpl.java:732)
So, how do I restrict my indexedSliceQuery to return the result only for the given row key?