[
https://issues.apache.org/jira/browse/CASSANDRA-8178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tyler Hobbs updated CASSANDRA-8178:
-----------------------------------
Attachment: 8178-2.0.txt
The least-hacky solution was to introduce Selectable.Raw and
ColumnIdentifier.Raw classes. When these are {{prepared()}}, they use the
comparator's {{fromString()}} method to parse the identifier (when the schema
warrants it). There was one minor catch, though: the key aliases are normal
strings, so we have to make sure the identifier isn't a key alias before using
{{fromString()}} on it.
In addition to the patch, I also have a
[branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-8178].
> Column names are not converted correctly for non-text comparators
> -----------------------------------------------------------------
>
> Key: CASSANDRA-8178
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8178
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Tyler Hobbs
> Assignee: Tyler Hobbs
> Fix For: 2.0.12, 2.1.2
>
> Attachments: 8178-2.0.txt
>
>
> If a column family is created with a non-text comparator through Thrift (or
> cassandra-cli) and column metadata is defined, those column names cannot be
> queried through cql3.
> For example:
> {noformat}
> [default@ks1] create column family entity_data
> ... with column_type = 'Standard'
> ... and comparator = 'BytesType'
> ... and default_validation_class = 'BytesType'
> ... and key_validation_class = 'UTF8Type'
> ... and column_metadata = [
> ... {column_name : '0008',
> ... validation_class : UTF8Type,
> ... index_name : 'entity_data_0008_idx',
> ... index_type : 0}];
> {noformat}
> When you attempt to query that column through cqlsh, you'll get an error like
> this:
> {noformat}
> cqlsh:ks1> select "0008" FROM entity_data ;
> Bad Request: Undefined name 0008 in selection clause
> {noformat}
> The problem is that we aren't taking the comparator type into account when
> converting column names in cql3 statements to their internal (ByteBuffer)
> representation.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)