[ 
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)

Reply via email to