From the Cassandra 1.2 Manual:
Using the compact storage directive prevents
you from adding more than one column that is not part of
Note that CQL collection columns (e.g. map<>) can do something
a lot like your CLI example. Also note that your example doesn't
even use "WITH COMPACT STORAGE", which I don't think would make any
difference in that case.
the PRIMARY KEY.
At this time, updates to data in a table created with compact
storage are not allowed. The table with
compact storage that uses a compound primary key must define at
least one clustering column. Unless
you specify WITH COMPACT STORAGE, CQL creates a table with
Also, there's really no need to be snarky, respectful communication
is much more appreciated.
On 08/05/2013 02:36 PM, Edward Capriolo
"COMPACT STORAGE imposes the limit that you can't add
columns to your tables."
Is absolutely false. If anything CQL is imposing the
Simple to prove. Try something like this:
create table abc (x int);
insert into abc (y) values (5);
and watch CQL reject the insert saying something to the effect
of 'y? whats that? Did you mean CQL2 OR 1.5?, or hamburgers'
Then go to the Cassandra cli and do this:
create column family abd;
set ['abd']['y']= '5';
AND IT WORKS!
I noticed the nomenclature starting to spring up around the
term "legacy tables" and docs based around "can't do with
them". Frankly it makes me nuts because...
This little known web company named google produced a white
paper about what a ColumnFamily data model could do http://en.wikipedia.org/wiki/BigTable
. Cassandra was build on the BigTable/ColumnFamily data model.
There was also this big movement called NoSQL, where people
wanted to break free of query languages and rigid