Updated Branches: refs/heads/trunk dda7b2b43 -> e1d60f619
cli: Quote ks and cf names in schema output when needed patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-5052 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fa29f412 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fa29f412 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fa29f412 Branch: refs/heads/trunk Commit: fa29f412b1b1790fe46e60c903471e9271611db1 Parents: 4260413 Author: Aleksey Yeschenko <alek...@apache.org> Authored: Sun Mar 24 17:57:36 2013 +0300 Committer: Aleksey Yeschenko <alek...@apache.org> Committed: Sun Mar 24 17:57:36 2013 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/cli/CliClient.java | 6 +++--- src/java/org/apache/cassandra/cli/CliUtils.java | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa29f412/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index b4fdd1d..010bdc0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -9,6 +9,7 @@ * cqlsh: Add inet type support on Windows (ipv4-only) (CASSANDRA-4801) * Fix race when initializing ColumnFamilyStore (CASSANDRA-5350) * Add UseTLAB JVM flag (CASSANDRA-5361) + * cli: Quote ks and cf names in schema output when needed (CASSANDRA-5052) 1.1.10 http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa29f412/src/java/org/apache/cassandra/cli/CliClient.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java index a7e8d92..0f97b7f 100644 --- a/src/java/org/apache/cassandra/cli/CliClient.java +++ b/src/java/org/apache/cassandra/cli/CliClient.java @@ -1659,7 +1659,7 @@ public class CliClient */ private void showKeyspace(PrintStream output, KsDef ksDef) { - output.append("create keyspace ").append(ksDef.name); + output.append("create keyspace ").append(CliUtils.maybeEscapeName(ksDef.name)); writeAttr(output, true, "placement_strategy", normaliseType(ksDef.strategy_class, "org.apache.cassandra.locator")); @@ -1682,7 +1682,7 @@ public class CliClient output.append(";").append(NEWLINE); output.append(NEWLINE); - output.append("use " + ksDef.name + ";"); + output.append("use " + CliUtils.maybeEscapeName(ksDef.name) + ";"); output.append(NEWLINE); output.append(NEWLINE); @@ -1701,7 +1701,7 @@ public class CliClient */ private void showColumnFamily(PrintStream output, CfDef cfDef) { - output.append("create column family ").append(CliUtils.escapeSQLString(cfDef.name)); + output.append("create column family ").append(CliUtils.maybeEscapeName(cfDef.name)); writeAttr(output, true, "column_type", cfDef.column_type); writeAttr(output, false, "comparator", normaliseType(cfDef.comparator_type, "org.apache.cassandra.db.marshal")); http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa29f412/src/java/org/apache/cassandra/cli/CliUtils.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cli/CliUtils.java b/src/java/org/apache/cassandra/cli/CliUtils.java index a8e883b..fd1bd40 100644 --- a/src/java/org/apache/cassandra/cli/CliUtils.java +++ b/src/java/org/apache/cassandra/cli/CliUtils.java @@ -50,6 +50,12 @@ public class CliUtils // single quotes are not escaped in java, need to be for cli return StringEscapeUtils.escapeJava(b).replace("\'", "\\'"); } + + public static String maybeEscapeName(String name) + { + return name.charAt(0) == '_' ? "\'" + name + "\'" : name; + } + /** * Returns IndexOperator from string representation * @param operator - string representing IndexOperator (=, >=, >, <, <=)