You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sam Tunnicliffe (JIRA)" <ji...@apache.org> on 2015/09/10 20:20:46 UTC
[jira] [Commented] (CASSANDRA-10216) Remove target type from
internal index metadata
[ https://issues.apache.org/jira/browse/CASSANDRA-10216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739278#comment-14739278 ]
Sam Tunnicliffe commented on CASSANDRA-10216:
---------------------------------------------
[~slebresne] I've pushed a branch [here|https://github.com/beobal/cassandra/tree/10216-3.0] for review. {{target_type}} and {{target_columns}} have been removed from {{system_schema.indexes}} and the corresponding fields removed from {{IndexMetadata}}. The target details are now just another option in {{index_options}}, which is reserved like the {{class}} option for custom indexes. Parsing of the target info is down to the index implementation now, which like you said shouldn't be too big a of a deal. Built-in indexes just use a regex for this now as the range of targets they support is fairly trivial.
The parsing function in the built-in indexes is reused by {{ThriftConversion}} when constructing a {{CfDef}}, which I guess should be safe.
[~aholmber], [~adutra]
Obviously, this requires some driver changes (and will need to be added to the CQL spec & docs). Because I needed it for cqlsh & dtests during development, I've pushed a branch of the python driver [here|https://github.com/beobal/python-driver/tree/10216].
Also, a tiny change to the cqlsh dtest, as we no longer automatically drop an index if the column it targetted is dropped - [branch|https://github.com/beobal/cassandra-dtest/tree/10216]
> Remove target type from internal index metadata
> -----------------------------------------------
>
> Key: CASSANDRA-10216
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10216
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Sam Tunnicliffe
> Assignee: Sam Tunnicliffe
> Labels: client-impacting
> Fix For: 3.0.0 rc1
>
>
> As part of CASSANDRA-6716 & in anticipation of CASSANDRA-10124, a distinction was introduced between secondary indexes which target a fixed set of 1 or more columns in the base data, and those which are agnostic to the structure of the underlying rows. This distinction is manifested in {{IndexMetadata.targetType}} and {{system_schema.indexes}}, in the {{target_type}} column. It could be argued that this distinction complicates the codebase without providing any tangible benefit, given that the target type is not actually used anywhere.
> It's only the impact on {{system_schema.indexes}} that makes puts this on the critical path for 3.0, any code changes are just implementation details.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)