Author: eevans
Date: Mon Feb 14 16:59:51 2011
New Revision: 1070573

URL: http://svn.apache.org/viewvc?rev=1070573&view=rev
Log:
updated documentation for CREATE COLUMNFAMILY

Patch by eevans for CASSANDRA-1709; reviewed by gdusbabek

Modified:
    cassandra/trunk/doc/cql/CQL.html
    cassandra/trunk/doc/cql/CQL.textile

Modified: cassandra/trunk/doc/cql/CQL.html
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/doc/cql/CQL.html?rev=1070573&r1=1070572&r2=1070573&view=diff
==============================================================================
--- cassandra/trunk/doc/cql/CQL.html (original)
+++ cassandra/trunk/doc/cql/CQL.html Mon Feb 14 16:59:51 2011
@@ -1,4 +1,4 @@
-<?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"/></head><body><h1 
id="CassandraQueryLanguageCQLv0.99.1">Cassandra Query Language (CQL) 
v0.99.1</h1><h2 id="TableofContents">Table of Contents</h2><ol 
style="list-style: none;"><li><a 
href="#CassandraQueryLanguageCQLv0.99.1">Cassandra Query Language (CQL) 
v0.99.1</a><ol style="list-style: none;"><li><a href="#TableofContents">Table 
of Contents</a></li><li><a href="#USE">USE</a></li><li><a 
href="#SELECT">SELECT</a><ol style="list-style: none;"><li><a 
href="#SpecifyingColumns">Specifying Columns</a></li><li><a 
href="#ColumnFamily">Column Family</a></li><li><a 
href="#ConsistencyLevel">Consistency Level</a></li><li><a 
href="#Filteringrows">Filtering rows</a></li><li><a 
href="#Limits">Limits</a></li></ol></li>
 <li><a href="#UPDATE">UPDATE</a><ol style="list-style: none;"><li><a 
href="#ColumnFamily2">Column Family</a></li><li><a 
href="#ConsistencyLevel2">Consistency Level</a></li><li><a 
href="#SpecifyingColumnsandRow">Specifying Columns and 
Row</a></li></ol></li><li><a href="#DELETE">DELETE</a><ol style="list-style: 
none;"><li><a href="#SpecifyingColumns2">Specifying Columns</a></li><li><a 
href="#ColumnFamily3">Column Family</a></li><li><a 
href="#ConsistencyLevel3">Consistency Level</a></li><li><a 
href="#deleterows">Specifying Rows</a></li></ol></li><li><a 
href="#TRUNCATE">TRUNCATE</a></li><li><a href="#CREATEKEYSPACE">CREATE 
KEYSPACE</a></li><li><a href="#CommonIdioms">Common Idioms</a><ol 
style="list-style: none;"><li><a href="#consistency">Specifying 
Consistency</a></li><li><a href="#terms">Term specification</a><ol 
style="list-style: none;"><li><a href="#string_literals">String 
Literals</a></li><li><a href="#Unicode">Unicode</a></li><li><a 
href="#Integerslongs">Integers / longs
 </a></li><li><a 
href="#UUIDs">UUIDs</a></li></ol></li></ol></li></ol></li></ol><h2 
id="USE">USE</h2><p><i>Synopsis:</i></p><pre><code>USE &lt;KEYSPACE&gt;;
+<?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"/></head><body><h1 
id="CassandraQueryLanguageCQLv0.99.1">Cassandra Query Language (CQL) 
v0.99.1</h1><h2 id="TableofContents">Table of Contents</h2><ol 
style="list-style: none;"><li><a 
href="#CassandraQueryLanguageCQLv0.99.1">Cassandra Query Language (CQL) 
v0.99.1</a><ol style="list-style: none;"><li><a href="#TableofContents">Table 
of Contents</a></li><li><a href="#USE">USE</a></li><li><a 
href="#SELECT">SELECT</a><ol style="list-style: none;"><li><a 
href="#SpecifyingColumns">Specifying Columns</a></li><li><a 
href="#ColumnFamily">Column Family</a></li><li><a 
href="#ConsistencyLevel">Consistency Level</a></li><li><a 
href="#Filteringrows">Filtering rows</a></li><li><a 
href="#Limits">Limits</a></li></ol></li>
 <li><a href="#UPDATE">UPDATE</a><ol style="list-style: none;"><li><a 
