Author: slebresne
Date: Mon Jan 28 13:58:47 2013
New Revision: 1439405

URL: http://svn.apache.org/viewvc?rev=1439405&view=rev
Log:
Update website for 1.2.1 release

Modified:
    cassandra/site/publish/doc/cql3/CQL.html
    cassandra/site/publish/download/index.html
    cassandra/site/publish/index.html
    cassandra/site/src/settings.py

Modified: cassandra/site/publish/doc/cql3/CQL.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/doc/cql3/CQL.html?rev=1439405&r1=1439404&r2=1439405&view=diff
==============================================================================
--- cassandra/site/publish/doc/cql3/CQL.html (original)
+++ cassandra/site/publish/doc/cql3/CQL.html Mon Jan 28 13:58:47 2013
@@ -1,6 +1,6 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=utf-8"/><title>CQL</title></head><body><p><link 
rel="StyleSheet" href="CQL.css" type="text/css" media="screen"></p><h1 
id="CassandraQueryLanguageCQLv3.0.0">Cassandra Query Language (CQL) 
v3.0.0</h1><span id="tableOfContents"><ol style="list-style: none;"><li><a 
href="CQL.html#CassandraQueryLanguageCQLv3.0.0">Cassandra Query Language (CQL) 
v3.0.0</a><ol style="list-style: none;"><li><a href="CQL.html#CQLSyntax">CQL 
Syntax</a><ol style="list-style: none;"><li><a 
href="CQL.html#Preamble">Preamble</a></li><li><a 
href="CQL.html#Conventions">Conventions</a></li><li><a 
href="CQL.html#identifiers">Identifiers and keywords</a></li><li><a 
href="CQL.html#constants">Constants</a></li><li><a 
href="CQL.html#Comments">Comment
 s</a></li><li><a href="CQL.html#statements">Statements</a></li><li><a 
href="CQL.html#preparedStatement">Prepared Statement</a></li></ol></li><li><a 
href="CQL.html#dataDefinition">Data Definition</a><ol style="list-style: 
none;"><li><a href="CQL.html#createKeyspaceStmt">CREATE KEYSPACE</a></li><li><a 
href="CQL.html#useStmt">USE</a></li><li><a 
href="CQL.html#alterKeyspaceStmt">ALTER KEYSPACE</a></li><li><a 
href="CQL.html#dropKeyspaceStmt">DROP KEYSPACE</a></li><li><a 
href="CQL.html#createTableStmt">CREATE TABLE</a></li><li><a 
href="CQL.html#alterTableStmt">ALTER TABLE</a></li><li><a 
href="CQL.html#dropTableStmt">DROP TABLE</a></li><li><a 
href="CQL.html#truncateStmt">TRUNCATE</a></li><li><a 
href="CQL.html#createIndexStmt">CREATE INDEX</a></li><li><a 
href="CQL.html#dropIndexStmt">DROP INDEX</a></li></ol></li><li><a 
href="CQL.html#dataManipulation">Data Manipulation</a><ol style="list-style: 
none;"><li><a href="CQL.html#insertStmt">INSERT</a></li><li><a 
href="CQL.html#updateStmt"
 >UPDATE</a></li><li><a href="CQL.html#deleteStmt">DELETE</a></li><li><a 
 >href="CQL.html#batchStmt">BATCH</a></li></ol></li><li><a 
 >href="CQL.html#queries">Queries</a><ol style="list-style: none;"><li><a 
 >href="CQL.html#selectStmt">SELECT</a></li></ol></li><li><a 
 >href="CQL.html#types">Data Types</a><ol style="list-style: none;"><li><a 
 >href="CQL.html#usingdates">Working with dates</a></li><li><a 
 >href="CQL.html#counters">Counters</a></li><li><a 
 >href="CQL.html#collections">Working with collections</a></li></ol></li><li><a 
 >href="CQL.html#appendixA">Appendix A: CQL Keywords</a></li><li><a 
 >href="CQL.html#Versioning">Versioning</a></li><li><a 
 >href="CQL.html#Changes">Changes</a></li></ol></li></ol></span><h2 
 >id="CQLSyntax">CQL Syntax</h2><h3 id="Preamble">Preamble</h3><p>This document 
 >describes the Cassandra Query Language (CQL) version 3. CQL v3 is not 
 >backward compatible with CQL v2 and differs from it in numerous 
 >ways.</p><p>CQL v3 offers a model very close to SQL in the sense that d
 ata is put in <em>tables</em> containing <em>rows</em> of <em>columns</em>. 
For that reason, when used in this document, these terms (tables, rows and 
columns) have the same definition than they have in SQL. But please note that 
as such, they do <strong>not</strong> refer to the concept of rows and columns 
found in the internal implementation of Cassandra and in the thrift and CQL v2 
API.</p><h3 id="Conventions">Conventions</h3><p>To aid in specifying the CQL 
syntax, we will use the following conventions in this 
document:</p><ul><li>Language rules will be given in a <a 
href="http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form";>BNF</a> -like 
notation:</li></ul><pre class="syntax"><pre>&lt;start> ::= TERMINAL 
&lt;non-terminal1> &lt;non-terminal1>
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml";><head><meta http-equiv="Content-Type" 
content="text/html; charset=utf-8"/><title>CQL</title></head><body><p><link 
rel="StyleSheet" href="CQL.css" type="text/css" media="screen"></p><h1 
id="CassandraQueryLanguageCQLv3.0.1">Cassandra Query Language (CQL) 
v3.0.1</h1><span id="tableOfContents"><ol style="list-style: none;"><li><a 
href="CQL.html#CassandraQueryLanguageCQLv3.0.1">Cassandra Query Language (CQL) 
v3.0.1</a><ol style="list-style: none;"><li><a href="CQL.html#CQLSyntax">CQL 
Syntax</a><ol style="list-style: none;"><li><a 
href="CQL.html#Preamble">Preamble</a></li><li><a 
href="CQL.html#Conventions">Conventions</a></li><li><a 
href="CQL.html#identifiers">Identifiers and keywords</a></li><li><a 
href="CQL.html#constants">Constants</a></li><li><a 
href="CQL.html#Comments">Comment
 s</a></li><li><a href="CQL.html#statements">Statements</a></li><li><a 
