You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2015/03/01 07:28:01 UTC

svn commit: r1663032 - in /phoenix: phoenix-docs/src/docsrc/help/phoenix.csv phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt site/publish/language/datatypes.html site/publish/language/functions.html site/publish/language/index.html

Author: jamestaylor
Date: Sun Mar  1 06:28:00 2015
New Revision: 1663032

URL: http://svn.apache.org/r1663032
Log:
Update docs with functional indexes, index hint, RAND, and ARRAY

Modified:
    phoenix/phoenix-docs/src/docsrc/help/phoenix.csv
    phoenix/phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt
    phoenix/site/publish/language/datatypes.html
    phoenix/site/publish/language/functions.html
    phoenix/site/publish/language/index.html

Modified: phoenix/phoenix-docs/src/docsrc/help/phoenix.csv
URL: http://svn.apache.org/viewvc/phoenix/phoenix-docs/src/docsrc/help/phoenix.csv?rev=1663032&r1=1663031&r2=1663032&view=diff
==============================================================================
--- phoenix/phoenix-docs/src/docsrc/help/phoenix.csv (original)
+++ phoenix/phoenix-docs/src/docsrc/help/phoenix.csv Sun Mar  1 06:28:00 2015
@@ -186,7 +186,7 @@ ALTER TABLE my_table SET IMMUTABLE_ROWS=
 
 "Commands","CREATE INDEX","
 CREATE INDEX [IF NOT EXISTS] indexName
-ON tableRef ( columnRef [ASC | DESC] [,...] )
+ON tableRef ( expression [ASC | DESC] [,...] )
 [ INCLUDE ( columnRef [,...] ) ]
 [indexOptions] [ SPLIT ON ( splitPoint [,...] ) ]
 ","
@@ -197,11 +197,13 @@ If a table has rows that are write-once
 in the CREATE TABLE statement or afterwards in an ALTER TABLE statement). This reduces the overhead at write time to maintain the index.
 Otherwise, if this property is not set on the table, then incremental index maintenance will be performed on the server side when
 the data changes.
+As of the 4.3 release, functional indexes are supported which allow arbitrary expressions rather than solely column names to be indexed.
 ","
 CREATE INDEX my_idx ON sales.opportunity(last_updated_date DESC)
 CREATE INDEX my_idx ON log.event(created_date DESC) INCLUDE (name, payload) SALT_BUCKETS=10
 CREATE INDEX IF NOT EXISTS my_comp_idx ON server_metrics ( gc_time DESC, created_date DESC )
     DATA_BLOCK_ENCODING='NONE',VERSIONS=?,MAX_FILESIZE=2000000 split on (?, ?, ?)
+CREATE INDEX my_idx ON sales.opportunity(UPPER(contact_name))
 "
 
 "Commands","DROP INDEX","
@@ -365,7 +367,9 @@ INDEX | NO_INDEX | USE_INDEX_OVER_DATA_T
 ","
 Use the INDEX(<table_name> <index_name>...) to suggest which index to use for a given
 query. Double quotes may be used to surround a table_name and/or index_name to make
-them case sensitive.
+them case sensitive. As of the 4.3 release, this will force an index to be used, even
+if it doesn't contain all referenced columns, by joining back to the data table to
+retrieve any columns not contained by the index.
 
 Use the NO_INDEX hint to force the data table to be used for a query.
 
@@ -424,8 +428,7 @@ NO_STAR_JOIN
 "
 
 "Other Grammar","Column Def","
-columnRef dataType [ [ARRAY] '[' [number] ']' ]
-[[NOT] NULL] [PRIMARY KEY [ASC | DESC] ]
+columnRef dataType [[NOT] NULL] [PRIMARY KEY [ASC | DESC] ]
 ","
 Define a new primary key column. The column name is case insensitive by default and
 case sensitive if double quoted. The sort order of a primary key may be ascending (ASC)
@@ -758,9 +761,25 @@ NULL
 "
 
 "Other Grammar","Data Type","
-charType | varcharType | decimalType | tinyintType | smallintType | integerType | bigintType | floatType | doubleType | timestampType | dateType | timeType | unsignedTimestampType | unsignedDateType | unsignedTimeType | unsignedTinyintType | unsignedSmallintType | unsignedIntType | unsignedLongType | unsignedFloatType | unsignedDoubleType | binaryType | varbinaryType
+{ sqlDataType | hbaseDataType } [ ARRAY [ '[' [ dimensionInt ] ']' ] ]
 ","
