cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10216) Remove target type from internal index metadata
Date Tue, 15 Sep 2015 13:40:47 GMT


Sylvain Lebresne commented on CASSANDRA-10216:

I don't think {{!column.toString().equals(column.toString().toLowerCase(Locale.US));}} works
all the time as a test to know if the name should be quoted, because we actually allow identifiers
with spaces in them if they are quoted (so a name could be all lowercase, but still require
quoting because it has spaces or some other weird character). The proper test is probably
to check if the name matches the grammar for non-quoted identifer, i.e. {{IDENT : LETTER (LETTER
| DIGIT | '_')*}}.

Similarly, {{columnName.replaceAll("\\\"", "");}} is a tad dangerous because you can have
quotes inside a column identifier if you escape it by doubling it (so {{"foo""bar"}} is the
identifier {{foo"bar}}). I guess just checking if the first character is a quote, and remove
that and the last character would be good enough however.

> Remove target type from internal index metadata
> -----------------------------------------------
>                 Key: CASSANDRA-10216
>                 URL:
>             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

View raw message