You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yc...@apache.org on 2021/01/28 20:34:01 UTC

[cassandra] 01/03: test to demonstrate cqlsh DDL fails with the names

This is an automated email from the ASF dual-hosted git repository.

ycai pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 68fd9abfe5186262ce1a2cabccd1af5bb2ef75fa
Author: yifan-c <yc...@apache.org>
AuthorDate: Thu Jan 28 10:46:07 2021 -0800

    test to demonstrate cqlsh DDL fails with the names
---
 .../apache/cassandra/tools/cqlsh/CqlshTest.java    | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/test/unit/org/apache/cassandra/tools/cqlsh/CqlshTest.java b/test/unit/org/apache/cassandra/tools/cqlsh/CqlshTest.java
index 4e6dd20..89ff055 100644
--- a/test/unit/org/apache/cassandra/tools/cqlsh/CqlshTest.java
+++ b/test/unit/org/apache/cassandra/tools/cqlsh/CqlshTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.cassandra.tools.cqlsh;
 
+import java.util.Arrays;
+import java.util.List;
+
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -28,6 +31,7 @@ import org.hamcrest.CoreMatchers;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 public class CqlshTest extends CQLTester
 {
@@ -44,4 +48,29 @@ public class CqlshTest extends CQLTester
         assertThat(tool.getCleanedStderr(), CoreMatchers.containsStringIgnoringCase("No keyspace has been specified"));
         assertEquals(2, tool.getExitCode());
     }
+
+    @Test
+    public void testUseUnreservedKeywordAsColumnName()
+    {
+        List<String> names = Arrays.asList("access", "datacenters");
+        for (String name : names)
+        {
+            testUseUnreservedKeywordAsColumnName(name);
+            testUseUnreservedKeywordAsColumnName(name.toUpperCase());
+        }
+    }
+
+    private void testUseUnreservedKeywordAsColumnName(String unreservedKeyword)
+    {
+        String createTableFormat = "CREATE TABLE %s.\"test_%s\" ( foo text PRIMARY KEY, \"%s\" text);";
+        ToolResult tool = ToolRunner.invokeCqlsh(String.format(createTableFormat, KEYSPACE_PER_TEST, unreservedKeyword, unreservedKeyword));
+        assertCqlshNoStderr(tool);
+        assertEquals("Create table failed", 0, tool.getExitCode());
+    }
+
+    private static void assertCqlshNoStderr(ToolResult toolResult)
+    {
+        String stderr = toolResult.getCleanedStderr();
+        assertTrue("Cqlsh failed: " + stderr, stderr.isEmpty());
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org