[
https://issues.apache.org/jira/browse/CASSANDRA-1761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13006729#comment-13006729
]
Jon Hermes commented on CASSANDRA-1761:
---------------------------------------
Because the column_metadata has to be passed in full, it can be fully validated
in ThriftValidation of the cf_def in the system_{update,add}_column_family and
system_add_keyspace calls.
In related news, I also found out that we never validated CfDefs in
system_update_column_family, so I'm surprised to say the least and glad it was
found in an innocuous bug instead of something more serious.
As for the one-schema-change-at-a-time rule, this is now enforced by default
with validateSchemaAgreement() calls in CassandraServer.
> Indexes: Auto-generating the CFname may collide with user-generated names
> -------------------------------------------------------------------------
>
> Key: CASSANDRA-1761
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1761
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.7 beta 3
> Reporter: Jon Hermes
> Assignee: Jon Hermes
> Priority: Minor
> Fix For: 0.7.5
>
> Attachments: 1761.txt
>
> Original Estimate: 16h
> Remaining Estimate: 16h
>
> {noformat}column_families:
> - name: CF
> comparator: BytesType
> column_metadata:
> - name: foo
> index_name: 626172
> index_type: KEYS
> - name: bar
> index_type: KEYS{noformat}
> Auto-generated versus user-supplied names collide in the YAML above. The code:
> {code}cfname = parentCf + "." + (info.getIndexName() == null ?
> FBUtilities.bytesToHex(info.name) : info.getIndexName()){code}
> From the first ColumnDefinition, we create cfname = "CF.626172" (from the
> fail clause of the ternany, user-supplied name)
> From the second ColumnDefinition, we create cfname = "CF.626172" (from the
> pass clause of the ternary, we generate the name)
> They're in hex form. This is possible, but fairly unlikely that someone will
> do this.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira