Thanks Sylvain.. Regards, Dinusha.
On Thu, Jan 31, 2013 at 2:47 PM, Sylvain Lebresne <sylv...@datastax.com>wrote: > birth_year is secondary indexed. When querying using 2nd indexes, > Cassandra (it's not CQL specific) requires that you use an '=' for at least > one of the indexed column in the where clause (in your example you only > have one such column so it should be an '='). This is a limitation of > 2ndary indexes (that will hopefully be lifted someday - > https://issues.apache.org/jira/browse/CASSANDRA-4476). > > In other words, what you can do is: > select * from users where birth_year = 1965 > but your query is not supported (for 2nd indexes that is). > > -- > Sylvain > > > On Thu, Jan 31, 2013 at 7:22 AM, Dinusha Dilrukshi <sdddilruk...@gmail.com > > wrote: > >> Hi All, >> >> I have created a column family as follows. (With secondary indexes.) >> >> create column family users with comparator=UTF8Type and >> key_validation_class = 'UTF8Type' and default_validation_class = 'UTF8Type' >> and column_metadata=[{column_name: full_name, validation_class: >> UTF8Type}, >> {column_name: birth_year, validation_class: LongType, index_type: KEYS}, >> {column_name: state, validation_class: UTF8Type, index_type: KEYS}]; >> >> And I am using CQL driver-1.1.1 with Cassandra server-1.1.1. Once I try >> to execute the following query, it gives an exception saying 'No indexed >> columns present in by-columns clause with "equals" operator'. >> >> CQL : >> select * from users where birth_year<1965 >> >> Caused by: java.sql.SQLSyntaxErrorException: No indexed columns present >> in by-columns clause with "equals" operator >> at >> org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPreparedStatement.java:155) >> at >> org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.executeQuery(CassandraPreparedStatement.java:199) >> >> Appreciate any help to resolve this.. >> >> Regards, >> Dinusha. >> > >