Hi,

CQL3 does now support dynamic columns. For tags or metadata values you could use a Collection:

http://www.datastax.com/dev/blog/cql3_collections

For wide rows there's the enhanced primary keys, which I personally prefer over the composite columns of yore:

http://www.datastax.com/dev/blog/cql3-for-cassandra-experts
http://thelastpickle.com/2013/01/11/primary-keys-in-cql/

--
Francisco Andrades Grassi
www.bigjocker.com
@bigjocker

On Jun 6, 2013, at 8:32 AM, Joe Greenawalt <joe.greenawalt@gmail.com> wrote:

Hi,
I'm having some problems figuring out how to append a dynamic column on a column family using the datastax java driver 1.0 and CQL3 on Cassandra 1.2.5.  Below is what i'm trying:

cqlsh:simplex> create table user (firstname text primary key, lastname text);
cqlsh:simplex> insert into user (firstname, lastname) values ('joe','shmoe');
cqlsh:simplex> select * from user;

 firstname | lastname
-----------+----------
       joe |    shmoe

cqlsh:simplex> insert into user (firstname, lastname, middlename) values ('joe','shmoe','lester');
Bad Request: Unknown identifier middlename
cqlsh:simplex> insert into user (firstname, lastname, middlename) values ('john','shmoe','lester');
Bad Request: Unknown identifier middlename


I'm assuming you can do this based on previous based thrift based clients like pycassa, and also by reading this:

The Cassandra data model is a dynamic schema, column-oriented data model. This means that, unlike a relational database, you do not need to model all of the columns required by your application up front, as each row is not required to have the same set of columns. Columns and their metadata can be added by your application as they are needed without incurring downtime to your application.

here: http://www.datastax.com/docs/1.2/ddl/index

Is it a limitation of CQL3 and its connection vs. thrift?
Or more likely i'm just doing something wrong?

Thanks,
Joe