[ https://issues.apache.org/jira/browse/CASSANDRA-8005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14153350#comment-14153350 ]
Sylvain Lebresne commented on CASSANDRA-8005: --------------------------------------------- bq. I'm suggesting augmenting it Ok, gotcha. I read "Get closer to allowing drivers to not have to fetch the schema tables" as "remove from existing drivers the need to read schema table" and that's definitively my bad. I'm still not convinced this is worth adding though. As I said, for serious drivers that do read schema tables to provide programmatically friendly access to the schema, adding a proper {{toString()}} is very little trouble (and it's imo simpler/better for these driver to just regenerate the string from their internal handling of the schema rather than to do an additional request to the server). So this would be presumably useful for drivers that don't want to provide programmatic access to the schema, but still want to dump it as string? Honestly, I'd rather encourage drivers author to provide programmatic access to the schema (and subsequantly to ouptut this schema as a string): provided we make decoding schema table less of a back art (aka CASSANDRA-6717), I don't think it's a big deal and it's more user friendly. bq. I still think the other three points need to be addressed. bq. Get closer to allowing drivers to not have to fetch the schema tables To sum what's above, provided we have CASSANDRA-6717, I don't think fetching schema tables is a big deal and I'm fine having that as a requirement for a driver that want to output schemas. bq. Support writing out schemas where it makes sense. I don't see how this is better done by this feature than by the existing {{KeyspaceMetadata.exportAsString}} method the java driver already provided. bq. Have instantaneous support for new schema features in cqlsh. (You currently have to update the bundled python driver.) That's the one point I'll admit would be better served by an opaque string returned by the server. That said, I do think there is value in having drivers provide programmatic acces to schemas, and as soon as you have that, you do have to adapt to new stuff that are added server side. So granted, if used by cqlsh this feature would avoid having to wait for the python driver to be updated, but since the python driver will have to be updated at some point anyway, I'm not sold that this point warrant a new protocol feature. > Server-side DESCRIBE > -------------------- > > Key: CASSANDRA-8005 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8005 > Project: Cassandra > Issue Type: New Feature > Components: API > Reporter: Tyler Hobbs > Priority: Minor > Labels: cql3 > Fix For: 3.0 > > > The various {{DESCRIBE}} commands are currently implemented by cqlsh, and > nearly identical implementations exist in many drivers. There are several > motivations for making {{DESCRIBE}} part of the CQL language: > * Eliminate the (fairly complex) duplicate implementations across drivers and > cqlsh > * Get closer to allowing drivers to not have to fetch the schema tables. > (Minor changes to prepared statements are also needed.) > * Have instantaneous support for new schema features in cqlsh. (You > currently have to update the bundled python driver.) > * Support writing out schemas where it makes sense. One good example of this > is backups. You need to restore the schema before restoring data in the case > of total loss, so it makes sense to write out the schema alongside snapshots. -- This message was sent by Atlassian JIRA (v6.3.4#6332)