On Mon, Mar 25, 2013 at 1:35 AM, aaron morton <[email protected]>wrote:
> I tried to wrap 'name' to bytes('name'), but it would throw "can not parse
>> FUNCTION_CALL as hex bytes", seems this does not work.
>>
>>> What was the statement you used and what was the error.
>
OK, I have tried using ascii code 6e616d65(name) like below, it's OK now.
update column family User with column_metadata=[{column_name:6e616d65,
validation_class:BytesType, index_type:0}];
However, I tried using utf8('name') like below:
update column family User with column_metadata=[{column_name:utf8('name'),
validation_class:BytesType, index_type:0}];
the error "can not parse FUNCTION_CALL as hex bytes" is thrown in CLI, no
log printed on server. Is the conversion function
not allowed in "update column family" statement?
> So the stored bytes are the same, right?
>
> Yes.
>
> -----------------
> Aaron Morton
> Freelance Cassandra Consultant
> New Zealand
>
> @aaronmorton
> http://www.thelastpickle.com
>
> On 24/03/2013, at 11:53 PM, Xu Renjie <[email protected]> wrote:
>
>
>
>
> On Sun, Mar 24, 2013 at 1:45 AM, aaron morton <[email protected]>wrote:
>
>> But a error is thrown saying "can not parse name as hex bytes".
>>
>> If the comparator is Bytes then the column names need to be a hex string.
>>
>> The easiest thing to do is create a CF where the comparator is UTF8Type
>> so you can use string column names.
>>
>> And currently our column families are all of Bytes, since Cassandra
> cannot update the comparator, it's not easy to change to UTF8Type.
> I tried to wrap 'name' to bytes('name'), but it would throw "can not parse
> FUNCTION_CALL as hex bytes", seems this does not work.
>
>> just that the UTF8Type needs to be validated before storing the data into
>> database and BytesType need not to?
>>
>> It takes *very* little additional effort.
>>
>> Cheers
>>
>>
>> -----------------
>> Aaron Morton
>> Freelance Cassandra Consultant
>> New Zealand
>>
>> @aaronmorton
>> http://www.thelastpickle.com
>>
>> On 23/03/2013, at 12:10 AM, Xu Renjie <[email protected]> wrote:
>>
>> Sorry, continued:
>> I have created a column family User with no parameters specified, just
>> create column family User.
>> Then I checked that the default comparator is BytesType.
>>
>> Then I want to create secondary index on one column like below:
>> update column family User with column_metadata=[{column_name:name,
>> validation_class:BytesType, index_type:0}];
>> But a error is thrown saying "can not parse name as hex bytes".
>>
>> So I wonder under this situation, is it possible to create index using
>> cassandra-cli, if possible, how?
>>
>> Furthermore, I wonder what's the difference of type BytesType and
>> UTF8Type and other types underlying.
>> If I store string 'name' into database, do they have the same internal
>> bytes stored in Cassandra,
>> just that the UTF8Type needs to be validated before storing the data into
>> database and BytesType need not to?
>>
>>
>> On Fri, Mar 22, 2013 at 7:00 PM, Xu Renjie <[email protected]>wrote:
>>
>>> Hello, guys:
>>> I am new to Cassandra. I am currently using cassandra-cli(version
>>> 1.1.6).
>>>
>>
>>
>>
>
>