href="#ColumnFamily2">Column Family</a></li><li><a 
href="#ConsistencyLevel2">Consistency Level</a></li><li><a 
href="#SpecifyingColumnsandRow">Specifying Columns and 
Row</a></li></ol></li><li><a href="#DELETE">DELETE</a><ol style="list-style: 
none;"><li><a href="#SpecifyingColumns2">Specifying Columns</a></li><li><a 
href="#ColumnFamily3">Column Family</a></li><li><a 
href="#ConsistencyLevel3">Consistency Level</a></li><li><a 
href="#deleterows">Specifying Rows</a></li></ol></li><li><a 
href="#TRUNCATE">TRUNCATE</a></li><li><a href="#CREATEKEYSPACE">CREATE 
KEYSPACE</a></li><li><a href="#CREATECOLUMNFAMILY">CREATE COLUMNFAMILY</a><ol 
style="list-style: none;"><li><a href="#columntypes">Specifying Column Type 
(optional)</a></li><li><a href="#ColumnFamilyOptionsoptional">Column Family 
Options (optional)</a></li></ol></li><li><a href="#CommonIdioms">Common 
Idioms</a><ol style="list-style: none;"><li><a href="#consis
 tency">Specifying Consistency</a></li><li><a href="#terms">Term 
specification</a><ol style="list-style: none;"><li><a 
href="#string_literals">String Literals</a></li><li><a 
href="#Unicode">Unicode</a></li><li><a href="#Integerslongs">Integers / 
longs</a></li><li><a 
href="#UUIDs">UUIDs</a></li></ol></li></ol></li></ol></li></ol><h2 
id="USE">USE</h2><p><i>Synopsis:</i></p><pre><code>USE &lt;KEYSPACE&gt;;
 </code></pre><p>A <code>USE</code> statement consists of the <code>USE</code> 
keyword, followed by a valid keyspace name.  Its purpose is to assign the 
per-connection, current working keyspace.  All subsequent keyspace-specific 
actions will be performed in the context of the supplied value.</p><h2 
id="SELECT">SELECT</h2><p><i>Synopsis:</i></p><pre><code>SELECT [FIRST N] 
[REVERSED] &lt;SELECT EXPR&gt; FROM &lt;COLUMN FAMILY&gt; [USING 
&lt;CONSISTENCY&gt;]
         [WHERE &lt;CLAUSE&gt;] [LIMIT N];
 </code></pre><p>A <code>SELECT</code> is used to read one or more records from 
