From 71e1219de71fe341316f8cab2f5faeea37ceff1e Mon Sep 17 00:00:00 2001 From: Benjamin Lerer Date: Tue, 9 Dec 2014 13:56:25 +0100 Subject: [PATCH] Throw correct exception when trying to bind a keyspace or table name patch by Benjamin Lerer; reviewed by Aleksey Yeschenko for CASSANDRA-6952 --- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/cql3/Cql.g | 1 + 2 files changed, 3 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 557331682c..7c89e6073d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 2.0.12: + * Throw correct exception when trying to bind a keyspace or table + name (CASSANDRA-6952) * Make HHOM.compact synchronized (CASSANDRA-8416) * cancel latency-sampling task when CF is dropped (CASSANDRA-8401) * don't block SocketThread for MessagingService (CASSANDRA-8188) diff --git a/src/java/org/apache/cassandra/cql3/Cql.g b/src/java/org/apache/cassandra/cql3/Cql.g index 43b1c01091..a80746c689 100644 --- a/src/java/org/apache/cassandra/cql3/Cql.g +++ b/src/java/org/apache/cassandra/cql3/Cql.g @@ -771,6 +771,7 @@ cfOrKsName[CFName name, boolean isKs] : t=IDENT { if (isKs) $name.setKeyspace($t.text, false); else $name.setColumnFamily($t.text, false); } | t=QUOTED_NAME { if (isKs) $name.setKeyspace($t.text, true); else $name.setColumnFamily($t.text, true); } | k=unreserved_keyword { if (isKs) $name.setKeyspace(k, false); else $name.setColumnFamily(k, false); } + | QMARK {addRecognitionError("Bind variables cannot be used for keyspace or table names");} ; constant returns [Constants.Literal constant]