While investigating the issue
CASSANDRA-9678 I noticed a number of inconsistencies in the way 'describe' operates, so I'm opening a new issue to address these. This issue will also address CASSANDRA-9678.
I'd be happy to work on this.
There are a number of inconsistencies in the way 'describe' operates within cqlsh, and also in the 'help describe' description within cqlsh compared to the CQL documentation (at http://docs.datastax.com/en/cql/3.3/cql/cql_reference/describe_r1.html)
For example, 'desc functions' will list all functions for all keyspaces regardless of whether there is a current keyspace or not, whereas 'desc tables' or 'desc types' will list only the tables or types for the current keyspace.
Some commands exist in cqlsh that are not in the CQL documentation, nor in the 'help describe' description. For example, 'desc functions' is a valid CQLSH command but does not appear in either the CQL docs or 'help describe'.
I suggest we align the way the 'describe' command works so that it works consistently regardless of whether it is describing a table, type, function or any other database object, and also update the CQL and 'help describe' docs to match. Since 'describe tables' and it's variants has been around the longest we should probably align other 'describe' commands to 'describe tables'.
My preliminary analysis has shown at least the following inconsistencies:
- 'desc functions' (with current keyspace), differs from 'desc tables' and 'desc types'.
- a number of commands are missing from the CQL docs or 'help describe, such as: desc table <keyspace>.<tablename>, desc functions (no current keyspace), desc function <function name>, desc type <keyspace>.<type name>, etc.