href="CQL.html#preparedStatement">Prepared Statement</a></li></ol></li><li><a 
href="CQL.html#dataDefinition">Data Definition</a><ol style="list-style: 
none;"><li><a href="CQL.html#createKeyspaceStmt">CREATE KEYSPACE</a></li><li><a 
href="CQL.html#useStmt">USE</a></li><li><a 
href="CQL.html#alterKeyspaceStmt">ALTER KEYSPACE</a></li><li><a 
href="CQL.html#dropKeyspaceStmt">DROP KEYSPACE</a></li><li><a 
href="CQL.html#createTableStmt">CREATE TABLE</a></li><li><a 
href="CQL.html#alterTableStmt">ALTER TABLE</a></li><li><a 
href="CQL.html#dropTableStmt">DROP TABLE</a></li><li><a 
href="CQL.html#truncateStmt">TRUNCATE</a></li><li><a 
href="CQL.html#createIndexStmt">CREATE INDEX</a></li><li><a 
href="CQL.html#dropIndexStmt">DROP INDEX</a></li></ol></li><li><a 
href="CQL.html#dataManipulation">Data Manipulation</a><ol style="list-style: 
none;"><li><a href="CQL.html#insertStmt">INSERT</a></li><li><a 
href="CQL.html#updateStmt"
 >UPDATE</a></li><li><a href="CQL.html#deleteStmt">DELETE</a></li><li><a 
 >href="CQL.html#batchStmt">BATCH</a></li></ol></li><li><a 
 >href="CQL.html#queries">Queries</a><ol style="list-style: none;"><li><a 
 >href="CQL.html#selectStmt">SELECT</a></li></ol></li><li><a 
 >href="CQL.html#types">Data Types</a><ol style="list-style: none;"><li><a 
 >href="CQL.html#usingdates">Working with dates</a></li><li><a 
 >href="CQL.html#usingtimeuuid">Working with @timeuuid@</a></li><li><a 
 >href="CQL.html#counters">Counters</a></li><li><a 
 >href="CQL.html#collections">Working with collections</a></li></ol></li><li><a 
 >href="CQL.html#appendixA">Appendix A: CQL Keywords</a></li><li><a 
 >href="CQL.html#changes">Changes</a><ol style="list-style: none;"><li><a 
 >href="CQL.html#a3.0.1">3.0.1</a></li></ol></li><li><a 
 >href="CQL.html#Versioning">Versioning</a></li></ol></li></ol></span><h2 
 >id="CQLSyntax">CQL Syntax</h2><h3 id="Preamble">Preamble</h3><p>This document 
 >describes the Cassandra Query Language (CQL) version 3. C
 QL v3 is not backward compatible with CQL v2 and differs from it in numerous 
ways. Note that this document describes the last version of the languages. 
However, the <a href="#changes">changes</a> section provides the diff between 
the different versions of CQL v3.</p><p>CQL v3 offers a model very close to SQL 
in the sense that data is put in <em>tables</em> containing <em>rows</em> of 
<em>columns</em>. For that reason, when used in this document, these terms 
(tables, rows and columns) have the same definition than they have in SQL. But 
please note that as such, they do <strong>not</strong> refer to the concept of 
rows and columns found in the internal implementation of Cassandra and in the 
thrift and CQL v2 API.</p><h3 id="Conventions">Conventions</h3><p>To aid in 
specifying the CQL syntax, we will use the following conventions in this 
document:</p><ul><li>Language rules will be given in a <a 
href="http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form";>BNF</a> -like 
notation:
 </li></ul><pre class="syntax"><pre>&lt;start> ::= TERMINAL &lt;non-terminal1> 
&lt;non-terminal1>
 </pre></pre><ul><li>Nonterminal symbols will have <code>&lt;angle 
brackets></code>.</li><li>As additional shortcut notations to BNF, we&#8217;ll 
use traditional regular expression&#8217;s symbols (<code>?</code>, 
<code>+</code> and <code>*</code>) to signify that a given symbol is optional 
and/or can be repeated. We&#8217;ll also allow parentheses to group symbols and 
the <code>[&lt;characters>]</code> notation to represent any one of 
<code>&lt;characters></code>.</li><li>The grammar is provided for documentation 
purposes and leave some minor details out. For instance, the last column 
definition in a <code>CREATE TABLE</code> statement is optional but supported 
if present even though the provided grammar in this document suggest it is not 
supported. </li><li>Sample code will be provided in a code block:</li></ul><pre 
class="sample"><pre>SELECT sample_usage FROM cql;
-</pre></pre><ul><li>References to keywords or pieces of CQL code in running 
text will be shown in a <code>fixed-width font</code>.</li></ul><h3 
id="identifiers">Identifiers and keywords</h3><p>The CQL language uses 
<em>identifiers</em> (or <em>names</em>) to identify tables, columns and other 
objects. An identifier is a token matching the regular expression <code 
lang="a-zA-Z">[a-zA-Z0-9_]</code><code>*</code>.</p><p>A number of such 
identifiers, like <code>SELECT</code> or <code>WITH</code>, are 
<em>keywords</em>. They have a fixed meaning for the language and most are 
reserved. The list of those keywords can be found in <a 
href="#appendixA">Appendix A</a>.</p><p>Identifiers and (unquoted) keywords are 
case insensitive. Thus <code>SELECT</code> is the same than <code>select</code> 
or <code>sElEcT</code>, and <code>myId</code> is the same than 
<code>myid</code> or <code>MYID</code> for instance. A convention often used 
(in particular by the samples of this documentation) is 
 to use upper case for keywords and lower case for other 
