diff --git a/CHANGES.txt b/CHANGES.txt index 8d15f6c682..205b9f7d6b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -30,6 +30,7 @@ Merged from 1.2: * Optimize FD phi calculation (CASSANDRA-6386) * Improve initial FD phi estimate when starting up (CASSANDRA-6385) + * Don't list CQL3 table in CLI describe even if named explicitely (CASSANDRA-5750) * Invalidate row cache when dropping CF (CASSANDRA-6351) * add non-jamm path for cached statements (CASSANDRA-6293) * (Hadoop) Require CFRR batchSize to be at least 2 (CASSANDRA-6114) diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java index 8e7206501b..6d8aa2e44b 100644 --- a/src/java/org/apache/cassandra/cli/CliClient.java +++ b/src/java/org/apache/cassandra/cli/CliClient.java @@ -1168,8 +1168,10 @@ public class CliClient try { - // request correct cfDef from the server - CfDef cfDef = getCfDef(thriftClient.describe_keyspace(this.keySpace), cfName); + // request correct cfDef from the server (we let that call include CQL3 cf even though + // they can't be modified by thrift because the error message that will be thrown by + // system_update_column_family will be more useful) + CfDef cfDef = getCfDef(thriftClient.describe_keyspace(this.keySpace), cfName, true); if (cfDef == null) throw new RuntimeException("Column Family " + cfName + " was not found in the current keyspace."); @@ -2302,7 +2304,7 @@ public class CliClient "of the keyspaces first.", entityName)); CfDef inputCfDef = (inputKsDef == null) - ? getCfDef(currentKeySpace, entityName) + ? getCfDef(currentKeySpace, entityName, false) : null; // no need to lookup CfDef if we know that it was keyspace if (inputKsDef != null) @@ -2327,7 +2329,7 @@ public class CliClient } else { - sessionState.out.println("Sorry, no Keyspace nor ColumnFamily was found with name: " + entityName); + sessionState.out.println("Sorry, no Keyspace nor (non-CQL3) ColumnFamily was found with name: " + entityName + " (if this is a CQL3 table, you should use cqlsh instead)"); } } } @@ -2400,7 +2402,7 @@ public class CliClient private CfDef getCfDef(String keySpaceName, String columnFamilyName) { KsDef ksDef = keyspacesMap.get(keySpaceName); - CfDef cfDef = getCfDef(ksDef, columnFamilyName); + CfDef cfDef = getCfDef(ksDef, columnFamilyName, true); if (cfDef == null) throw new RuntimeException("No such column family: " + columnFamilyName); return cfDef; @@ -2416,7 +2418,7 @@ public class CliClient return getCfDef(this.keySpace, columnFamilyName); } - private CfDef getCfDef(KsDef keyspace, String columnFamilyName) + private CfDef getCfDef(KsDef keyspace, String columnFamilyName, boolean includeCQL3) { for (CfDef cfDef : keyspace.cf_defs) { @@ -2424,7 +2426,7 @@ public class CliClient return cfDef; } - return cql3KeyspacesMap.get(keyspace.name).get(columnFamilyName); + return includeCQL3 ? cql3KeyspacesMap.get(keyspace.name).get(columnFamilyName) : null; } /**