You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2013/09/18 15:18:56 UTC
[jira] [Updated] (CASSANDRA-6050) 'Internal application error' on
SELECT .. WHERE col1=val AND col2 IN (1,2)
[ https://issues.apache.org/jira/browse/CASSANDRA-6050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-6050:
----------------------------------------
Attachment: 6050.txt
We've apparently broken validation in 2.0 (1.2 is not affected): we don't support IN on non-primary key columns, even when there is an index (the only reason this work with only 1 element in the IN is that the code don't distinguish that from a EQ; that's probably a mistake in the first place, but for compatibility sake I think we should leave it that way). Attaching patch that fix the validation (I pushed a dtests too).
> 'Internal application error' on SELECT .. WHERE col1=val AND col2 IN (1,2)
> --------------------------------------------------------------------------
>
> Key: CASSANDRA-6050
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6050
> Project: Cassandra
> Issue Type: Bug
> Environment: cqlsh, pdo_cassandra
> Reporter: Sergey Nagaytsev
> Assignee: Sylvain Lebresne
> Labels: cql3
> Attachments: 6050.txt
>
>
> Query with error: SELECT * FROM user WHERE login='nsv' AND st IN ('1','2') ALLOW FILTERING;
> Query works:
> SELECT * FROM user WHERE login='nsv' AND st IN ('1') ALLOW FILTERING;
> -- Single item inside IN
> Table definition:
> CREATE COLUMNFAMILY user (
> KEY uuid PRIMARY KEY,
> name text,
> avatar text,
> email text,
> phone text,
> login text,
> pw text,
> st text
> );
> From /var/log/cassandra/output.log:
> ERROR 11:58:52,454 Internal error processing execute_cql3_query
> java.lang.AssertionError
> at org.apache.cassandra.cql3.statements.SelectStatement.getIndexExpressions(SelectStatement.java:749)
> at org.apache.cassandra.cql3.statements.SelectStatement.getRangeCommand(SelectStatement.java:303)
> at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:155)
> at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:56)
> at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:101)
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:117)
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:108)
> at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1920)
> at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4372)
> at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4356)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
> at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:724)
--
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