You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Cyril Auburtin <cy...@gmail.com> on 2012/10/02 18:58:10 UTC

cql and cli composites columns repr

I wanted to know why the highlighted sections below are printed
differently, the 2 column families are the same

Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
Columns sorted by:
org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.LongType,org.apache.cassandra.db.marshal.UTF8Type)

, except one is created from cql3:

If it's just a printing issue it's really minor though

on* cql3:*
CREATE TABLE timeline (
        ...   user_id varchar,
        ...   tweet_id bigint,
        ...   author varchar,
        ...   body varchar,
        ...   PRIMARY KEY (user_id, tweet_id)
        ... );
INSERT INTO timeline (user_id, tweet_id, author, body) VALUES ('gmason',
1765, 'phenry', 'Give me liberty or give me death');


on *CLI*:

create column family line with comparator = 'CompositeType(LongType,
UTF8Type)' AND key_validation_class=UTF8Type AND default_validation_class =
UTF8Type;
set line['dude']['1545:ok'] = '1';
set line['dude']['1545:ok1'] = '11111';

list timeline;
RowKey: gmason
=> (column=1765:author, value=phenry, timestamp=1349161331154000)
=> (column=1765:body, value=Give me liberty or give me death,
timestamp=1349161331154001)

list line;
RowKey: dude
=> (column=1545:ok, value=1, timestamp=1349162658714000)
=> (column=1545:ok1, value=11111, timestamp=1349162638658000)

on* cql3:*

select * from timeline;
 user_id | tweet_id | author | body
---------+----------+--------+----------------------------------
  gmason |     1765 | phenry | Give me liberty or give me death


select * from line;
key  | column1 | column2 | value
------+---------+---------+-------
 dude |    1545 |      ok |     1
 dude |    1545 |     ok1 | 11111



ps: I have tried

update column family line with comparator = 'CompositeType(LongType,
UTF8Type)' AND key_validation_class=UTF8Type AND column_metadata = [
{column_name: tweet_id, validation_class: LongType}
{column_name: author, validation_class: UTF8Type}
{column_name: body, validation_class: UTF8Type}
];
for the CF line but it gives:
java.lang.RuntimeException:
org.apache.cassandra.db.marshal.MarshalException: unable to make long from
'tweet_id'