CQL for Cassandra 2.0

Using a CQL query

Using CQL, you can query a legacy table. A legacy table managed in CQL includes an implicit WITH COMPACT STORAGE directive. A table contains a timestamp representing the date/time that a write occurred to a columns. You use WRITETIME in the select expression to get this timestamp. For example, to get the date/times that a write occurred to the body column:

SELECT WRITETIME (title )
  FROM songs
  WHERE  id = 8a172618-b121-4136-bb10-f665cfc469eb;

 writetime (title )
------------------
 1353890782373000

The output in microseconds shows the write time of the data in the title column of the songs table.

When you use CQL to query legacy tables with no column names defined for data within a partition, Cassandra generates the names (column1 and value1) for the data. Using the CQL RENAME clause, you can change the default column name to a more meaningful name.

ALTER TABLE users RENAME userid to user_id;

CQL supports dynamic tables created in the Thrift API, CLI, and earlier CQL versions. For example, a dynamic table is represented and queried like this:

CREATE TABLE clicks (
  userid uuid,
  url text,
  timestamp date
  PRIMARY KEY  (userid, url ) ) WITH COMPACT STORAGE;

SELECT url, timestamp
  FROM clicks
  WHERE  userid = 148e9150-1dd2-11b2-0000-242d50cf1fff;

SELECT timestamp
  FROM clicks
  WHERE  userid = 148e9150-1dd2-11b2-0000-242d50cf1fff
  AND  url = 'http://google.com';

In these queries, only equality conditions are valid.

Show/hide