cassandra - Query fails with "com.datastax.driver.core.exceptions.InvalidQueryException: String didn't validate." -
i have table created this:
create table messages ( stream int, sequence int, timestamp bigint, message blob, primary key (stream, sequence) ) gc_grace_seconds = 0; running following query in cqlsh works fine:
select * messages stream = 1 , sequence >= 1 , sequence <= 100;
however, when try run same via java driver following exception:
com.datastax.driver.core.exceptions.invalidqueryexception: string didn't validate. @ com.datastax.driver.core.exceptions.invalidqueryexception.copy(invalidqueryexception.java:35) @ com.datastax.driver.core.resultsetfuture.extractcausefromexecutionexception(resultsetfuture.java:271) @ com.datastax.driver.core.resultsetfuture.getuninterruptibly(resultsetfuture.java:187) @ com.datastax.driver.core.session.execute(session.java:126) @ com.datastax.driver.core.session.execute(session.java:100) i'm using parameterized querying api:
public final string fetch_cql = "select stream, sequence, timestamp, message " + "from messages stream = ? , sequence >= ? , sequence <= ?"; session.execute(fetch_cql, integer.parseint(stream), integer.parseint(fromsequence), integer.parseint(tosequence)); what gives? overall setup works, have query working on different table.
thanks!
have tried adding ; end of query:
public final string fetch_cql = "select stream, sequence, timestamp, message " + "from messages stream = ? , sequence >= ? , sequence <= ?**;**"; another option use prepared statements:
preparedstatement fetch_ps = session.prepare(fetch_cql); boundstatement boundstatement = fetch_ps.bind(integer.parseint(stream), integer.parseint(fromsequence), integer.parseint(tosequence)); session.execute(boundstatement);
Comments
Post a Comment