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><start> ::= TERMINAL
<non-terminal1> <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><start> ::= TERMINAL <non-terminal1>
<non-terminal1>
</pre></pre><ul><li>Nonterminal symbols will have <code><angle
brackets></code>.</li><li>As additional shortcut notations to BNF, we’ll
use traditional regular expression’s symbols (<code>?</code>,
<code>+</code> and <code>*</code>) to signify that a given symbol is optional
and/or can be repeated. We’ll also allow parentheses to group symbols and
the <code>[<characters>]</code> notation to represent any one of
<code><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><identifier>
::= any quoted or unquoted identifier, excluding reserved keywords
<tablename> ::= (<identifier> '.')? <identifier>
@@ -243,7 +243,9 @@ SELECT entry_title, content FROM posts W
<collection-type> ::= list '<' <native-type> '>'
| set '<' <native-type> '>'
| map '<' <native-type> ',' <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 “conflict-free” 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
“the epoch”: 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— 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
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 “conflict-free” 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
“the epoch”: 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— 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 <
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 ‘2013-01-01 00:05+0000’ but
stricly younger than ‘2013-02-02 10:00+0000’. 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 ‘2013-01-01
00:05+0000’ 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’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 <[email protected]>
- * 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/>- “Float
constants”#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