Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 7872318d6 -> bc9a07939
  refs/heads/cassandra-3.X 720acc611 -> f5bc3784f
  refs/heads/trunk e66305de0 -> b51f7e259


Update reserved keyword list

Patch by Carl Yeksigian; reviewed by Alex Petrov for CASSANDRA-11803


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bc9a0793
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bc9a0793
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bc9a0793

Branch: refs/heads/cassandra-3.0
Commit: bc9a0793944f7dd481646c4014d13b844439906c
Parents: 7872318
Author: Carl Yeksigian <c...@apache.org>
Authored: Mon Oct 17 16:15:49 2016 -0400
Committer: Carl Yeksigian <c...@apache.org>
Committed: Mon Oct 17 16:15:49 2016 -0400

----------------------------------------------------------------------
 .../apache/cassandra/cql3/ReservedKeywords.java | 28 ++-----------
 .../cassandra/cql3/ReservedKeywordsTest.java    | 43 ++++++++++++++++++++
 2 files changed, 46 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bc9a0793/src/java/org/apache/cassandra/cql3/ReservedKeywords.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/ReservedKeywords.java 
b/src/java/org/apache/cassandra/cql3/ReservedKeywords.java
index 91b7e61..ee052a7 100644
--- a/src/java/org/apache/cassandra/cql3/ReservedKeywords.java
+++ b/src/java/org/apache/cassandra/cql3/ReservedKeywords.java
@@ -20,17 +20,18 @@ package org.apache.cassandra.cql3;
 
 import java.util.Set;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableSet;
 
 class ReservedKeywords
 {
-    private static final String[] reservedKeywords = new String[]
+    @VisibleForTesting
+    static final String[] reservedKeywords = new String[]
                                                      {
                                                      "SELECT",
                                                      "FROM",
                                                      "WHERE",
                                                      "AND",
-                                                     "KEY",
                                                      "ENTRIES",
                                                      "FULL",
                                                      "INSERT",
@@ -39,7 +40,6 @@ class ReservedKeywords
                                                      "LIMIT",
                                                      "USING",
                                                      "USE",
-                                                     "COUNT",
                                                      "SET",
                                                      "BEGIN",
                                                      "UNLOGGED",
@@ -61,8 +61,6 @@ class ReservedKeywords
                                                      "DROP",
                                                      "PRIMARY",
                                                      "INTO",
-                                                     "TIMESTAMP",
-                                                     "TTL",
                                                      "ALTER",
                                                      "RENAME",
                                                      "ADD",
@@ -81,27 +79,7 @@ class ReservedKeywords
                                                      "DESCRIBE",
                                                      "EXECUTE",
                                                      "NORECURSIVE",
-                                                     "ASCII",
-                                                     "BIGINT",
-                                                     "BLOB",
-                                                     "BOOLEAN",
-                                                     "COUNTER",
-                                                     "DECIMAL",
-                                                     "DOUBLE",
-                                                     "FLOAT",
-                                                     "INET",
-                                                     "INT",
-                                                     "SMALLINT",
-                                                     "TINYINT",
-                                                     "TEXT",
-                                                     "UUID",
-                                                     "VARCHAR",
-                                                     "VARINT",
-                                                     "TIMEUUID",
                                                      "TOKEN",
-                                                     "WRITETIME",
-                                                     "DATE",
-                                                     "TIME",
                                                      "NULL",
                                                      "NOT",
                                                      "NAN",

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bc9a0793/test/unit/org/apache/cassandra/cql3/ReservedKeywordsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ReservedKeywordsTest.java 
b/test/unit/org/apache/cassandra/cql3/ReservedKeywordsTest.java
new file mode 100644
index 0000000..aaf9824
--- /dev/null
+++ b/test/unit/org/apache/cassandra/cql3/ReservedKeywordsTest.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.cql3;
+
+import org.junit.Test;
+
+import junit.framework.Assert;
+import org.apache.cassandra.exceptions.SyntaxException;
+
+public class ReservedKeywordsTest
+{
+    @Test
+    public void testReservedWordsForColumns() throws Exception
+    {
+        for (String reservedWord : ReservedKeywords.reservedKeywords)
+        {
+            try
+            {
+                QueryProcessor.parseStatement(String.format("ALTER TABLE ks.t 
ADD %s TEXT", reservedWord));
+                Assert.fail(String.format("Reserved keyword %s should not have 
parsed", reservedWord));
+            }
+            catch (SyntaxException ignore)
+            {
+            }
+        }
+    }
+}

Reply via email to