-A type name.
+A type name optionally declared as an array. An array is mapped to ""java.sql.Array"".
+Only single dimension arrays are supported and varbinary arrays are not allowed.
+","
+CHAR(15)
+VARCHAR
+DECIMAL(10,2)
+DOUBLE
+DATE
+VARCHAR ARRAY
+CHAR(10) ARRAY [5]
+INTEGER []
+"
+
+"Other Grammar","SQL Data Type","
+charType | varcharType | decimalType | tinyintType | smallintType | integerType | bigintType | floatType | doubleType | timestampType | dateType | timeType | binaryType | varbinaryType
+","
+A standard SQL data type.
 ","
 TINYINT
 CHAR(15)
@@ -773,6 +792,16 @@ BINARY(200)
 DATE
 "
 
+"Other Grammar","HBase Data Type","
+unsignedTimestampType | unsignedDateType | unsignedTimeType | unsignedTinyintType | unsignedSmallintType | unsignedIntType | unsignedLongType | unsignedFloatType | unsignedDoubleType
+","
+A type that maps to a native primitive HBase value serialized through the Bytes.toBytes() utility methods. Only positive values are allowed.
+","
+UNSIGNED_INT
+UNSIGNED_DATE
+UNSIGNED_LONG
+"
+
 "Other Grammar","String","
 'anythingExceptSingleQuote'
 ","
@@ -979,7 +1008,7 @@ UNSIGNED_DOUBLE
 "
 
 "Data Types","DECIMAL Type","
-DECIMAL
+DECIMAL [ (precisionInt, scaleInt) ]
 ","
 Data type with fixed precision and scale. A user can specify precision and scale by expression DECIMAL(precision,scale) in a DDL statement, for example, DECIMAL(10,2).
 The maximum precision is 38 digits. Mapped to ""java.math.BigDecimal"". The binary representation is binary
@@ -987,6 +1016,7 @@ comparable, variable length format. When
 with a null byte unless it is the last column.
 ","
 DECIMAL
+DECIMAL(10,2)
 "
 
 "Data Types","BOOLEAN Type","
@@ -1128,6 +1158,18 @@ Mapped to ""byte[]"".
 VARBINARY
 "
 
+"Data Types","ARRAY","
+ARRAY [ '[' [ dimensionInt ] ']' ]
+","
+Mapped to ""java.sql.Array"". Every primitive type except for VARBINARY may be declared
+as an ARRAY. Only single dimensional arrays are supported.
+","
+VARCHAR ARRAY
+CHAR(10) ARRAY [5]
+INTEGER []
+INTEGER [100]
+"
+
 "Functions (Aggregate)","AVG","
 AVG ( { numericTerm } )
 ","
@@ -1477,6 +1519,18 @@ This method returns a decimal number.
 TO_NUMBER('$123.33', '\u00A4###.##')
 "
 
+"Functions (Numeric)","RAND","
+RAND( [seedNumber] )
+","
+Function that produces a random, uniformly distributed double value between 0.0 (inclusive) and
+1.0 (exclusive). If a seed is provided, then the the returned value is identical across each
+invocation for the same row. If a seed is not provided, then the returned value is different for
+each invocation. The seed must be a constant.
+","
+RAND()
+RAND(5)
+"
+
 "Functions (String)","UPPER","
 UPPER( stringTerm )
 ","

Modified: phoenix/phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt
URL: http://svn.apache.org/viewvc/phoenix/phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt?rev=1663032&r1=1663031&r2=1663032&view=diff
==============================================================================
--- phoenix/phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt (original)
+++ phoenix/phoenix-docs/src/tools/org/h2/build/doc/dictionary.txt Sun Mar  1 06:28:00 2015
@@ -726,4 +726,4 @@ coercion coerce coerces bas precise subs
 decisions choosing tiebreaker broadcast substantially unlikely act decision adjacent
 managed declares tenant tenants especially truth determines misspelled salting salted turning adhoc
 rpc doled paranthesis reaching satisfy cocos satisfies pads indian inputting prague
-guideposts collects ilike rhs
+guideposts collects ilike rhs uniformly

