[ https://issues.apache.org/jira/browse/CASSANDRA-3349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-3349: -------------------------------------- Fix Version/s: 1.0.1 0.8.8 Assignee: Pavel Yaskevich We don't want to allow leaving it off, because we don't support scan-and-delete server-side. (And truncate is far more performant.) I'd rather fix by requiring the rest of the WHERE. > NPE on malformed CQL > -------------------- > > Key: CASSANDRA-3349 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3349 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.8.0 beta 2 > Reporter: paul cannon > Assignee: Pavel Yaskevich > Labels: lhf > Fix For: 0.8.8, 1.0.1 > > > It's not clear why, but the CQL grammar specification in Cql.g allows for an > empty WHERE clause on DELETE, i.e.: > {noformat} > DELETE FROM someCF WHERE; > {noformat} > When this is used, with or without a column list, it causes an NPE on the > node processing the CQL. Traceback on a recent 1.0.0 build: > {noformat} > ERROR [pool-2-thread-1] 2011-10-11 15:45:25,655 Cassandra.java (line 4082) > Internal error processing execute_cql_query > java.lang.NullPointerException > at > org.apache.cassandra.cql.CqlParser.deleteStatement(CqlParser.java:1994) > at org.apache.cassandra.cql.CqlParser.query(CqlParser.java:292) > at > org.apache.cassandra.cql.QueryProcessor.getStatement(QueryProcessor.java:984) > at > org.apache.cassandra.cql.QueryProcessor.process(QueryProcessor.java:500) > at > org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1268) > at > org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.process(Cassandra.java:4072) > at > org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889) > at > org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:680) > {noformat} > The CQL client gets an error with the message, "Internal application error". > It might be better to allow leaving off the "WHERE" as well as the condition, > to match SQL semantics, although fixing that probably won't solve this > problem. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira