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

Reply via email to