a Cassandra column family. It returns a result-set of rows, where each row 
consists of a key and a collection of columns corresponding to the 
query.</p><h3 id="SpecifyingColumns">Specifying Columns</h3><pre><code>SELECT 
[FIRST N] [REVERSED] name1, name2, name3 FROM ...
@@ -28,5 +28,9 @@ UPDATE ... WHERE KEY IN (keyname1, keyna
 </code></pre><p>The <code>WHERE</code> clause is used to determine which 
row(s) a <code>DELETE</code> applies to.  The first form allows the 
specification of a single keyname using the <code>KEY</code> keyword and the 
<code>=</code> operator.  The second form allows a list of keyname terms to be 
specified using the <code>IN</code> notation and a parenthesized list of 
comma-delimited keyname terms.</p><h2 
id="TRUNCATE">TRUNCATE</h2><p><em>Synopsis:</em></p><pre><code>TRUNCATE 
&lt;COLUMN FAMILY&gt;
 </code></pre><p>Accepts a single argument for the column family name, and 
permanently removes all data from said column family.</p><h2 
id="CREATEKEYSPACE">CREATE 
KEYSPACE</h2><p><em>Synopsis:</em></p><pre><code>CREATE KEYSPACE &lt;NAME&gt; 
WITH replication_factor = &lt;NUM&gt; AND strategy_class = "&lt;STRATEGY&gt;"
     [AND strategy_options.&lt;OPTION&gt; = &lt;VALUE&gt; [AND 
strategy_options.&lt;OPTION&gt; = &lt;VALUE&gt;]];
-</code></pre><p>The <code>CREATE KEYSPACE</code> statement creates a new 
top-level namespace (aka &#8220;keyspace&#8221;). Valid names are any string 
constructed of alphanumeric characters and underscores, but must begin with a 
letter.  Properties such as replication strategy and count are specified during 
creation using the following accepted keyword 
arguments:</p><table><tr><th>keyword</th><th>required</th><th>description</th></tr><tr><td>replication_factor</td><td>yes</td><td>Numeric
 argument that specifies the number of replicas for this 
keyspace.</td></tr><tr><td>strategy_class</td><td>yes</td><td>Class name to use 
for managing replica placement.  Any of the shipped strategies can be used by 
specifying the class name relative to org.apache.cassandra.locator, others will 
need to be fully-qualified and located on the 
classpath.</td></tr><tr><td>strategy_options</td><td>no</td><td>Some strategies 
require additional arguments which can be supplied by appending the option na
 me to the <code>strategy_options</code> keyword, separated by a colon 
(<code>:</code>).  For example, a strategy option of &#8220;DC1&#8221; with a 
value of &#8220;1&#8221; would be specified as <code>strategy_options:DC1 = 
"1"</code>.</td></tr></table><h2 id="CommonIdioms">Common Idioms</h2><h3 
id="consistency">Specifying Consistency</h3><pre><code>... USING 
&lt;CONSISTENCY&gt; ...
+</code></pre><p>The <code>CREATE KEYSPACE</code> statement creates a new 
top-level namespace (aka &#8220;keyspace&#8221;). Valid names are any string 
constructed of alphanumeric characters and underscores, but must begin with a 
letter.  Properties such as replication strategy and count are specified during 
creation using the following accepted keyword 
arguments:</p><table><tr><th>keyword</th><th>required</th><th>description</th></tr><tr><td>replication_factor</td><td>yes</td><td>Numeric
 argument that specifies the number of replicas for this 
keyspace.</td></tr><tr><td>strategy_class</td><td>yes</td><td>Class name to use 
for managing replica placement.  Any of the shipped strategies can be used by 
specifying the class name relative to org.apache.cassandra.locator, others will 
need to be fully-qualified and located on the 
classpath.</td></tr><tr><td>strategy_options</td><td>no</td><td>Some strategies 
require additional arguments which can be supplied by appending the option na
 me to the <code>strategy_options</code> keyword, separated by a colon 
(<code>:</code>).  For example, a strategy option of &#8220;DC1&#8221; with a 
value of &#8220;1&#8221; would be specified as <code>strategy_options:DC1 = 
"1"</code>.</td></tr></table><h2 id="CREATECOLUMNFAMILY">CREATE 
COLUMNFAMILY</h2><p><em>Synopsis:</em></p><pre><code>CREATE COLUMNFAMILY 
&lt;COLUMN FAMILY&gt; [(name1 type, name2 type, ...)] [WITH keyword1 = arg1
+    [AND keyword2 = arg2 [AND ...]]];
+</code></pre><p><code>CREATE COLUMNFAMILY</code> statements create new column 
family namespaces under the current keyspace. Valid column family names are 
strings of alphanumeric characters and underscores, which begin with a 
letter.</p><h3 id="columntypes">Specifying Column Type 
(optional)</h3><pre><code>CREATE COLUMNFAMILY &lt;COLUMN FAMILY&gt; (name1 
type, name2 type) ...;
+</code></pre><p>It is possible to assign columns a type during column family 
creation.  Columns configured with a type are validated accordingly when a 
write occurs. Column types are specified as a parenthesized, comma-separated 
list of column term and type pairs.  The list of recognized types 
are:</p><table><tr><th>type</th><th>description</th></tr><tr><td>bytes</td><td>Arbitrary
 bytes (no validation)</td></tr><tr><td>ascii</td><td>ASCII character 
string</td></tr><tr><td>utf8</td><td>UTF8 encoded 
string</td></tr><tr><td>timeuuid</td><td>Type 1 
UUID</td></tr><tr><td>uuid</td><td>Type 4 
UUID</td></tr><tr><td>int</td><td>4-byte 
integer</td></tr><tr><td>long</td><td>8-byte long</td></tr></table><p><em>Note: 
In addition to the recognized types listed above, it is also possible to supply 
a string containing the name of a class (a sub-class of 
<code>AbstractType</code>), either fully qualified, or relative to the 
<code>org.apache.cassandra.db.marshal</code> package.</em></p><h3 id
 ="ColumnFamilyOptionsoptional">Column Family Options 
(optional)</h3><pre><code>CREATE COLUMNFAMILY ... WITH keyword1 = arg1 AND 
keyword2 = arg2;
+</code></pre><p>A number of optional keyword arguments can be supplied to 
control the configuration of a new column 
family.</p><table><tr><th>keyword</th><th>default</th><th>description</th></tr><tr><td>comparator</td><td>bytes</td><td>Determines
 sorting and validation of column names. Valid values are identical to the 
types listed in <a href="#columntypes">Specifying Column Type</a> 
above.</td></tr><tr><td>comment</td><td>none</td><td>A free-form, 
human-readable 
comment.</td></tr><tr><td>row_cache_size</td><td>0</td><td>Number of rows whose 
entire contents to cache in 
memory.</td></tr><tr><td>key_cache_size</td><td>200000</td><td>Number of keys 
per SSTable whose locations are kept in memory in &#8220;mostly LRU&#8221; 
order.</td></tr><tr><td>read_repair_chance</td><td>1.0</td><td>The probability 
with which read repairs should be invoked on non-quorum 
reads.</td></tr><tr><td>gc_grace_seconds</td><td>864000</td><td>Time to wait 
before garbage collecting tombstones (deletion m
 arkers).</td></tr><tr><td>default_validation</td><td>bytes</td><td>Determines 
validation of column values. Valid values are identical to the types listed in 
<a href="#columntypes">Specifying Column Type</a> 
above.</td></tr><tr><td>min_compaction_threshold</td><td>4</td><td>Minimum 
number of SSTables needed to start a minor 
compaction.</td></tr><tr><td>max_compaction_threshold</td><td>32</td><td>Maximum
 number of SSTables allowed before a minor compaction is 
forced.</td></tr><tr><td>row_cache_save_period_in_seconds</td><td>0</td><td>Number
 of seconds between saving row 
caches.</td></tr><tr><td>key_cache_save_period_in_seconds</td><td>14400</td><td>Number
 of seconds between saving key 
caches.</td></tr><tr><td>memtable_flush_after_mins</td><td>60</td><td>Maximum 
time to leave a dirty table 
unflushed.</td></tr><tr><td>memtable_throughput_in_mb</td><td>dynamic</td><td>Maximum
 size of the memtable before it is 
flushed.</td></tr><tr><td>memtable_operations_in_millions</td><td>dynam
 ic</td><td>Number of operations in millions before the memtable is 
flushed.</td></tr><tr><td>replicate_on_write</td><td>false</td><td></td></tr></table><h2
 id="CommonIdioms">Common Idioms</h2><h3 id="consistency">Specifying 
Consistency</h3><pre><code>... USING &lt;CONSISTENCY&gt; ...
 </code></pre><p>Consistency level specifications are made up the keyword 
<code>USING</code>, followed by a consistency level identifier. Valid 
consistency levels are as 
follows:</p><ul><li><code>CONSISTENCY.ZERO</code></li><li><code>CONSISTENCY.ONE</code>
 
(default)</li><li><code>CONSISTENCY.QUORUM</code></li><li><code>CONSISTENCY.ALL</code></li><li><code>CONSISTENCY.DCQUORUM</code></li><li><code>CONSISTENCY.DCQUORUMSYNC</code></li></ul><h3
 id="terms">Term specification</h3><p>Where possible, the type of terms are 
inferred; the following term types are supported:</p><h4 
id="string_literals">String Literals</h4><p>String literals are any value 
enclosed in double-quotes, (`"`).  String literals are treated as raw bytes; no 
interpolation is performed.</p><h4 id="Unicode">Unicode</h4><p>Unicode terms 
are any double-quoted string prefixed with a lower-case <code>u</code>, for 
example <code>u"© 2011 The Apache Software Foundation"</code>.  Unicode terms 
are identical to standard
  <a href="#string_literals">string literals</a>, with the exception that they 
are encoded to bytes using the UTF-8 charset.</p><h4 
id="Integerslongs">Integers / longs</h4><p>Integers are any term consisting 
soley of unquoted numericals, longs are any otherwise valid integer term 
followed by an upper case &#8220;L&#8221;, (e.g. 100L).  It is an error to 
specify an integer term that will not fit in 4 bytes unsigned, or a long that 
will not fit in 8 bytes unsigned.</p><h4 id="UUIDs">UUIDs</h4><p>There are two 
types of UUIDs supported by the CQL specification, time-based (version 1) and 
randomly generated (version 4). These are specified in statements using the 
<code>timeuuid(&lt;UUID STRING&gt;)</code> and <code>uuid(&lt;UUID 
STRING&gt;)</code> notations respectively.</p><p>In addition to the hex-based 
string representation, <code>timeuuid()</code> terms also accept arguments to 
specify the data-time component. The full list of <code>timeuuid()</code> 
arguments are:</p><table><
 
tr><th>argument</th><th>example</th><th>behavior</th></tr><tr><td>none</td><td>timeuuid()</td><td>Results
 in the creation of a new UUID based on system time of the node parsing the 
query.</td></tr><tr><td>now</td><td>timeuuid(&#8220;now&#8221;)</td><td>Results 
in the creation of a new UUID based on system time of the node parsing the 
query.</td></tr><tr><td>milliseconds since 
epoch</td><td>timeuuid(1296755320376)</td><td>Creates a UUID with a time 
component that is based on the supplied time-stamp.</td></tr><tr><td><a 
href="http://en.wikipedia.org/wiki/8601";>iso8601 
timestamp</a></td><td>timeuuid(&#8220;2011-02-01T14:00-0600&#8221;)</td><td>Creates
 a UUID with a time component that is based on the supplied 
time-stamp.</td></tr><tr><td><a 
href="http://tools.ietf.org/html/rfc4122";>string representation 
(hex)</a></td><td>timeuuid(&#8220;e9229b24-2fbe-11e0-a4de-0026c650d722&#8221;)</td><td>Reproduces
 the specified version 1 UUID node-side.</td></tr></table></body></html>
\ No newline at end of file

Modified: cassandra/trunk/doc/cql/CQL.textile
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/doc/cql/CQL.textile?rev=1070573&r1=1070572&r2=1070573&view=diff
==============================================================================
--- cassandra/trunk/doc/cql/CQL.textile (original)
+++ cassandra/trunk/doc/cql/CQL.textile Mon Feb 14 16:59:51 2011
@@ -175,6 +175,58 @@ The @CREATE KEYSPACE@ statement creates 
 |strategy_class|yes|Class name to use for managing replica placement.  Any of 
the shipped strategies can be used by specifying the class name relative to 
org.apache.cassandra.locator, others will need to be fully-qualified and 
located on the classpath.|
 |strategy_options|no|Some strategies require additional arguments which can be 
supplied by appending the option name to the @strategy_options@ keyword, 
separated by a colon (@:@).  For example, a strategy option of "DC1" with a 
value of "1" would be specified as @strategy_options:DC1 = "1"@.|
 
+h2. CREATE COLUMNFAMILY
+
+_Synopsis:_
+
+bc. 
+CREATE COLUMNFAMILY <COLUMN FAMILY> [(name1 type, name2 type, ...)] [WITH 
keyword1 = arg1
+    [AND keyword2 = arg2 [AND ...]]];
+
+@CREATE COLUMNFAMILY@ statements create new column family namespaces under the 
current keyspace. Valid column family names are strings of alphanumeric 
characters and underscores, which begin with a letter.
+
+h3(#columntypes). Specifying Column Type (optional)
+
+bc. 
+CREATE COLUMNFAMILY <COLUMN FAMILY> (name1 type, name2 type) ...;
+
+It is possible to assign columns a type during column family creation.  
Columns configured with a type are validated accordingly when a write occurs. 
Column types are specified as a parenthesized, comma-separated list of column 
term and type pairs.  The list of recognized types are:
+
+|_. type|_. description|
+|bytes|Arbitrary bytes (no validation)|
+|ascii|ASCII character string|
+|utf8|UTF8 encoded string|
+|timeuuid|Type 1 UUID|
+|uuid|Type 4 UUID|
+|int|4-byte integer|
+|long|8-byte long|
+
+_Note: In addition to the recognized types listed above, it is also possible 
to supply a string containing the name of a class (a sub-class of 
@AbstractType@), either fully qualified, or relative to the 
@org.apache.cassandra.db.marshal@ package._
+
+h3. Column Family Options (optional)
+
+bc. 
+CREATE COLUMNFAMILY ... WITH keyword1 = arg1 AND keyword2 = arg2;
+
+A number of optional keyword arguments can be supplied to control the 
configuration of a new column family.
+
+|_. keyword|_. default|_. description|
+|comparator|bytes|Determines sorting and validation of column names. Valid 
values are identical to the types listed in "Specifying Column 
Type":#columntypes above.|
+|comment|none|A free-form, human-readable comment.|
+|row_cache_size|0|Number of rows whose entire contents to cache in memory.|
+|key_cache_size|200000|Number of keys per SSTable whose locations are kept in 
memory in "mostly LRU" order.|
+|read_repair_chance|1.0|The probability with which read repairs should be 
invoked on non-quorum reads.|
+|gc_grace_seconds|864000|Time to wait before garbage collecting tombstones 
(deletion markers).|
+|default_validation|bytes|Determines validation of column values. Valid values 
are identical to the types listed in "Specifying Column Type":#columntypes 
above.|
+|min_compaction_threshold|4|Minimum number of SSTables needed to start a minor 
compaction.|
+|max_compaction_threshold|32|Maximum number of SSTables allowed before a minor 
compaction is forced.|
+|row_cache_save_period_in_seconds|0|Number of seconds between saving row 
caches.|
+|key_cache_save_period_in_seconds|14400|Number of seconds between saving key 
caches.|
+|memtable_flush_after_mins|60|Maximum time to leave a dirty table unflushed.|
+|memtable_throughput_in_mb|dynamic|Maximum size of the memtable before it is 
flushed.|
+|memtable_operations_in_millions|dynamic|Number of operations in millions 
before the memtable is flushed.|
+|replicate_on_write|false| |
+
 h2. Common Idioms
 
 h3(#consistency). Specifying Consistency


Reply via email to