identifiers.</p><p>There is a second kind of identifiers called <em>quoted 
identifiers</em> defined by enclosing an arbitrary sequence of characters in 
double-quotes(<code>"</code>). Quoted identifiers are never keywords. Thus 
<code>"select"</code> is not a reserved keyword and can be used to refer to a 
column, while <code>select</code> would raise a parse error. Also, contrarily 
to unquoted identifiers and keywords, quoted identifiers are case sensitive 
(<code>"My Quoted Id"</code> is <em>different</em> from <code>"my quoted 
id"</code>). A fully lowercase quoted identifier that matches <code 
lang="a-zA-Z">[a-zA-Z0-9_]</code><code>*</code> is equivalent to the unquoted 
identifier obtained by removing the double-quote (so <code>"myid"</code> is 
equivalent to <code>myid</code> and to <code>myId</code> but different from 
<code>"myId"</code>). Inside a quoted identifier, the double-quote character 
can be repeated to escape 
 it, so <code>"foo "" bar"</code> is a valid identifier.</p><h3 
id="constants">Constants</h3><p>CQL defines 4 kinds of <em>implicitly-typed 
constants</em>: strings, numbers, uuids and booleans:</p><ul><li>A string 
constant is an arbitrary sequence of characters characters enclosed by 
single-quote(<code>'</code>). One can include a single-quote in a string by 
repeating it, e.g. <code>'It''s raining today'</code>. Those are not to be 
confused with quoted identifiers that use double-quotes.</li><li>Numeric 
constants are either integer constant defined by <code>-?[0-9]+</code> or a 
float constant defined by <code>-?[0-9]+.[0-9]*</code>.</li><li>A <a 
href="http://en.wikipedia.org/wiki/Universally_unique_identifier";>UUID</a> 
constant is defined by <code>hex{8}-hex{4}-hex{4}-hex{4}-hex{12}</code> where 
<code>hex</code> is an hexadecimal character, e.g. <code>[0-9a-fA-F]</code> and 
<code>{4}</code> is the number of such characters.</li><li>A boolean constant 
is either <code>true</cod
 e> or <code>false</code> up to case-insensitivity (i.e. <code>True</code> is a 
valid boolean constant).</li></ul><h3 id="Comments">Comments</h3><p>A comment 
in CQL is a line beginning by either double dashes (<code>--</code>) or double 
slash (<code>//</code>).</p><pre class="sample"><pre>-- This is a comment
+</pre></pre><ul><li>References to keywords or pieces of CQL code in running 
text will be shown in a <code>fixed-width font</code>.</li></ul><h3 
id="identifiers">Identifiers and keywords</h3><p>The CQL language uses 
<em>identifiers</em> (or <em>names</em>) to identify tables, columns and other 
objects. An identifier is a token matching the regular expression <code 
lang="a-zA-Z">[a-zA-Z0-9_]</code><code>*</code>.</p><p>A number of such 
identifiers, like <code>SELECT</code> or <code>WITH</code>, are 
<em>keywords</em>. They have a fixed meaning for the language and most are 
reserved. The list of those keywords can be found in <a 
href="#appendixA">Appendix A</a>.</p><p>Identifiers and (unquoted) keywords are 
case insensitive. Thus <code>SELECT</code> is the same than <code>select</code> 
or <code>sElEcT</code>, and <code>myId</code> is the same than 
<code>myid</code> or <code>MYID</code> for instance. A convention often used 
(in particular by the samples of this documentation) is 
 to use upper case for keywords and lower case for other 
identifiers.</p><p>There is a second kind of identifiers called <em>quoted 
identifiers</em> defined by enclosing an arbitrary sequence of characters in 
double-quotes(<code>"</code>). Quoted identifiers are never keywords. Thus 
<code>"select"</code> is not a reserved keyword and can be used to refer to a 
column, while <code>select</code> would raise a parse error. Also, contrarily 
to unquoted identifiers and keywords, quoted identifiers are case sensitive 
(<code>"My Quoted Id"</code> is <em>different</em> from <code>"my quoted 
id"</code>). A fully lowercase quoted identifier that matches <code 
lang="a-zA-Z">[a-zA-Z0-9_]</code><code>*</code> is equivalent to the unquoted 
identifier obtained by removing the double-quote (so <code>"myid"</code> is 
equivalent to <code>myid</code> and to <code>myId</code> but different from 
<code>"myId"</code>). Inside a quoted identifier, the double-quote character 
can be repeated to escape 
 it, so <code>"foo "" bar"</code> is a valid identifier.</p><h3 
id="constants">Constants</h3><p>CQL defines 4 kinds of <em>implicitly-typed 
constants</em>: strings, numbers, uuids and booleans:</p><ul><li>A string 
constant is an arbitrary sequence of characters characters enclosed by 
single-quote(<code>'</code>). One can include a single-quote in a string by 
repeating it, e.g. <code>'It''s raining today'</code>. Those are not to be 
confused with quoted identifiers that use double-quotes.</li><li>Numeric 
constants are either integer constant defined by <code>'-'?[0-9]+</code> or a 
float constant defined by 
<code>'-'?[0-9]+('.'[0-9]*)?([eE][+-]?[0-9+])?</code>.</li><li>A <a 
href="http://en.wikipedia.org/wiki/Universally_unique_identifier";>UUID</a> 
constant is defined by <code>hex{8}-hex{4}-hex{4}-hex{4}-hex{12}</code> where 
<code>hex</code> is an hexadecimal character, e.g. <code>[0-9a-fA-F]</code> and 
<code>{4}</code> is the number of such characters.</li><li>A boolean constan
 t is either <code>true</code> or <code>false</code> up to case-insensitivity 
(i.e. <code>True</code> is a valid boolean constant).</li></ul><h3 
id="Comments">Comments</h3><p>A comment in CQL is a line beginning by either 
double dashes (<code>--</code>) or double slash (<code>//</code>).</p><pre 
class="sample"><pre>-- This is a comment
 // This is a comment too
 </pre></pre><h3 id="statements">Statements</h3><p>CQL consists of statements. 
As in SQL, these statements can be divided in 3 categories:</p><ul><li>Data 
definition statements, that allow to set and change the way data is 
stored.</li><li>Data manipulation statements, that allow to change 
data</li><li>Queries, to look up data</li></ul><p>All statements end with a 
semicolon (<code>;</code>) but that semicolon can be omitted when dealing with 
a single statement. The supported statements are described in the following 
sections. When describing the grammar of said statements, we will reuse the 
non-terminal symbols defined below:</p><pre class="syntax"><pre>&lt;identifier> 
::= any quoted or unquoted identifier, excluding reserved keywords
  &lt;tablename> ::= (&lt;identifier> '.')? &lt;identifier>
@@ -243,7 +243,9 @@ SELECT entry_title, content FROM posts W
 &lt;collection-type> ::= list '&lt;' &lt;native-type> '>'
                     | set  '&lt;' &lt;native-type> '>'
                     | map  '&lt;' &lt;native-type> ',' &lt;native-type> '>'
-</pre></pre><p>Note that the native types are keywords and as such are 
case-insensitive. They are however not reserved ones.</p><p>The following table 
gives additional informations on the native data types:</p><table><tr><th>type  
  </th><th>description</th></tr><tr><td><code>ascii</code>    </td><td>ASCII 
character string</td></tr><tr><td><code>bigint</code>   </td><td>64-bit signed 
long</td></tr><tr><td><code>blob</code>     </td><td>Arbitrary bytes (no 
validation)</td></tr><tr><td><code>boolean</code>  </td><td>true or 
false</td></tr><tr><td><code>counter</code>  </td><td>Counter column (64-bit 
signed value). See <a href="#counters">Counters</a> for 
details</td></tr><tr><td><code>decimal</code>  </td><td>Variable-precision 
decimal</td></tr><tr><td><code>double</code>   </td><td>64-bit IEEE-754 
floating point</td></tr><tr><td><code>float</code>    </td><td>32-bit IEEE-754 
floating point</td></tr><tr><td><code>inet</code>     </td><td>An IP address. 
It can be either 4 bytes
  long (IPv4) or 16 bytes long (IPv6)</td></tr><tr><td><code>int</code>      
</td><td>32-bit signed int</td></tr><tr><td><code>text</code>     </td><td>UTF8 
encoded string</td></tr><tr><td><code>timestamp</code></td><td>A timestamp. See 
<a href="#usingdates">Working with dates</a> below for more 
information.</td></tr><tr><td><code>timeuuid</code> </td><td>Type 1 UUID. This 
is a &#8220;conflict-free&#8221; timestamp and as <code>timestamp</code>, it 
allows date notation: see <a href="#usingdates">Working with dates</a> 
below.</td></tr><tr><td><code>uuid</code>     </td><td>Type 1 or type 4 
UUID</td></tr><tr><td><code>varchar</code>  </td><td>UTF8 encoded 
string</td></tr><tr><td><code>varint</code>   </td><td>Arbitrary-precision 
integer</td></tr></table><h3 id="usingdates">Working with dates</h3><p>Values 
of the <code>timestamp</code> type are encoded as 64-bit signed integers 
representing a number of milliseconds since the standard base time known as 
&#8220;the epoch&#8221;: J
 anuary 1 1970 at 00:00:00 GMT. Values of the <code>timeuuid</code> type also 
include such timestamp and sort accordingly to said timestamp.</p><p>Timestamp 
and timeuuid types can be input in CQL as simple long integers, giving the 
number of milliseconds since the epoch, as defined above.</p><p>They can also 
be input as string literals in any of the following ISO 8601 formats, each 
representing the time and date Mar 2, 2011, at 04:05:00 AM, 
GMT.:</p><ul><li><code>2011-02-03 04:05+0000</code></li><li><code>2011-02-03 
04:05:00+0000</code></li><li><code>2011-02-03T04:05+0000</code></li><li><code>2011-02-03T04:05:00+0000</code></li></ul><p>The
 <code>+0000</code> above is an RFC 822 4-digit time zone specification; 
<code>+0000</code> refers to GMT. US Pacific Standard Time is 
<code>-0800</code>. The time zone may be omitted if desired&#8212; the date 
will be interpreted as being in the time zone under which the coordinating 
Cassandra node is configured.</p><ul><li><code>2011-02-03
  04:05</code></li><li><code>2011-02-03 
04:05:00</code></li><li><code>2011-02-03T04:05</code></li><li><code>2011-02-03T04:05:00</code></li></ul><p>There
 are clear difficulties inherent in relying on the time zone configuration 
being as expected, though, so it is recommended that the time zone always be 
specified for timestamps when feasible.</p><p>The time of day may also be 
omitted, if the date is the only piece that 
matters:</p><ul><li><code>2011-02-03</code></li><li><code>2011-02-03+0000</code></li></ul><p>In
 that case, the time of day will default to 00:00:00, in the specified or 
default time zone.</p><h3 id="counters">Counters</h3><p>The 
<code>counter</code> type is used to define <em>counter columns</em>. A counter 
column is a column whose value is a 64-bit signed integer and on which 2 
operations are supported: incrementation and decrementation (see <a 
href="#updateStmt"><code>UPDATE</code></a> for syntax).  Note the value of a 
counter cannot be set. A counter doesn&#8
 217;t exist until first incremented/decremented, and the first 
incrementation/decrementation is made as if the previous value was 0. Deletion 
of counter columns is supported but have some limitations (see the <a 
href="http://wiki.apache.org/cassandra/Counters";>Cassandra Wiki</a> for more 
information).</p><p>The use of the counter type is limited in the following 
way:</p><ul><li>It cannot be used for column that is part of the <code>PRIMARY 
KEY</code> of a table.</li><li>A table that contains a counter can only contain 
counters. In other words, either all the columns of a table outside the 
<code>PRIMARY KEY</code> have the counter type, or none of them have 
it.</li></ul><h3 id="collections">Working with collections</h3><h4 
id="map">Maps</h4><p>A <code>map</code> is a <a href="#types">typed</a> set of 
key-value pairs, where keys are unique. Furthermore, note that the map are 
internally sorted by their keys and will thus always be returned in that order. 
To create a column of t
 ype <code>map</code>, use the <code>map</code> keyword suffixed with 
comma-separated key and value types, enclosed in angle brackets.  For 
example:</p><pre class="sample"><pre>CREATE TABLE users (
+</pre></pre><p>Note that the native types are keywords and as such are 
case-insensitive. They are however not reserved ones.</p><p>The following table 
gives additional informations on the native data types:</p><table><tr><th>type  
  </th><th>description</th></tr><tr><td><code>ascii</code>    </td><td>ASCII 
character string</td></tr><tr><td><code>bigint</code>   </td><td>64-bit signed 
long</td></tr><tr><td><code>blob</code>     </td><td>Arbitrary bytes (no 
validation)</td></tr><tr><td><code>boolean</code>  </td><td>true or 
false</td></tr><tr><td><code>counter</code>  </td><td>Counter column (64-bit 
signed value). See <a href="#counters">Counters</a> for 
details</td></tr><tr><td><code>decimal</code>  </td><td>Variable-precision 
decimal</td></tr><tr><td><code>double</code>   </td><td>64-bit IEEE-754 
floating point</td></tr><tr><td><code>float</code>    </td><td>32-bit IEEE-754 
floating point</td></tr><tr><td><code>inet</code>     </td><td>An IP address. 
It can be either 4 bytes
  long (IPv4) or 16 bytes long (IPv6)</td></tr><tr><td><code>int</code>      
</td><td>32-bit signed int</td></tr><tr><td><code>text</code>     </td><td>UTF8 
encoded string</td></tr><tr><td><code>timestamp</code></td><td>A timestamp. See 
<a href="#usingdates">Working with dates</a> below for more 
information.</td></tr><tr><td><code>timeuuid</code> </td><td>Type 1 UUID. This 
is generally used as a &#8220;conflict-free&#8221; timestamp. See <a 
href="#usingtimeuuid">Working with <code>timeuuid</code></a> 
below.</td></tr><tr><td><code>uuid</code>     </td><td>Type 1 or type 4 
UUID</td></tr><tr><td><code>varchar</code>  </td><td>UTF8 encoded 
string</td></tr><tr><td><code>varint</code>   </td><td>Arbitrary-precision 
integer</td></tr></table><h3 id="usingdates">Working with dates</h3><p>Values 
of the <code>timestamp</code> type are encoded as 64-bit signed integers 
representing a number of milliseconds since the standard base time known as 
&#8220;the epoch&#8221;: January 1 1970 at 0
 0:00:00 GMT.</p><p>Timestamp can be input in CQL as simple long integers, 
giving the number of milliseconds since the epoch, as defined above.</p><p>They 
can also be input as string literals in any of the following ISO 8601 formats, 
each representing the time and date Mar 2, 2011, at 04:05:00 AM, 
GMT.:</p><ul><li><code>2011-02-03 04:05+0000</code></li><li><code>2011-02-03 
04:05:00+0000</code></li><li><code>2011-02-03T04:05+0000</code></li><li><code>2011-02-03T04:05:00+0000</code></li></ul><p>The
 <code>+0000</code> above is an RFC 822 4-digit time zone specification; 
<code>+0000</code> refers to GMT. US Pacific Standard Time is 
<code>-0800</code>. The time zone may be omitted if desired&#8212; the date 
will be interpreted as being in the time zone under which the coordinating 
Cassandra node is configured.</p><ul><li><code>2011-02-03 
04:05</code></li><li><code>2011-02-03 
04:05:00</code></li><li><code>2011-02-03T04:05</code></li><li><code>2011-02-03T04:05:00</code></li></ul><p>
 There are clear difficulties inherent in relying on the time zone 
configuration being as expected, though, so it is recommended that the time 
zone always be specified for timestamps when feasible.</p><p>The time of day 
may also be omitted, if the date is the only piece that 
matters:</p><ul><li><code>2011-02-03</code></li><li><code>2011-02-03+0000</code></li></ul><p>In
 that case, the time of day will default to 00:00:00, in the specified or 
default time zone.</p><h3 id="usingtimeuuid">Working with 
<code>timeuuid</code></h3><p>Values of the <code>timeuuid</code> type are type 
1 <a 
href="http://en.wikipedia.org/wiki/Universally_unique_identifier";>UUID</a>, 
i.e. UUID that include the timestamp of their generation, and they sort 
accordingly to said timestamp. They thus serve as conflict-free 
timestamps.</p><p>Valid <code>timeuuid</code> values should be inputed using 
UUID constants described <a href="#constants">here</a>. However, a number of 
convenience method are provided to in
 teract with <code>timeuuid</code>.</p><p>First, the method <code>now</code> 
generates a new unique timeuuid (at the time where the statement using it is 
executed). Note that this method is useful for insertion but is largely 
non-sensical in <code>WHERE</code> clauses. For instance, a query of the 
form</p><pre class="sample"><pre>SELECT * FROM myTable WHERE t = now()
+</pre></pre><p>will never return any result by design, since the value 
returned by <code>now()</code> is guaranteed to be unique.</p><p>For querying, 
the method <code>minTimeuuid</code> (resp. <code>maxTimeuuid</code>) takes a 
date <code>d</code> in argument and returns a <em>fake</em> 
<code>timeuuid</code> corresponding to the <em>smallest</em> (resp. 
<em>biggest</em>) possible <code>timeuuid</code> having for date 
<code>d</code>. So for instance:</p><pre class="sample"><pre>SELECT * FROM 
myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t &lt; 
minTimeuuid('2013-02-02 10:00+0000')
+</pre></pre><p>will select all rows where the <code>timeuuid</code> column 
<code>t</code> is strictly older than &#8216;2013-01-01 00:05+0000&#8217; but 
stricly younger than &#8216;2013-02-02 10:00+0000&#8217;.  Please note that 
<code>t >= maxTimeuuid('2013-01-01 00:05+0000')</code> would still <em>not</em> 
select a <code>timeuuid</code> generated exactly at &#8216;2013-01-01 
00:05+0000&#8217; and is essentially equivalent to <code>t > 
maxTimeuuid('2013-01-01 00:05+0000')</code>.</p><p><em>Warning</em>: We called 
the values generated by <code>minTimeuuid</code> and <code>maxTimeuuid</code> 
<em>fake</em> UUID because they do no respect the Time-Based UUID generation 
process specified by the <a href="http://www.ietf.org/rfc/rfc4122.txt";>RFC 
4122</a>. In particular, the value returned by these 2 methods will not be 
unique. This means you should only use those methods for querying (as in the 
example above). Inserting the result of those methods is almost certainly <em>a 
bad idea
 </em>.</p><p>Lastly, the <code>dateOf</code> and <code>unixTimestampOf</code> 
methods can used in <code>SELECT</code> clauses to extract the timestamp of a 
<code>timeuuid</code> column in a resultset. The difference between the 
<code>dateOf</code> and <code>unixTimestampOf</code> is that the former return 
the extract timestamp as a date, while the latter returns it as a raw timestamp 
(i.e. a 64 bits integer).</p><h3 id="counters">Counters</h3><p>The 
<code>counter</code> type is used to define <em>counter columns</em>. A counter 
column is a column whose value is a 64-bit signed integer and on which 2 
operations are supported: incrementation and decrementation (see <a 
href="#updateStmt"><code>UPDATE</code></a> for syntax).  Note the value of a 
counter cannot be set. A counter doesn&#8217;t exist until first 
incremented/decremented, and the first incrementation/decrementation is made as 
if the previous value was 0. Deletion of counter columns is supported but have 
some limitati
 ons (see the <a href="http://wiki.apache.org/cassandra/Counters";>Cassandra 
Wiki</a> for more information).</p><p>The use of the counter type is limited in 
the following way:</p><ul><li>It cannot be used for column that is part of the 
<code>PRIMARY KEY</code> of a table.</li><li>A table that contains a counter 
can only contain counters. In other words, either all the columns of a table 
outside the <code>PRIMARY KEY</code> have the counter type, or none of them 
have it.</li></ul><h3 id="collections">Working with collections</h3><h4 
id="map">Maps</h4><p>A <code>map</code> is a <a href="#types">typed</a> set of 
key-value pairs, where keys are unique. Furthermore, note that the map are 
internally sorted by their keys and will thus always be returned in that order. 
To create a column of type <code>map</code>, use the <code>map</code> keyword 
suffixed with comma-separated key and value types, enclosed in angle brackets.  
For example:</p><pre class="sample"><pre>CREATE TABLE users (
     id text PRIMARY KEY,
     given text,
     surname text,
@@ -281,29 +283,4 @@ UPDATE plays SET players = 5, scores = [
 </pre></pre><p>It should be noted that append and prepend are not idempotent 
operations. This means that if during an append or a prepend the operation 
timeout, it is not always safe to retry the operation (as this could result in 
the record appended or prepended twice).</p><p>Lists also provides the 
following operation: setting an element by its position in the list, removing 
an element by its position in the list and remove all the occurrence of a given 
value in the list. <em>However, and contrarily to all the other collection 
operations, these three operations induce an internal read before the update, 
and will thus typically have slower performance characteristics</em>. Those 
operations have the following syntax:</p><pre class="sample"><pre>UPDATE plays 
SET scores[1] = 7 WHERE id = '123-afde';                // sets the 2nd element 
of scores to 7 (raises an error is scores has less than 2 elements)
 DELETE scores[1] FROM plays WHERE id = '123-afde';                   // 
deletes the 2nd element of scores (raises an error is scores has less than 2 
elements)
 UPDATE plays SET scores = scores - [ 12, 21 ] WHERE id = '123-afde'; // 
removes all occurences of 12 and 21 from scores
-</pre></pre><p>As with <a href="#map">maps</a>, TTLs if used only apply to the 
newly inserted/updated <em>values</em>.</p><h2 id="appendixA">Appendix A: CQL 
Keywords</h2><p>CQL distinguishes between <em>reserved</em> and 
<em>non-reserved</em> keywords. Reserved keywords cannot be used as identifier, 
they are truly reserved for the language (but one can enclose a reserved 
keyword by double-quotes to use it as an identifier). Non-reserved keywords 
however only have a specific meaning in certain context but can used as 
identifer otherwise. The only <em>raison d'être</em> of these non-reserved 
keywords is convenience: some keyword are non-reserved when it was always easy 
for the parser to decide whether they were used as keywords or 
not.</p><table><tr><th>Keyword      </th><th>Reserved? 
</th></tr><tr><td><code>ADD</code>          </td><td>yes 
</td></tr><tr><td><code>ALL</code>          </td><td>no  
</td></tr><tr><td><code>ALTER</code>        </td><td>yes </td></tr><tr><td><co
 de>AND</code>          </td><td>yes </td></tr><tr><td><code>ANY</code>         
 </td><td>yes </td></tr><tr><td><code>APPLY</code>        </td><td>yes 
</td></tr><tr><td><code>ASC</code>          </td><td>yes 
</td></tr><tr><td><code>ASCII</code>        </td><td>no  
</td></tr><tr><td><code>AUTHORIZE</code>    </td><td>yes 
</td></tr><tr><td><code>BATCH</code>        </td><td>yes 
</td></tr><tr><td><code>BEGIN</code>        </td><td>yes 
</td></tr><tr><td><code>BIGINT</code>       </td><td>no  
</td></tr><tr><td><code>BLOB</code>         </td><td>no  
</td></tr><tr><td><code>BOOLEAN</code>      </td><td>no  
</td></tr><tr><td><code>BY</code>           </td><td>yes 
</td></tr><tr><td><code>CLUSTERING</code>   </td><td>no  
</td></tr><tr><td><code>COLUMNFAMLY</code>  </td><td>yes 
</td></tr><tr><td><code>COMPACT</code>      </td><td>no  
</td></tr><tr><td><code>CONSITENCY</code>   </td><td>no  
</td></tr><tr><td><code>COUNT</code>        </td><td>no  
</td></tr><tr><td><code>COUNTER</code>   
    </td><td>no  </td></tr><tr><td><code>CREATE</code>       </td><td>yes 
</td></tr><tr><td><code>DECIMAL</code>      </td><td>no  
</td></tr><tr><td><code>DELETE</code>       </td><td>yes 
</td></tr><tr><td><code>DESC</code>         </td><td>yes 
</td></tr><tr><td><code>DOUBLE</code>       </td><td>no  
</td></tr><tr><td><code>DROP</code>         </td><td>yes 
</td></tr><tr><td><code>EACH_QUORUM</code>  </td><td>yes 
</td></tr><tr><td><code>FLOAT</code>        </td><td>no  
</td></tr><tr><td><code>FROM</code>         </td><td>yes 
</td></tr><tr><td><code>GRANT</code>        </td><td>yes 
</td></tr><tr><td><code>IN</code>           </td><td>yes 
</td></tr><tr><td><code>INDEX</code>        </td><td>yes 
</td></tr><tr><td><code>INSERT</code>       </td><td>yes 
</td></tr><tr><td><code>INT</code>          </td><td>no  
</td></tr><tr><td><code>INTO</code>         </td><td>yes 
</td></tr><tr><td><code>KEY</code>          </td><td>no  
</td></tr><tr><td><code>KEYSPACE</code>     </td><td>yes </td
 ></tr><tr><td><code>LEVEL</code>        </td><td>no  
 ></td></tr><tr><td><code>LIMIT</code>        </td><td>yes 
 ></td></tr><tr><td><code>LOCAL_QUORUM</code> </td><td>yes 
 ></td></tr><tr><td><code>MODIFY</code>       </td><td>yes 
 ></td></tr><tr><td><code>NORECURSIVE</code>  </td><td>yes 
 ></td></tr><tr><td><code>NOSUPERUSER</code>  </td><td>no  
 ></td></tr><tr><td><code>OF</code>           </td><td>yes 
 ></td></tr><tr><td><code>ON</code>           </td><td>yes 
 ></td></tr><tr><td><code>ONE</code>          </td><td>yes 
 ></td></tr><tr><td><code>ORDER</code>        </td><td>yes 
 ></td></tr><tr><td><code>PASSWORD</code>     </td><td>no  
 ></td></tr><tr><td><code>PERMISSION</code>   </td><td>no  
 ></td></tr><tr><td><code>PERMISSIONS</code>  </td><td>no  
 ></td></tr><tr><td><code>PRIMARY</code>      </td><td>yes 
 ></td></tr><tr><td><code>QUORUM</code>       </td><td>yes 
 ></td></tr><tr><td><code>REVOKE</code>       </td><td>yes 
 ></td></tr><tr><td><code>SCHEMA</code>       </td><td>yes 
 ></td></tr><tr><td><code>
 SELECT</code>       </td><td>yes </td></tr><tr><td><code>SET</code>          
</td><td>yes </td></tr><tr><td><code>STORAGE</code>      </td><td>no  
</td></tr><tr><td><code>SUPERUSER</code>    </td><td>no  
</td></tr><tr><td><code>TABLE</code>        </td><td>yes 
</td></tr><tr><td><code>TEXT</code>         </td><td>no  
</td></tr><tr><td><code>TIMESTAMP</code>    </td><td>no  
</td></tr><tr><td><code>TIMEUUID</code>     </td><td>no  
</td></tr><tr><td><code>THREE</code>        </td><td>yes 
</td></tr><tr><td><code>TOKEN</code>        </td><td>yes 
</td></tr><tr><td><code>TRUNCATE</code>     </td><td>yes 
</td></tr><tr><td><code>TTL</code>          </td><td>no  
</td></tr><tr><td><code>TWO</code>          </td><td>yes 
</td></tr><tr><td><code>TYPE</code>         </td><td>no  
</td></tr><tr><td><code>UPDATE</code>       </td><td>yes 
</td></tr><tr><td><code>USE</code>          </td><td>yes 
</td></tr><tr><td><code>USER</code>         </td><td>no  
</td></tr><tr><td><code>USERS</code>        
 </td><td>no  </td></tr><tr><td><code>USING</code>        </td><td>yes 
</td></tr><tr><td><code>UUID</code>         </td><td>no  
</td></tr><tr><td><code>VALUES</code>       </td><td>no  
</td></tr><tr><td><code>VARCHAR</code>      </td><td>no  
</td></tr><tr><td><code>VARINT</code>       </td><td>no  
</td></tr><tr><td><code>WHERE</code>        </td><td>yes 
</td></tr><tr><td><code>WITH</code>         </td><td>yes 
</td></tr><tr><td><code>WRITETIME</code>    </td><td>no  </td></tr></table><h2 
id="Versioning">Versioning</h2><p>Versioning of the CQL language adheres to the 
<a href="http://semver.org";>Semantic Versioning</a> guidelines. Versions take 
the form X.Y.Z where X, Y, and Z are integer values representing major, minor, 
and patch level respectively. There is no correlation between Cassandra release 
versions and the CQL language 
version.</p><table><tr><th>version</th><th>description</th></tr><tr><td>Major   
  </td><td>The major version <em>must</em> be bumped when backward inco
 mpatible changes are introduced. This should rarely 
occur.</td></tr><tr><td>Minor     </td><td>Minor version increments occur when 
new, but backward compatible, functionality is 
introduced.</td></tr><tr><td>Patch     </td><td>The patch version is 
incremented when bugs are fixed.</td></tr></table><h2 
id="Changes">Changes</h2><pre>Tue, 06 Nov 2012 15:03:12 +0200 - Eric Evans and 
Sylvain Lebresne
- * Update for 1.2 changes to CQL 3
-
-Tue, 24 Apr 2012 15:12:36 +0200 - Sylvain Lebresne
- * Rework whole doc to target CQL 3
-
-Wed, 12 Oct 2011 16:53:00 -0500 - Paul Cannon
- * Rework whole doc, adding syntax specifics and additional explanations
-
-Fri, 09 Sep 2011 11:43:00 -0500 - Jonathan Ellis
- * add int data type
-
-Wed, 07 Sep 2011 09:01:00 -0500 - Jonathan Ellis
- * Updated version to 2.0; Documented row-based count()
- * Updated list of supported data types
-
-Wed, 10 Aug 2011 11:22:00 -0500 - Eric Evans
- * Improved INSERT vs. UPDATE wording.
- * Documented counter column incr/descr.
-
-Sat, 01 Jun 2011 15:58:00 -0600 - Pavel Yaskevich
- * Updated to support ALTER (CASSANDRA-1709)
-
-Tue, 22 Mar 2011 18:10:28 -0700 - Eric Evans &lt;eev...@rackspace.com>
- * Initial version, 1.0.0
-</pre></body></html>
\ No newline at end of file
+</pre></pre><p>As with <a href="#map">maps</a>, TTLs if used only apply to the 
newly inserted/updated <em>values</em>.</p><h2 id="appendixA">Appendix A: CQL 
Keywords</h2><p>CQL distinguishes between <em>reserved</em> and 
<em>non-reserved</em> keywords. Reserved keywords cannot be used as identifier, 
they are truly reserved for the language (but one can enclose a reserved 
keyword by double-quotes to use it as an identifier). Non-reserved keywords 
however only have a specific meaning in certain context but can used as 
identifer otherwise. The only <em>raison d'être</em> of these non-reserved 
keywords is convenience: some keyword are non-reserved when it was always easy 
for the parser to decide whether they were used as keywords or 
not.</p><table><tr><th>Keyword      </th><th>Reserved? 
</th></tr><tr><td><code>ADD</code>          </td><td>yes 
</td></tr><tr><td><code>ALL</code>          </td><td>no  
</td></tr><tr><td><code>ALTER</code>        </td><td>yes </td></tr><tr><td><co
 de>AND</code>          </td><td>yes </td></tr><tr><td><code>ANY</code>         
 </td><td>yes </td></tr><tr><td><code>APPLY</code>        </td><td>yes 
</td></tr><tr><td><code>ASC</code>          </td><td>yes 
</td></tr><tr><td><code>ASCII</code>        </td><td>no  
</td></tr><tr><td><code>AUTHORIZE</code>    </td><td>yes 
</td></tr><tr><td><code>BATCH</code>        </td><td>yes 
</td></tr><tr><td><code>BEGIN</code>        </td><td>yes 
</td></tr><tr><td><code>BIGINT</code>       </td><td>no  
</td></tr><tr><td><code>BLOB</code>         </td><td>no  
</td></tr><tr><td><code>BOOLEAN</code>      </td><td>no  
</td></tr><tr><td><code>BY</code>           </td><td>yes 
</td></tr><tr><td><code>CLUSTERING</code>   </td><td>no  
</td></tr><tr><td><code>COLUMNFAMLY</code>  </td><td>yes 
</td></tr><tr><td><code>COMPACT</code>      </td><td>no  
</td></tr><tr><td><code>CONSITENCY</code>   </td><td>no  
</td></tr><tr><td><code>COUNT</code>        </td><td>no  
</td></tr><tr><td><code>COUNTER</code>   
    </td><td>no  </td></tr><tr><td><code>CREATE</code>       </td><td>yes 
</td></tr><tr><td><code>DECIMAL</code>      </td><td>no  
</td></tr><tr><td><code>DELETE</code>       </td><td>yes 
</td></tr><tr><td><code>DESC</code>         </td><td>yes 
</td></tr><tr><td><code>DOUBLE</code>       </td><td>no  
</td></tr><tr><td><code>DROP</code>         </td><td>yes 
</td></tr><tr><td><code>EACH_QUORUM</code>  </td><td>yes 
</td></tr><tr><td><code>FLOAT</code>        </td><td>no  
</td></tr><tr><td><code>FROM</code>         </td><td>yes 
</td></tr><tr><td><code>GRANT</code>        </td><td>yes 
</td></tr><tr><td><code>IN</code>           </td><td>yes 
</td></tr><tr><td><code>INDEX</code>        </td><td>yes 
</td></tr><tr><td><code>INSERT</code>       </td><td>yes 
</td></tr><tr><td><code>INT</code>          </td><td>no  
</td></tr><tr><td><code>INTO</code>         </td><td>yes 
</td></tr><tr><td><code>KEY</code>          </td><td>no  
</td></tr><tr><td><code>KEYSPACE</code>     </td><td>yes </td
 ></tr><tr><td><code>LEVEL</code>        </td><td>no  
 ></td></tr><tr><td><code>LIMIT</code>        </td><td>yes 
 ></td></tr><tr><td><code>LOCAL_QUORUM</code> </td><td>yes 
 ></td></tr><tr><td><code>MODIFY</code>       </td><td>yes 
 ></td></tr><tr><td><code>NORECURSIVE</code>  </td><td>yes 
 ></td></tr><tr><td><code>NOSUPERUSER</code>  </td><td>no  
 ></td></tr><tr><td><code>OF</code>           </td><td>yes 
 ></td></tr><tr><td><code>ON</code>           </td><td>yes 
 ></td></tr><tr><td><code>ONE</code>          </td><td>yes 
 ></td></tr><tr><td><code>ORDER</code>        </td><td>yes 
 ></td></tr><tr><td><code>PASSWORD</code>     </td><td>no  
 ></td></tr><tr><td><code>PERMISSION</code>   </td><td>no  
 ></td></tr><tr><td><code>PERMISSIONS</code>  </td><td>no  
 ></td></tr><tr><td><code>PRIMARY</code>      </td><td>yes 
 ></td></tr><tr><td><code>QUORUM</code>       </td><td>yes 
 ></td></tr><tr><td><code>REVOKE</code>       </td><td>yes 
 ></td></tr><tr><td><code>SCHEMA</code>       </td><td>yes 
 ></td></tr><tr><td><code>
 SELECT</code>       </td><td>yes </td></tr><tr><td><code>SET</code>          
</td><td>yes </td></tr><tr><td><code>STORAGE</code>      </td><td>no  
</td></tr><tr><td><code>SUPERUSER</code>    </td><td>no  
</td></tr><tr><td><code>TABLE</code>        </td><td>yes 
</td></tr><tr><td><code>TEXT</code>         </td><td>no  
</td></tr><tr><td><code>TIMESTAMP</code>    </td><td>no  
</td></tr><tr><td><code>TIMEUUID</code>     </td><td>no  
</td></tr><tr><td><code>THREE</code>        </td><td>yes 
</td></tr><tr><td><code>TOKEN</code>        </td><td>yes 
</td></tr><tr><td><code>TRUNCATE</code>     </td><td>yes 
</td></tr><tr><td><code>TTL</code>          </td><td>no  
</td></tr><tr><td><code>TWO</code>          </td><td>yes 
</td></tr><tr><td><code>TYPE</code>         </td><td>no  
</td></tr><tr><td><code>UPDATE</code>       </td><td>yes 
</td></tr><tr><td><code>USE</code>          </td><td>yes 
</td></tr><tr><td><code>USER</code>         </td><td>no  
</td></tr><tr><td><code>USERS</code>        
 </td><td>no  </td></tr><tr><td><code>USING</code>        </td><td>yes 
</td></tr><tr><td><code>UUID</code>         </td><td>no  
</td></tr><tr><td><code>VALUES</code>       </td><td>no  
</td></tr><tr><td><code>VARCHAR</code>      </td><td>no  
</td></tr><tr><td><code>VARINT</code>       </td><td>no  
</td></tr><tr><td><code>WHERE</code>        </td><td>yes 
</td></tr><tr><td><code>WITH</code>         </td><td>yes 
</td></tr><tr><td><code>WRITETIME</code>    </td><td>no  </td></tr></table><h2 
id="changes">Changes</h2><p>The following describes the addition/changes 
brought for each version of CQL.</p><h3 id="a3.0.1">3.0.1</h3><p>- <a 
href="#usingdates">Date strings</a> (and timestamps) are no longer accepted as 
valid <code>timeuuid</code> values. Doing so was a bug in the sense that date 
string are not valid <code>timeuuid</code>, and it was thus resulting in <a 
href="https://issues.apache.org/jira/browse/CASSANDRA-4936";>confusing 
behaviors</a>.  However, the following new methods h
 ave been added to help working with <code>timeuuid</code>: <code>now</code>, 
<code>minTimeuuid</code>, <code>maxTimeuuid</code> , <code>dateOf</code> and 
<code>unixTimestampOf</code>. See the <a href="#usingtimeuuid">section 
dedicated to these methods</a> for more detail.<br/>- &#8220;Float 
constants&#8221;#constants now support the exponent notation. In other words, 
<code>4.2E10</code> is now a valid floating point value.</p><h2 
id="Versioning">Versioning</h2><p>Versioning of the CQL language adheres to the 
<a href="http://semver.org";>Semantic Versioning</a> guidelines. Versions take 
the form X.Y.Z where X, Y, and Z are integer values representing major, minor, 
and patch level respectively. There is no correlation between Cassandra release 
versions and the CQL language 
version.</p><table><tr><th>version</th><th>description</th></tr><tr><td>Major   
  </td><td>The major version <em>must</em> be bumped when backward incompatible 
changes are introduced. This should rarely occur
 .</td></tr><tr><td>Minor     </td><td>Minor version increments occur when new, 
but backward compatible, functionality is introduced.</td></tr><tr><td>Patch    
 </td><td>The patch version is incremented when bugs are 
fixed.</td></tr></table></body></html>
\ No newline at end of file

Modified: cassandra/site/publish/download/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/download/index.html?rev=1439405&r1=1439404&r2=1439405&view=diff
==============================================================================
--- cassandra/site/publish/download/index.html (original)
+++ cassandra/site/publish/download/index.html Mon Jan 28 13:58:47 2013
@@ -49,8 +49,8 @@
   Cassandra releases include the core server, the <a 
href="http://wiki.apache.org/cassandra/NodeTool";>nodetool</a> administration 
command-line interface, and a development shell (<a 
href="http://cassandra.apache.org/doc/cql/CQL.html";><tt>cqlsh</tt></a> and the 
old <tt>cassandra-cli</tt>).
 
   <p>
-  The latest stable release of Apache Cassandra is 1.2.0
-  (released on 2013-01-02).  <i>If you're just
+  The latest stable release of Apache Cassandra is 1.2.1
+  (released on 2013-01-28).  <i>If you're just
   starting out, download this one.</i>
   </p>
 
@@ -59,13 +59,13 @@
   <ul>
     <li>
     <a class="filename" 
-       
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-bin.tar.gz";
+       
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.1/apache-cassandra-1.2.1-bin.tar.gz";
        onclick="javascript: 
pageTracker._trackPageview('/clicks/binary_download');">
-      apache-cassandra-1.2.0-bin.tar.gz
+      apache-cassandra-1.2.1-bin.tar.gz
     </a>
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-bin.tar.gz.asc";>PGP</a>]
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-bin.tar.gz.md5";>MD5</a>]
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-bin.tar.gz.sha1";>SHA1</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-bin.tar.gz.asc";>PGP</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-bin.tar.gz.md5";>MD5</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-bin.tar.gz.sha1";>SHA1</a>]
     </li>
     <li>
     <a href="http://wiki.apache.org/cassandra/DebianPackaging";>Debian 
installation instructions</a>
@@ -153,13 +153,13 @@
   <ul>
     <li>
     <a class="filename" 
-       
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-src.tar.gz";
+       
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.1/apache-cassandra-1.2.1-src.tar.gz";
        onclick="javascript: 
pageTracker._trackPageview('/clicks/source_download');">
-      apache-cassandra-1.2.0-src.tar.gz
+      apache-cassandra-1.2.1-src.tar.gz
     </a>
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-src.tar.gz.asc";>PGP</a>]
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-src.tar.gz.md5";>MD5</a>]
-    [<a 
href="http://www.apache.org/dist/cassandra/1.2.0/apache-cassandra-1.2.0-src.tar.gz.sha1";>SHA1</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-src.tar.gz.asc";>PGP</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-src.tar.gz.md5";>MD5</a>]
+    [<a 
href="http://www.apache.org/dist/cassandra/1.2.1/apache-cassandra-1.2.1-src.tar.gz.sha1";>SHA1</a>]
     </li>
   
     <li>

Modified: cassandra/site/publish/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/index.html?rev=1439405&r1=1439404&r2=1439405&view=diff
==============================================================================
--- cassandra/site/publish/index.html (original)
+++ cassandra/site/publish/index.html Mon Jan 28 13:58:47 2013
@@ -75,8 +75,8 @@
   <h2>Download</h2>
   <div class="inner rc">
     <p>
-    The latest release is <b>1.2.0</b>
-    <span class="relnotes">(<a 
href="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=refs/tags/cassandra-1.2.0";>Changes</a>)</span>
+    The latest release is <b>1.2.1</b>
+    <span class="relnotes">(<a 
href="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=refs/tags/cassandra-1.2.1";>Changes</a>)</span>
     </p>
 
     <p><a class="filename" href="/download/">Download options</a></p>

Modified: cassandra/site/src/settings.py
URL: 
http://svn.apache.org/viewvc/cassandra/site/src/settings.py?rev=1439405&r1=1439404&r2=1439405&view=diff
==============================================================================
--- cassandra/site/src/settings.py (original)
+++ cassandra/site/src/settings.py Mon Jan 28 13:58:47 2013
@@ -98,8 +98,8 @@ class CassandraDef(object):
     veryoldstable_version = '1.0.12'
     veryoldstable_release_date = '2012-10-04'
     veryoldstable_exists = True
-    stable_version = '1.2.0'
-    stable_release_date = '2013-01-02'
+    stable_version = '1.2.1'
+    stable_release_date = '2013-01-28'
     devel_version = '1.2.0-rc2'
     devel_release_date = '2012-12-21'
     devel_exists = False


Reply via email to