Modified: phoenix/site/publish/language/datatypes.html
URL: http://svn.apache.org/viewvc/phoenix/site/publish/language/datatypes.html?rev=1663032&r1=1663031&r2=1663032&view=diff
==============================================================================
--- phoenix/site/publish/language/datatypes.html (original)
+++ phoenix/site/publish/language/datatypes.html Sun Mar  1 06:28:00 2015
@@ -1,7 +1,7 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2015-02-24
+ Generated by Apache Maven Doxia at 2015-02-28
  Rendered using Reflow Maven Skin 1.1.0 (http://andriusvelykis.github.io/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
@@ -186,6 +186,8 @@
     <a href="#binary_type" >BINARY Type</a><br />
 
     <a href="#varbinary_type" >VARBINARY Type</a><br />
+
+    <a href="#array" >ARRAY</a><br />
 </p>
 syntax-end -->
 <!-- railroad-start -->
@@ -208,9 +210,9 @@ syntax-end -->
                 <a href="#smallint_type" >SMALLINT Type</a><br />
             
                 <a href="#unsigned_smallint_type" >UNSIGNED_SMALLINT Type</a><br />
-                    </td><td class="index">
             
                 <a href="#float_type" >FLOAT Type</a><br />
+                    </td><td class="index">
             
                 <a href="#unsigned_float_type" >UNSIGNED_FLOAT Type</a><br />
             
@@ -225,11 +227,11 @@ syntax-end -->
                 <a href="#time_type" >TIME Type</a><br />
             
                 <a href="#date_type" >DATE Type</a><br />
-                    </td><td class="index">
             
                 <a href="#timestamp_type" >TIMESTAMP Type</a><br />
             
                 <a href="#unsigned_time_type" >UNSIGNED_TIME Type</a><br />
+                    </td><td class="index">
             
                 <a href="#unsigned_date_type" >UNSIGNED_DATE Type</a><br />
             
@@ -242,6 +244,8 @@ syntax-end -->
                 <a href="#binary_type" >BINARY Type</a><br />
             
                 <a href="#varbinary_type" >VARBINARY Type</a><br />
+            
+                <a href="#array" >ARRAY</a><br />
                     </td>
     </tr>
 </table>
@@ -467,20 +471,20 @@ syntax-end -->
 <h3 id="decimal_type" class="notranslate">DECIMAL Type</h3>
 <!-- railroad-start -->
 <pre name="bnf" style="display: none">
-DECIMAL
+DECIMAL [ (<a href="index.html#int">precisionInt</a>, <a href="index.html#int">scaleInt</a>) ]
 </pre>
 <div name="railroad">
-<code class="c">DECIMAL</code>
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c">DECIMAL</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">( <a href="index.html#int">precisionInt</a> , <a href="index.html#int">scaleInt</a> )</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
 </div>
 <!-- railroad-end -->
 <!-- syntax-start
 <pre>
-DECIMAL
+DECIMAL [ (<a href="index.html#int">precisionInt</a>, <a href="index.html#int">scaleInt</a>) ]
 </pre>
 syntax-end -->
 <p>Data type with fixed precision and scale. A user can specify precision and scale by expression <code>DECIMAL</code>(precision,scale) in a <code>DDL</code> statement, for example, <code>DECIMAL</code>(10,2). The maximum precision is 38 digits. Mapped to <code>java.math.BigDecimal</code>. The binary representation is binary comparable, variable length format. When used in a row key, it is terminated with a null byte unless it is the last column.</p>
 <p>Example:</p>
-<p class="notranslate">DECIMAL</p>
+<p class="notranslate">DECIMAL<br />DECIMAL(10,2)</p>
 
 <h3 id="boolean_type" class="notranslate">BOOLEAN Type</h3>
 <!-- railroad-start -->
@@ -680,6 +684,24 @@ syntax-end -->
 <p>Example:</p>
 <p class="notranslate">VARBINARY</p>
 
+<h3 id="array" class="notranslate">ARRAY</h3>
+<!-- railroad-start -->
+<pre name="bnf" style="display: none">
+ARRAY [ &apos;[&apos; [ <a href="index.html#int">dimensionInt</a> ] &apos;]&apos; ]
+</pre>
+<div name="railroad">
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c">ARRAY</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">[</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#int">dimensionInt</a></code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">]</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
+</div>
+<!-- railroad-end -->
+<!-- syntax-start
+<pre>
+ARRAY [ &apos;[&apos; [ <a href="index.html#int">dimensionInt</a> ] &apos;]&apos; ]
+</pre>
+syntax-end -->
+<p>Mapped to <code>java.sql.Array</code>. Every primitive type except for <code>VARBINARY</code> may be declared as an <code>ARRAY</code>. Only single dimensional arrays are supported.</p>
+<p>Example:</p>
+<p class="notranslate">VARCHAR ARRAY<br />CHAR(10) ARRAY [5]<br />INTEGER []<br />INTEGER [100]</p>
+
 <!-- [close] { -->
 
 <!-- } -->

Modified: phoenix/site/publish/language/functions.html
URL: http://svn.apache.org/viewvc/phoenix/site/publish/language/functions.html?rev=1663032&r1=1663031&r2=1663032&view=diff
==============================================================================
--- phoenix/site/publish/language/functions.html (original)
+++ phoenix/site/publish/language/functions.html Sun Mar  1 06:28:00 2015
@@ -1,7 +1,7 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2015-02-24
+ Generated by Apache Maven Doxia at 2015-02-28
  Rendered using Reflow Maven Skin 1.1.0 (http://andriusvelykis.github.io/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
@@ -320,6 +320,8 @@ syntax-end -->
     <a href="#trunc" >TRUNC</a><br />
 
     <a href="#to_number" >TO_NUMBER</a><br />
+
+    <a href="#rand" >RAND</a><br />
 </p>
 syntax-end -->
 <!-- railroad-start -->
@@ -338,6 +340,8 @@ syntax-end -->
                     </td><td class="index">
             
                 <a href="#to_number" >TO_NUMBER</a><br />
+            
+                <a href="#rand" >RAND</a><br />
                     </td>
     </tr>
 </table>
@@ -899,6 +903,24 @@ syntax-end -->
 <p>Example:</p>
 <p class="notranslate">TO_NUMBER(&#39;&#36;123.33&#39;, &#39;\u00A4###.##&#39;)</p>
 
+<h3 id="rand" class="notranslate">RAND</h3>
+<!-- railroad-start -->
+<pre name="bnf" style="display: none">
+RAND( [<a href="index.html#number">seedNumber</a>] )
+</pre>
+<div name="railroad">
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c">RAND (</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#number">seedNumber</a></code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table>
+</div>
+<!-- railroad-end -->
+<!-- syntax-start
+<pre>
+RAND( [<a href="index.html#number">seedNumber</a>] )
+</pre>
+syntax-end -->
+<p>Function that produces a random, uniformly distributed double value between 0.0 (inclusive) and 1.0 (exclusive). If a seed is provided, then the the returned value is identical across each invocation for the same row. If a seed is not provided, then the returned value is different for each invocation. The seed must be a constant.</p>
+<p>Example:</p>
+<p class="notranslate">RAND()<br />RAND(5)</p>
+
 <h3 id="substr" class="notranslate">SUBSTR</h3>
 <!-- railroad-start -->
 <pre name="bnf" style="display: none">

Modified: phoenix/site/publish/language/index.html
URL: http://svn.apache.org/viewvc/phoenix/site/publish/language/index.html?rev=1663032&r1=1663031&r2=1663032&view=diff
==============================================================================
--- phoenix/site/publish/language/index.html (original)
+++ phoenix/site/publish/language/index.html Sun Mar  1 06:28:00 2015
@@ -1,7 +1,7 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2015-02-24
+ Generated by Apache Maven Doxia at 2015-02-28
  Rendered using Reflow Maven Skin 1.1.0 (http://andriusvelykis.github.io/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
@@ -301,6 +301,10 @@ syntax-end -->
 
     <a href="#data_type" >Data Type</a><br />
 
+    <a href="#sql_data_type" >SQL Data Type</a><br />
+
+    <a href="#hbase_data_type" >HBase Data Type</a><br />
+
     <a href="#string" >String</a><br />
 
     <a href="#boolean" >Boolean</a><br />
@@ -407,6 +411,10 @@ syntax-end -->
             
                 <a href="#data_type" >Data Type</a><br />
             
+                <a href="#sql_data_type" >SQL Data Type</a><br />
+            
+                <a href="#hbase_data_type" >HBase Data Type</a><br />
+            
                 <a href="#string" >String</a><br />
             
                 <a href="#boolean" >Boolean</a><br />
@@ -667,26 +675,26 @@ ALTER TABLE my_schema.my_table ADD d.dep
 <!-- railroad-start -->
 <pre name="bnf" style="display: none">
 CREATE INDEX [IF NOT EXISTS] <a href="index.html#name">indexName</a>
-ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#column_ref">columnRef</a> [ASC | DESC] [,...] )
+ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#expression">expression</a> [ASC | DESC] [,...] )
 [ INCLUDE ( <a href="index.html#column_ref">columnRef</a> [,...] ) ]
 [<a href="index.html#options">indexOptions</a>] [ SPLIT ON ( <a href="index.html#split_point">splitPoint</a> [,...] ) ]
 </pre>
 <div name="railroad">
-<table class="railroad"><tr class="railroad"><td class="d"><code class="c">CREATE INDEX</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">IF NOT EXISTS</code></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><code class="c"><a href="index.html#name">indexName</a></code></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="d"><code class="c">ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#column_ref">columnRef</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c
 ">ASC</code></td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">DESC</code></td><td class="le"></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">INCLUDE ( <a href="index.html#column_ref">columnRef</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls
 "></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table></td><td class="le"></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#options">indexOptions</a></code></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">SPLIT ON ( <a href="index.html#split_point">splitPoint</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr cla
 ss="railroad"><td class="ls"></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c">CREATE INDEX</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">IF NOT EXISTS</code></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><code class="c"><a href="index.html#name">indexName</a></code></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="d"><code class="c">ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#expression">expression</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="
 c">ASC</code></td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">DESC</code></td><td class="le"></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">INCLUDE ( <a href="index.html#column_ref">columnRef</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="l
 s"></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table></td><td class="le"></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#options">indexOptions</a></code></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">SPLIT ON ( <a href="index.html#split_point">splitPoint</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr cl
 ass="railroad"><td class="ls"></td><td class="d"><code class="c">, ...</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">)</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
 </div>
 <!-- railroad-end -->
 <!-- syntax-start
 <pre>
 CREATE INDEX [IF NOT EXISTS] <a href="index.html#name">indexName</a>
-ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#column_ref">columnRef</a> [ASC | DESC] [,...] )
+ON <a href="index.html#table_ref">tableRef</a> ( <a href="index.html#expression">expression</a> [ASC | DESC] [,...] )
 [ INCLUDE ( <a href="index.html#column_ref">columnRef</a> [,...] ) ]
 [<a href="index.html#options">indexOptions</a>] [ SPLIT ON ( <a href="index.html#split_point">splitPoint</a> [,...] ) ]
 </pre>
 syntax-end -->
-<p>Creates a new secondary index on a table or view. The index will be automatically kept in sync with the table as the data changes. At query time, the optimizer will use the index if it contains all columns referenced in the query and produces the most efficient execution plan. If a table has rows that are write-once and append-only, then the table may set the <code>IMMUTABLE_ROWS</code> property to true (either up-front in the <code>CREATE TABLE</code> statement or afterwards in an <code>ALTER TABLE</code> statement). This reduces the overhead at write time to maintain the index. Otherwise, if this property is not set on the table, then incremental index maintenance will be performed on the server side when the data changes.</p>
+<p>Creates a new secondary index on a table or view. The index will be automatically kept in sync with the table as the data changes. At query time, the optimizer will use the index if it contains all columns referenced in the query and produces the most efficient execution plan. If a table has rows that are write-once and append-only, then the table may set the <code>IMMUTABLE_ROWS</code> property to true (either up-front in the <code>CREATE TABLE</code> statement or afterwards in an <code>ALTER TABLE</code> statement). This reduces the overhead at write time to maintain the index. Otherwise, if this property is not set on the table, then incremental index maintenance will be performed on the server side when the data changes. As of the 4.3 release, functional indexes are supported which allow arbitrary expressions rather than solely column names to be indexed.</p>
 <p>Example:</p>
 <p class="notranslate">
-CREATE INDEX my_idx ON sales.opportunity(last_updated_date DESC)<br />CREATE INDEX my_idx ON log.event(created_date DESC) INCLUDE (name, payload) SALT_BUCKETS=10<br />CREATE INDEX IF NOT EXISTS my_comp_idx ON server_metrics ( gc_time DESC, created_date DESC )<br />&nbsp;&nbsp;&nbsp;&nbsp;DATA_BLOCK_ENCODING=&#39;NONE&#39;,VERSIONS=?,MAX_FILESIZE=2000000 split on (?, ?, ?)</p>
+CREATE INDEX my_idx ON sales.opportunity(last_updated_date DESC)<br />CREATE INDEX my_idx ON log.event(created_date DESC) INCLUDE (name, payload) SALT_BUCKETS=10<br />CREATE INDEX IF NOT EXISTS my_comp_idx ON server_metrics ( gc_time DESC, created_date DESC )<br />&nbsp;&nbsp;&nbsp;&nbsp;DATA_BLOCK_ENCODING=&#39;NONE&#39;,VERSIONS=?,MAX_FILESIZE=2000000 split on (?, ?, ?)<br />CREATE INDEX my_idx ON sales.opportunity(UPPER(contact_name))</p>
 
 <h3 id="drop_index" class="notranslate">DROP INDEX</h3>
 <!-- railroad-start -->
@@ -839,7 +847,7 @@ syntax-end -->
 INDEX | NO_INDEX | USE_INDEX_OVER_DATA_TABLE | USE_DATA_OVER_INDEX_TABLE
 </pre>
 syntax-end -->
-<p>Use the <code>INDEX</code>(&lt;table_name&gt; &lt;index_name&gt;...) to suggest which index to use for a given query. Double quotes may be used to surround a table_name and/or index_name to make them case sensitive.</p><p>Use the <code>NO_INDEX</code> hint to force the data table to be used for a query.</p><p>Use the <code>USE_INDEX_OVER_DATA_TABLE</code> hint to act as a tiebreaker for choosing the index table over the data table when all other criteria are equal. Note that this is the default optimizer decision.</p><p>Use the <code>USE_DATA_OVER_INDEX_TABLE</code> hint to act as a tiebreaker for choosing the data table over the index table when all other criteria are equal.</p>
+<p>Use the <code>INDEX</code>(&lt;table_name&gt; &lt;index_name&gt;...) to suggest which index to use for a given query. Double quotes may be used to surround a table_name and/or index_name to make them case sensitive. As of the 4.3 release, this will force an index to be used, even if it doesn&#39;t contain all referenced columns, by joining back to the data table to retrieve any columns not contained by the index.</p><p>Use the <code>NO_INDEX</code> hint to force the data table to be used for a query.</p><p>Use the <code>USE_INDEX_OVER_DATA_TABLE</code> hint to act as a tiebreaker for choosing the index table over the data table when all other criteria are equal. Note that this is the default optimizer decision.</p><p>Use the <code>USE_DATA_OVER_INDEX_TABLE</code> hint to act as a tiebreaker for choosing the data table over the index table when all other criteria are equal.</p>
 <p>Example:</p>
 <p class="notranslate">INDEX(employee emp_name_idx emp_start_date_idx)<br />NO_INDEX<br />USE_INDEX_OVER_DATA_TABLE<br />USE_DATA_OVER_INDEX_TABLE</p>
 
@@ -884,12 +892,11 @@ syntax-end -->
 
 <h3 id="column_def" class="notranslate">Column Def</h3>
 <!-- railroad-start -->
-<table class="railroad"><tr class="railroad"><td class="d"><code class="c"><a href="index.html#column_ref">columnRef</a> <a href="index.html#data_type">dataType</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">ARRAY</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">[</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#number">number</a></code></td><td class="le"></td></tr></table></td><td cl
 ass="d"><code class="c">]</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table><br /><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">NOT</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">NULL</code></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="
 c">PRIMARY KEY</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c">ASC</code></td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">DESC</code></td><td class="le"></td></tr></table></td><td class="le"></td></tr></table></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c"><a href="index.html#column_ref">columnRef</a> <a href="index.html#data_type">dataType</a></code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">NOT</code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">NULL</code></td></tr></table></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td clas
 s="d"><code class="c">PRIMARY KEY</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c">ASC</code></td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c">DESC</code></td><td class="le"></td></tr></table></td><td class="le"></td></tr></table></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
 <!-- railroad-end -->
 <!-- syntax-start
 <pre>
-<a href="index.html#column_ref">columnRef</a> <a href="index.html#data_type">dataType</a> [ [ARRAY] &apos;[&apos; [<a href="index.html#number">number</a>] &apos;]&apos; ]
-[[NOT] NULL] [PRIMARY KEY [ASC | DESC] ]
+<a href="index.html#column_ref">columnRef</a> <a href="index.html#data_type">dataType</a> [[NOT] NULL] [PRIMARY KEY [ASC | DESC] ]
 </pre>
 syntax-end -->
 <p>Define a new primary key column. The column name is case insensitive by default and case sensitive if double quoted. The sort order of a primary key may be ascending (<code>ASC</code>) or descending. The default is ascending.</p>
@@ -1306,17 +1313,43 @@ syntax-end -->
 
 <h3 id="data_type" class="notranslate">Data Type</h3>
 <!-- railroad-start -->
-<table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c"><a href="datatypes.html#char_type">charType</a></code></td><td class="te"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#varchar_type">varcharType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#decimal_type">decimalType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#tinyint_type">tinyintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#smallint_type">smallintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#integer_type">integerType</a></code></td><td class="ke"></td></tr><tr class="
 railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#bigint_type">bigintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#float_type">floatType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#double_type">doubleType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#timestamp_type">timestampType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#date_type">dateType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#time_type">timeType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><co
 de class="c"><a href="datatypes.html#unsigned_timestamp_type">unsignedTimestampType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_date_type">unsignedDateType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_time_type">unsignedTimeType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_tinyint_type">unsignedTinyintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_smallint_type">unsignedSmallintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_int_type">unsignedIntType</a></code></td><td class="ke"></td></tr><
 tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_long_type">unsignedLongType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_float_type">unsignedFloatType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_double_type">unsignedDoubleType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#binary_type">binaryType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="datatypes.html#varbinary_type">varbinaryType</a></code></td><td class="le"></td></tr></table>
+<table class="railroad"><tr class="railroad"><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c"><a href="index.html#sql_data_type">sqlDataType</a></code></td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#hbase_data_type">hbaseDataType</a></code></td><td class="le"></td></tr></table></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">ARRAY</code></td><td class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr class="railroad"><td class="d"><code class="c">[</code></td><td class="d"><table class="railr
 oad"><tr class="railroad"><td class="ts"></td><td class="d">&nbsp;</td><td class="te"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="index.html#int">dimensionInt</a></code></td><td class="le"></td></tr></table></td><td class="d"><code class="c">]</code></td></tr></table></td><td class="le"></td></tr></table></td></tr></table></td><td class="le"></td></tr></table></td></tr></table>
+<!-- railroad-end -->
+<!-- syntax-start
+<pre>
+{ <a href="index.html#sql_data_type">sqlDataType</a> | <a href="index.html#hbase_data_type">hbaseDataType</a> } [ ARRAY [ &apos;[&apos; [ <a href="index.html#int">dimensionInt</a> ] &apos;]&apos; ] ]
+</pre>
+syntax-end -->
+<p>A type name optionally declared as an array. An array is mapped to <code>java.sql.Array</code>. Only single dimension arrays are supported and varbinary arrays are not allowed.</p>
+<p>Example:</p>
+<p class="notranslate">CHAR(15)<br />VARCHAR<br />DECIMAL(10,2)<br />DOUBLE<br />DATE<br />VARCHAR ARRAY<br />CHAR(10) ARRAY [5]<br />INTEGER []</p>
+
+<h3 id="sql_data_type" class="notranslate">SQL Data Type</h3>
+<!-- railroad-start -->
+<table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c"><a href="datatypes.html#char_type">charType</a></code></td><td class="te"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#varchar_type">varcharType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#decimal_type">decimalType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#tinyint_type">tinyintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#smallint_type">smallintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#integer_type">integerType</a></code></td><td class="ke"></td></tr><tr class="
 railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#bigint_type">bigintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#float_type">floatType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#double_type">doubleType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#timestamp_type">timestampType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#date_type">dateType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#time_type">timeType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><co
 de class="c"><a href="datatypes.html#binary_type">binaryType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="datatypes.html#varbinary_type">varbinaryType</a></code></td><td class="le"></td></tr></table>
 <!-- railroad-end -->
 <!-- syntax-start
 <pre>
-<a href="datatypes.html#char_type">charType</a> | <a href="datatypes.html#varchar_type">varcharType</a> | <a href="datatypes.html#decimal_type">decimalType</a> | <a href="datatypes.html#tinyint_type">tinyintType</a> | <a href="datatypes.html#smallint_type">smallintType</a> | <a href="datatypes.html#integer_type">integerType</a> | <a href="datatypes.html#bigint_type">bigintType</a> | <a href="datatypes.html#float_type">floatType</a> | <a href="datatypes.html#double_type">doubleType</a> | <a href="datatypes.html#timestamp_type">timestampType</a> | <a href="datatypes.html#date_type">dateType</a> | <a href="datatypes.html#time_type">timeType</a> | <a href="datatypes.html#unsigned_timestamp_type">unsignedTimestampType</a> | <a href="datatypes.html#unsigned_date_type">unsignedDateType</a> | <a href="datatypes.html#unsigned_time_type">unsignedTimeType</a> | <a href="datatypes.html#unsigned_tinyint_type">unsignedTinyintType</a> | <a href="datatypes.html#unsigned_smallint_type">unsignedSmall
 intType</a> | <a href="datatypes.html#unsigned_int_type">unsignedIntType</a> | <a href="datatypes.html#unsigned_long_type">unsignedLongType</a> | <a href="datatypes.html#unsigned_float_type">unsignedFloatType</a> | <a href="datatypes.html#unsigned_double_type">unsignedDoubleType</a> | <a href="datatypes.html#binary_type">binaryType</a> | <a href="datatypes.html#varbinary_type">varbinaryType</a>
+<a href="datatypes.html#char_type">charType</a> | <a href="datatypes.html#varchar_type">varcharType</a> | <a href="datatypes.html#decimal_type">decimalType</a> | <a href="datatypes.html#tinyint_type">tinyintType</a> | <a href="datatypes.html#smallint_type">smallintType</a> | <a href="datatypes.html#integer_type">integerType</a> | <a href="datatypes.html#bigint_type">bigintType</a> | <a href="datatypes.html#float_type">floatType</a> | <a href="datatypes.html#double_type">doubleType</a> | <a href="datatypes.html#timestamp_type">timestampType</a> | <a href="datatypes.html#date_type">dateType</a> | <a href="datatypes.html#time_type">timeType</a> | <a href="datatypes.html#binary_type">binaryType</a> | <a href="datatypes.html#varbinary_type">varbinaryType</a>
 </pre>
 syntax-end -->
-<p>A type name.</p>
+<p>A standard SQL data type.</p>
 <p>Example:</p>
 <p class="notranslate">TINYINT<br />CHAR(15)<br />VARCHAR<br />VARCHAR(1000)<br />DECIMAL(10,2)<br />DOUBLE<br />INTEGER<br />BINARY(200)<br />DATE</p>
 
+<h3 id="hbase_data_type" class="notranslate">HBase Data Type</h3>
+<!-- railroad-start -->
+<table class="railroad"><tr class="railroad"><td class="ts"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_timestamp_type">unsignedTimestampType</a></code></td><td class="te"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_date_type">unsignedDateType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_time_type">unsignedTimeType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_tinyint_type">unsignedTinyintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_smallint_type">unsignedSmallintType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes
 .html#unsigned_int_type">unsignedIntType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_long_type">unsignedLongType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_float_type">unsignedFloatType</a></code></td><td class="ke"></td></tr><tr class="railroad"><td class="ls"></td><td class="d"><code class="c"><a href="datatypes.html#unsigned_double_type">unsignedDoubleType</a></code></td><td class="le"></td></tr></table>
+<!-- railroad-end -->
+<!-- syntax-start
+<pre>
+<a href="datatypes.html#unsigned_timestamp_type">unsignedTimestampType</a> | <a href="datatypes.html#unsigned_date_type">unsignedDateType</a> | <a href="datatypes.html#unsigned_time_type">unsignedTimeType</a> | <a href="datatypes.html#unsigned_tinyint_type">unsignedTinyintType</a> | <a href="datatypes.html#unsigned_smallint_type">unsignedSmallintType</a> | <a href="datatypes.html#unsigned_int_type">unsignedIntType</a> | <a href="datatypes.html#unsigned_long_type">unsignedLongType</a> | <a href="datatypes.html#unsigned_float_type">unsignedFloatType</a> | <a href="datatypes.html#unsigned_double_type">unsignedDoubleType</a>
+</pre>
+syntax-end -->
+<p>A type that maps to a native primitive <code>HBase</code> value serialized through the Bytes.toBytes() utility methods. Only positive values are allowed.</p>
+<p>Example:</p>
+<p class="notranslate">UNSIGNED_INT<br />UNSIGNED_DATE<br />UNSIGNED_LONG</p>
+
 <h3 id="string" class="notranslate">String</h3>
 <!-- railroad-start -->
 <table class="railroad"><tr class="railroad"><td class="d"><code class="c">&apos; anything &apos;</code></td></tr></table>