Author: jamestaylor
Date: Sun Nov 2 00:40:47 2014
New Revision: 1636076
URL: http://svn.apache.org/r1636076
Log:
Update reference for subqueries
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
phoenix/site/publish/pig_integration.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=1636076&r1=1636075&r2=1636076&view=diff
==============================================================================
--- phoenix/phoenix-docs/src/docsrc/help/phoenix.csv (original)
+++ phoenix/phoenix-docs/src/docsrc/help/phoenix.csv Sun Nov 2 00:40:47 2014
@@ -533,21 +533,28 @@ ID=1 OR NAME='Hi'
"
"Other Grammar","And Condition","
-condition [ { AND condition } [...] ]
+booleanCondition [ { AND booleanCondition } [...] ]
","
-Value or condition.
+Condition separated by AND.
+","
+FOO!='bar' AND ID=1
+"
+
+"Other Grammar","Boolean Condition","
+[NOT] condition
+","
+Boolean condition.
","
ID=1 AND NAME='Hi'
"
"Other Grammar","Condition","
-operand [ compare { operand }
- | [ NOT ] IN ( { constantOperand [,...] } )
- | [ NOT ] LIKE operand
- | [ NOT ] ILIKE operand
- | [ NOT ] BETWEEN operand AND operand
- | IS [ NOT ] NULL ]
- | NOT expression
+operand [ { = | < | > | <= | >= | <> | != } { rhsOperand }
+ | { LIKE | ILIKE } operand
+ | IS [ NOT ] NULL
+ | [ NOT ] { IN ( { select | { constantOperand [,...] } } )
+ | EXISTS ( select )
+ | BETWEEN operand AND operand } ]
","
Boolean value or condition.
When comparing with LIKE, the wildcards characters are ""_"" (any one
character)
@@ -557,15 +564,21 @@ To search for the characters ""%"" and
Patterns that end with an escape character are invalid and the expression
returns NULL.
BETWEEN does an inclusive comparison for both operands.
","
+FOO = 'bar'
NAME LIKE 'Jo%'
+IN (1, 2, 3)
+NOT EXISTS (SELECT 1 FROM FOO WHERE BAR < 10)
+N BETWEEN 1 and 100
"
-"Other Grammar","Compare","
-<> | <= | >= | = | < | > | !=
+"Other Grammar","RHS Operand","
+operand | { ANY | ALL } ( { operand | select } )
","
-Comparison operator. The operator != is the same as <>.
+Right-hand side operand
","
-<>
+s.my_col
+ANY(my_col + 1)
+ALL(select foo from bar where bas > 5)
"
"Other Grammar","Operand","
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=1636076&r1=1636075&r2=1636076&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 Nov 2
00:40:47 2014
@@ -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
+guideposts collects ilike rhs
Modified: phoenix/site/publish/language/datatypes.html
URL:
http://svn.apache.org/viewvc/phoenix/site/publish/language/datatypes.html?rev=1636076&r1=1636075&r2=1636076&view=diff
==============================================================================
--- phoenix/site/publish/language/datatypes.html (original)
+++ phoenix/site/publish/language/datatypes.html Sun Nov 2 00:40:47 2014
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
- Generated by Apache Maven Doxia at 2014-10-30
+ Generated by Apache Maven Doxia at 2014-11-01
Rendered using Reflow Maven Skin 1.1.0
(http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
Modified: phoenix/site/publish/language/functions.html
URL:
http://svn.apache.org/viewvc/phoenix/site/publish/language/functions.html?rev=1636076&r1=1636075&r2=1636076&view=diff
==============================================================================
--- phoenix/site/publish/language/functions.html (original)
+++ phoenix/site/publish/language/functions.html Sun Nov 2 00:40:47 2014
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
- Generated by Apache Maven Doxia at 2014-10-30
+ Generated by Apache Maven Doxia at 2014-11-01
Rendered using Reflow Maven Skin 1.1.0
(http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
Modified: phoenix/site/publish/language/index.html
URL:
http://svn.apache.org/viewvc/phoenix/site/publish/language/index.html?rev=1636076&r1=1636075&r2=1636076&view=diff
==============================================================================
--- phoenix/site/publish/language/index.html (original)
+++ phoenix/site/publish/language/index.html Sun Nov 2 00:40:47 2014
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
- Generated by Apache Maven Doxia at 2014-10-30
+ Generated by Apache Maven Doxia at 2014-11-01
Rendered using Reflow Maven Skin 1.1.0
(http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
@@ -254,9 +254,11 @@ syntax-end -->
<a href="#and_condition" >And Condition</a><br />
+ <a href="#boolean_condition" >Boolean Condition</a><br />
+
<a href="#condition" >Condition</a><br />
- <a href="#compare" >Compare</a><br />
+ <a href="#rhs_operand" >RHS Operand</a><br />
<a href="#operand" >Operand</a><br />
@@ -345,9 +347,9 @@ syntax-end -->
<a href="#split_point" >Split Point</a><br />
<a href="#table_spec" >Table Spec</a><br />
- </td><td class="index">
<a href="#aliased_table_ref" >Aliased Table Ref</a><br />
+ </td><td class="index">
<a href="#join_type" >Join Type</a><br />
@@ -357,9 +359,11 @@ syntax-end -->
<a href="#and_condition" >And Condition</a><br />
+ <a href="#boolean_condition" >Boolean Condition</a><br />
+
<a href="#condition" >Condition</a><br />
- <a href="#compare" >Compare</a><br />
+ <a href="#rhs_operand" >RHS Operand</a><br />
<a href="#operand" >Operand</a><br />
@@ -378,9 +382,9 @@ syntax-end -->
<a href="#row_value_constructor" >Row Value Constructor</a><br
/>
<a href="#bind_parameter" >Bind Parameter</a><br />
- </td><td class="index">
<a href="#value" >Value</a><br />
+ </td><td class="index">
<a href="#case" >Case</a><br />
@@ -1017,48 +1021,60 @@ syntax-end -->
<h3 id="and_condition" class="notranslate">And Condition</h3>
<!-- railroad-start -->
-<table class="railroad"><tr class="railroad"><td class="d"><code class="c"><a
href="index.html#condition">condition</a></code></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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">AND <a
href="index.html#condition">condition</a></code></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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></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#boolean_condition">booleanCondition</a></code></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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">AND <a
href="index.html#boolean_condition">booleanCondition</a></code></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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></tr></table></td><td
class="le"></td></tr></table></td></tr></table>
<!-- railroad-end -->
<!-- syntax-start
<pre>
-<a href="index.html#condition">condition</a> [ { AND <a
href="index.html#condition">condition</a> } [...] ]
+<a href="index.html#boolean_condition">booleanCondition</a> [ { AND <a
href="index.html#boolean_condition">booleanCondition</a> } [...] ]
</pre>
syntax-end -->
-<p>Value or condition.</p>
+<p>Condition separated by <code>AND</code>.</p>
+<p>Example:</p>
+<p class="notranslate">FOO!='bar' AND ID=1</p>
+
+<h3 id="boolean_condition" class="notranslate">Boolean Condition</h3>
+<!-- railroad-start -->
+<table class="railroad"><tr class="railroad"><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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"><a
href="index.html#condition">condition</a></code></td></tr></table>
+<!-- railroad-end -->
+<!-- syntax-start
+<pre>
+[NOT] <a href="index.html#condition">condition</a>
+</pre>
+syntax-end -->
+<p>Boolean condition.</p>
<p>Example:</p>
<p class="notranslate">ID=1 AND NAME='Hi'</p>
<h3 id="condition" class="notranslate">Condition</h3>
<!-- railroad-start -->
-<table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c"><a href="index.html#operand">operand</a></code></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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"><table class="railroad"><tr class="railroad"><td
class="d"><code class="c"><a href="index.html#compare">compare</a> <a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="te"></td></tr><tr class="railroad"><td class="ks"></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"> </td><td class="te"></td></tr><tr class="railroad"><td
class="ls"></td><td class="d"><code class="c">NOT</code></td><t
d class="le"></td></tr></table></td><td class="d"><code class="c">IN ( <a
href="index.html#operand">constantOperand</a></code></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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="ke"></td></tr><tr
class="railroad"><td class="ks"></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"> </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">LIKE <a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="ke"></td></tr><tr class="railroad"><td class="ks"></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"> </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">ILIKE <a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="ke"></td></tr><tr class="railroad"><td class="ks"></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"> </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">BETWEEN <a
href="index.html#operand">operand</a> AND <a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="ke"></td></tr><tr class="railroad"><td
class="ls"></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="d"><code class="c">IS</code></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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="le"></td></tr></table></td></tr></table></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">NOT <a
href="index.html#expression">expression</a></code></td></tr></table></td><td
class="le"></td></tr></table>
+<table class="railroad"><tr class="railroad"><td class="d"><code class="c"><a
href="index.html#operand">operand</a></code></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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"><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">=</code></td><td class="te"></td></tr><tr
class="railroad"><td class="ks"></td><td class="d"><code
class="c"><</code></td><td class="ke"></td></tr><tr class="railroad"><td
class="ks"></td><td class="d"><code class="c">></code></td><td
class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c">< =</code></td></tr></table></td><td class="ke"></td></tr>
<tr class="railroad"><td class="ks"></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="d"><code class="c">>
=</code></td></tr></table></td><td class="ke"></td></tr><tr
class="railroad"><td class="ks"></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="d"><code class="c"><
></code></td></tr></table></td><td class="ke"></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></tr></table></td><td class="le"></td></tr></table></td><td
class="d"><code class="c"><a
href="index.html#rhs_operand">rhsOperand</a></code></td></tr></table></td><td
class="te"></td></tr><tr class="railroad"><td class="ks"></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"><code
class="c">LIKE</code></td><td class="te"></td></tr><tr class="railroad"><td clas
s="ls"></td><td class="d"><code class="c">ILIKE</code></td><td
class="le"></td></tr></table></td><td class="d"><code class="c"><a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c">IS</code></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="ts"></td><td class="d"> </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="ke"></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"> </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"><table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c">IN (</code></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="ts"></td><td class="d"><code class="c"><a
href="index.html#select">select</a></code></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#operand">constantOperand</a></code></td><td class="d"><table
class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"> </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></tr></table></td><td
class="le"></td></tr></table></td><td class="d"><code
class="c">)</code></td></tr></table></td><td
class="te"></td></tr><tr class="railroad"><td class="ks"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c">EXISTS ( <a href="index.html#select">select</a>
)</code></td></tr></table></td><td class="ke"></td></tr><tr
class="railroad"><td class="ls"></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="d"><code class="c">BETWEEN <a
href="index.html#operand">operand</a> AND <a
href="index.html#operand">operand</a></code></td></tr></table></td><td
class="le"></td></tr></table></td></tr></table></td><td
class="le"></td></tr></table></td><td
class="le"></td></tr></table></td></tr></table>
<!-- railroad-end -->
<!-- syntax-start
<pre>
-<a href="index.html#operand">operand</a> [ <a
href="index.html#compare">compare</a> { <a
href="index.html#operand">operand</a> }
-| [ NOT ] IN ( { <a href="index.html#operand">constantOperand</a> [,...] } )
-| [ NOT ] LIKE <a href="index.html#operand">operand</a>
-| [ NOT ] ILIKE <a href="index.html#operand">operand</a>
-| [ NOT ] BETWEEN <a href="index.html#operand">operand</a> AND <a
href="index.html#operand">operand</a>
-| IS [ NOT ] NULL ]
-| NOT <a href="index.html#expression">expression</a>
+<a href="index.html#operand">operand</a> [ { = | < | > | <= | >= |
<> | != } { <a href="index.html#rhs_operand">rhsOperand</a> }
+| { LIKE | ILIKE } <a href="index.html#operand">operand</a>
+| IS [ NOT ] NULL
+| [ NOT ] { IN ( { <a href="index.html#select">select</a> | { <a
href="index.html#operand">constantOperand</a> [,...] } } )
+| EXISTS ( <a href="index.html#select">select</a> )
+| BETWEEN <a href="index.html#operand">operand</a> AND <a
href="index.html#operand">operand</a> } ]
</pre>
syntax-end -->
<p>Boolean value or condition. When comparing with <code>LIKE</code>, the
wildcards characters are <code>_</code> (any one character) and <code>%</code>
(any characters). <code>ILIKE</code> is the same, but the search is case
insensitive. To search for the characters <code>%</code> and <code>_</code>,
the characters need to be escaped. The escape character is <code> \ </code>
(backslash). Patterns that end with an escape character are invalid and the
expression returns <code>NULL</code>. <code>BETWEEN</code> does an inclusive
comparison for both operands.</p>
<p>Example:</p>
-<p class="notranslate">NAME LIKE 'Jo%'</p>
+<p class="notranslate">FOO = 'bar'<br />NAME LIKE 'Jo%'<br
/>IN (1, 2, 3)<br />NOT EXISTS (SELECT 1 FROM FOO WHERE BAR < 10)<br />N
BETWEEN 1 and 100</p>
-<h3 id="compare" class="notranslate">Compare</h3>
+<h3 id="rhs_operand" class="notranslate">RHS Operand</h3>
<!-- railroad-start -->
-<table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"><table class="railroad"><tr class="railroad"><td class="d"><code
class="c">< ></code></td></tr></table></td><td class="te"></td></tr><tr
class="railroad"><td class="ks"></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="d"><code class="c"><
=</code></td></tr></table></td><td class="ke"></td></tr><tr
class="railroad"><td class="ks"></td><td class="d"><table class="railroad"><tr
class="railroad"><td class="d"><code class="c">>
=</code></td></tr></table></td><td class="ke"></td></tr><tr
class="railroad"><td class="ks"></td><td class="d"><code
class="c">=</code></td><td class="ke"></td></tr><tr class="railroad"><td
class="ks"></td><td class="d"><code class="c"><</code></td><td
class="ke"></td></tr><tr class="railroad"><td class="ks"></td><td
class="d"><code class="c">></code></td><td class="ke"></td></tr><tr
class="railroad"><td class="ls"></td><td class="d"><table cl
ass="railroad"><tr class="railroad"><td class="d"><code class="c">!
=</code></td></tr></table></td><td class="le"></td></tr></table>
+<table class="railroad"><tr class="railroad"><td class="ts"></td><td
class="d"><code class="c"><a
href="index.html#operand">operand</a></code></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"><code class="c">ANY</code></td><td
class="te"></td></tr><tr class="railroad"><td class="ls"></td><td
class="d"><code class="c">ALL</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"><code class="c"><a
href="index.html#operand">operand</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#select">select</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>
<!-- railroad-end -->
<!-- syntax-start
<pre>
-<> | <= | >= | = | < | > | !=
+<a href="index.html#operand">operand</a> | { ANY | ALL } ( { <a
href="index.html#operand">operand</a> | <a href="index.html#select">select</a>
} )
</pre>
syntax-end -->
-<p>Comparison operator. The operator != is the same as <>.</p>
+<p>Right-hand side operand</p>
<p>Example:</p>
-<p class="notranslate"><></p>
+<p class="notranslate">s.my_col<br />ANY(my_col + 1)<br />ALL(select foo from
bar where bas > 5)</p>
<h3 id="operand" class="notranslate">Operand</h3>
<!-- railroad-start -->
Modified: phoenix/site/publish/pig_integration.html
URL:
http://svn.apache.org/viewvc/phoenix/site/publish/pig_integration.html?rev=1636076&r1=1636075&r2=1636076&view=diff
==============================================================================
--- phoenix/site/publish/pig_integration.html (original)
+++ phoenix/site/publish/pig_integration.html Sun Nov 2 00:40:47 2014
@@ -1,386 +0,0 @@
-
-<!DOCTYPE html>
-<!--
- Generated by Apache Maven Doxia at 2014-10-30
- Rendered using Reflow Maven Skin 1.1.0
(http://andriusvelykis.github.io/reflow-maven-skin)
--->
-<html xml:lang="en" lang="en">
-
- <head>
- <meta charset="UTF-8" />
- <title>Apache Pig Integration | Apache Phoenix</title>
- <meta name="viewport" content="width=device-width,
initial-scale=1.0" />
- <meta name="description" content="" />
- <meta http-equiv="content-language" content="en" />
-
- <link
href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/united/bootstrap.min.css"
rel="stylesheet" />
- <link
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css"
rel="stylesheet" />
- <link href="./css/bootswatch.css" rel="stylesheet" />
- <link href="./css/reflow-skin.css" rel="stylesheet" />
-
- <link
href="http://yandex.st/highlightjs/7.5/styles/default.min.css" rel="stylesheet"
/>
-
- <link href="./css/lightbox.css" rel="stylesheet" />
-
- <link href="./css/site.css" rel="stylesheet" />
- <link href="./css/print.css" rel="stylesheet" media="print" />
-
- <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
- <!--[if lt IE 9]>
- <script
src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]-->
-
-
-
- </head>
-
- <body class="page-pig_integration project-phoenix-site"
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
-
- <div class="navbar navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container">
- <a class="btn btn-navbar"
data-toggle="collapse" data-target="#top-nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="index.html"><div
class="xtoplogo"></div></a>
- <div class="nav-collapse collapse"
id="top-nav-collapse">
- <ul class="nav pull-right">
- <li class="dropdown">
- <a href="#"
class="dropdown-toggle" data-toggle="dropdown">About <b class="caret"></b></a>
- <ul
class="dropdown-menu">
- <li ><a
href="index.html" title="Overview">Overview</a></li>
- <li ><a
href="recent.html" title="New Features">New Features</a></li>
- <li ><a
href="roadmap.html" title="Roadmap">Roadmap</a></li>
- <li ><a
href="performance.html" title="Performance">Performance</a></li>
- <li ><a
href="team.html" title="Team">Team</a></li>
- <li ><a
href="contributing.html" title="Contributing">Contributing</a></li>
- <li ><a
href="resources.html" title="Resources">Resources</a></li>
- <li ><a
href="mailing_list.html" title="Mailing Lists">Mailing Lists</a></li>
- <li ><a
href="source.html" title="Source Repository">Source Repository</a></li>
- <li ><a
href="issues.html" title="Issue Tracking">Issue Tracking</a></li>
- <li ><a
href="download.html" title="Download">Download</a></li>
- <li
class="divider"/>
- <li ><a
href="http://www.apache.org/licenses/" title="License"
class="externalLink">License</a></li>
- <li ><a
href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship"
class="externalLink">Sponsorship</a></li>
- <li ><a
href="http://www.apache.org/foundation/thanks.html" title="Thanks"
class="externalLink">Thanks</a></li>
- <li ><a
href="http://www.apache.org/security/" title="Security"
class="externalLink">Security</a></li>
- </ul>
- </li>
- <li class="dropdown">
- <a href="#"
class="dropdown-toggle" data-toggle="dropdown">Using <b class="caret"></b></a>
- <ul
class="dropdown-menu">
- <li ><a
href="faq.html" title="F.A.Q.">F.A.Q.</a></li>
- <li ><a
href="Phoenix-in-15-minutes-or-less.html" title="Quick Start">Quick
Start</a></li>
- <li ><a
href="building.html" title="Building">Building</a></li>
- <li ><a
href="tuning.html" title="Tuning">Tuning</a></li>
- <li ><a
href="upgrade_from_2_2.html" title="Upgrade from 2.2">Upgrade from 2.2</a></li>
- <li
class="divider"/>
- <li ><a
href="secondary_indexing.html" title="Secondary Indexes">Secondary
Indexes</a></li>
- <li ><a
href="joins.html" title="Joins">Joins</a></li>
- <li ><a
href="subqueries.html" title="Subqueries">Subqueries</a></li>
- <li ><a
href="views.html" title="Views">Views</a></li>
- <li ><a
href="multi-tenancy.html" title="Multi tenancy">Multi tenancy</a></li>
- <li ><a
href="sequences.html" title="Sequences">Sequences</a></li>
- <li ><a
href="array_type.html" title="ARRAY type">ARRAY type</a></li>
- <li ><a
href="salted.html" title="Salted Tables">Salted Tables</a></li>
- <li ><a
href="paged.html" title="Paged Queries">Paged Queries</a></li>
- <li ><a
href="dynamic_columns.html" title="Dynamic Columns">Dynamic Columns</a></li>
- <li ><a
href="skip_scan.html" title="Skip Scan">Skip Scan</a></li>
- <li ><a
href="bulk_dataload.html" title="Bulk Loading">Bulk Loading</a></li>
- <li ><a
href="tracing.html" title="Tracing">Tracing</a></li>
- <li ><a
href="update_statistics.html" title="Statistics Collection">Statistics
Collection</a></li>
- <li
class="divider"/>
- <li ><a
href="phoenix_on_emr.html" title="Amazon EMR Support">Amazon EMR
Support</a></li>
- <li ><a
href="flume.html" title="Apache Flume Plugin">Apache Flume Plugin</a></li>
- <li
class="active"><a href="" title="Apache Pig Integration">Apache Pig
Integration</a></li>
- </ul>
- </li>
- <li class="dropdown">
- <a href="#"
class="dropdown-toggle" data-toggle="dropdown">Reference <b
class="caret"></b></a>
- <ul
class="dropdown-menu">
- <li ><a
href="language/index.html" title="Grammar">Grammar</a></li>
- <li ><a
href="language/functions.html" title="Functions">Functions</a></li>
- <li ><a
href="language/datatypes.html" title="Datatypes">Datatypes</a></li>
- </ul>
- </li>
- </ul>
- </div><!--/.nav-collapse -->
- </div>
- </div>
- </div>
-
- <div class="container">
-
- <!-- Masthead
- ================================================== -->
-
- <header>
- </header>
-
- <div class="main-body">
- <div class="row">
- <div class="span12">
- <div class="body-content">
-<div class="page-header">
- <h1>Apache Pig Integration</h1>
-</div>
-<p>Pig integration may be divided into two parts: a <b>StoreFunc</b> as a
means to generate Phoenix-encoded data through Pig, and a <b>Loader</b> which
enables Phoenix-encoded data to be read by Pig.</p>
-<div class="section">
- <h2 id="Pig_StoreFunc">Pig StoreFunc</h2>
- <p>The StoreFunc allows users to write data in Phoenix-encoded format to
HBase tables using Pig scripts. This is a nice way to bulk upload data from a
MapReduce job in parallel to a Phoenix table in HBase. All you need to specify
is the endpoint address, HBase table name and a batch size. For example:</p>
- <div class="source">
- <pre>A = load 'testdata' as (a:chararray, b:chararray, c:chararray,
d:chararray, e: datetime);
-STORE A into 'hbase://CORE.ENTITY_HISTORY' using
- org.apache.phoenix.pig.PhoenixHBaseStorage('localhost','-batchSize 5000');
-</pre>
- </div>
- <p>The above reads a file âtestdataâ and writes the elements to a table
âCORE.ENTITY_HISTORYâ in HBase that is running on localhost. First argument
to this StoreFunc is the server, the 2nd argument is the batch size for upserts
via Phoenix. The batch size is related to how many rows you are able to hold in
memory. A good default is 1000 rows, but if your row is wide, you may want to
decrease this.</p>
- <p>Note that Pig types must be in sync with the target Phoenix data types.
This StoreFunc tries best to cast based on input Pig types and target Phoenix
data types, but it is recommended to provide an appropriate schema.</p>
- <div class="section">
- <h3 id="Gotchas">Gotchas</h3>
- <p>It is advised that the upsert operation be idempotent. That is, trying to
re-upsert data should not cause any inconsistencies. This is important in the
case when a Pig job fails in process of writing to a Phoenix table. There is no
notion of rollback (due to lack of transactions in HBase), and re-trying the
upsert with PhoenixHBaseStorage must result in the same data in HBase
table.</p>
- <p>For example, letâs assume we are writing records n1â¦n10 to HBase. If
the job fails in the middle of this process, we are left in an inconsistent
state where n1â¦n7 made it to the phoenix tables but n8â¦n10 were missed. If
we retry the same operation, n1â¦n7 would be re-upserted and n8â¦n10 would be
upserted this time.</p>
- </div>
-</div>
-<div class="section">
- <h2 id="Pig_Loader">Pig Loader</h2>
- <p>A Pig data loader allows users to read data from Phoenix backed HBase
tables within a Pig script. </p>
- <p>The Load func provides two alternative ways to load data.</p>
- <ol style="list-style-type: decimal">
- <li> <p>Given a table name, the following will load the data for all the
columns in the HIRES table:</p>
- <div class="source">
- <pre>A = load 'hbase://table/HIRES' using
org.apache.phoenix.pig.PhoenixHBaseLoader('localhost');
-</pre>
- </div>To restrict the list of columns, you may specify the column names as
part of LOAD as shown below:
- <div class="source">
- <pre>A = load 'hbase://table/HIRES/ID,NAME' using
org.apache.phoenix.pig.PhoenixHBaseLoader('localhost');
-</pre>
- </div> <p>Here, only data for ID and NAME columns are returned.</p></li>
- <li> <p>Given a query, the following loads data for all those rows whose AGE
column has a value of greater than 50:</p>
- <div class="source">
- <pre>A = load 'hbase://query/SELECT ID,NAME FROM HIRES WHERE AGE > 50'
using org.apache.phoenix.pig.PhoenixHBaseLoader('localhost');
-</pre>
- </div>The LOAD func merely executes the given SQL query and returns the
results. Though there is a provision to provide a query as part of LOAD, it is
restricted to the following:
- <ul>
- <li>Only a SELECT query is allowed. No DML statements such as UPSERT or
DELETE.</li>
- <li>The query may not contain any GROUP BY, ORDER BY, LIMIT, or DISTINCT
clauses.</li>
- <li>The query may not contain any AGGREGATE functions.</li>
- </ul></li>
- </ol>
- <p>In both the cases, the zookeeper quorum should be passed to the
PhoenixHBaseLoader as an argument to the constructor. </p>
- <p>The Loadfunc makes best effort to map Phoenix Data Types to Pig datatype.
You can have a look at org.apache.phoenix.pig.util.TypeUtil to see how each of
Phoenix data type is mapped to Pig data type.</p>
- <div class="section">
- <h3 id="Example">Example</h3>
- <p>Determine the number of users by a CLIENT ID</p>
- <p><b>Ddl</b></p>
- <div class="source">
- <pre>CREATE TABLE HIRES( CLIENTID INTEGER NOT NULL, EMPID INTEGER NOT NULL,
NAME VARCHAR CONSTRAINT pk PRIMARY KEY(CLIENTID,EMPID));
-</pre>
- </div>
- <p><b>Pig Script</b> </p>
- <div class="source">
- <pre>raw = LOAD 'hbase://table/HIRES USING
org.apache.phoenix.pig.PhoenixHBaseLoader('localhost')';
-grpd = GROUP raw BY CLIENTID;
-cnt = FOREACH grpd GENERATE group AS CLIENT,COUNT(raw);
-DUMP cnt;
-</pre>
- </div>
- </div>
- <div class="section">
- <h3 id="Future_Work">Future Work</h3>
- <ol style="list-style-type: decimal">
- <li>Support for ARRAY data type.</li>
- <li>Usage of expressions within the SELECT clause when providing a full
query.</li>
- </ol>
- </div>
-</div>
- </div>
- </div>
- </div>
- </div>
-
- </div><!-- /container -->
-
- <!-- Footer
- ================================================== -->
- <footer class="well">
- <div class="container">
- <div class="row">
- <div class="span3 bottom-nav">
- <ul class="nav nav-list">
- <li
class="nav-header">About</li>
- <li >
- <a href="index.html"
title="Overview">Overview</a>
- </li>
- <li >
- <a href="recent.html"
title="New Features">New Features</a>
- </li>
- <li >
- <a href="roadmap.html"
title="Roadmap">Roadmap</a>
- </li>
- <li >
- <a
href="performance.html" title="Performance">Performance</a>
- </li>
- <li >
- <a href="team.html"
title="Team">Team</a>
- </li>
- <li >
- <a
href="contributing.html" title="Contributing">Contributing</a>
- </li>
- <li >
- <a
href="resources.html" title="Resources">Resources</a>
- </li>
- <li >
- <a
href="mailing_list.html" title="Mailing Lists">Mailing Lists</a>
- </li>
- <li >
- <a href="source.html"
title="Source Repository">Source Repository</a>
- </li>
- <li >
- <a href="issues.html"
title="Issue Tracking">Issue Tracking</a>
- </li>
- <li >
- <a href="download.html"
title="Download">Download</a>
- </li>
- <li >
- <a href="http:divider"
title=""></a>
- </li>
- <li >
- <a
href="http://www.apache.org/licenses/" title="License"
class="externalLink">License</a>
- </li>
- <li >
- <a
href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship"
class="externalLink">Sponsorship</a>
- </li>
- <li >
- <a
href="http://www.apache.org/foundation/thanks.html" title="Thanks"
class="externalLink">Thanks</a>
- </li>
- <li >
- <a
href="http://www.apache.org/security/" title="Security"
class="externalLink">Security</a>
- </li>
- </ul>
- </div>
- <div class="span3 bottom-nav">
- <ul class="nav nav-list">
- <li
class="nav-header">Using</li>
- <li >
- <a href="faq.html"
title="F.A.Q.">F.A.Q.</a>
- </li>
- <li >
- <a
href="Phoenix-in-15-minutes-or-less.html" title="Quick Start">Quick Start</a>
- </li>
- <li >
- <a href="building.html"
title="Building">Building</a>
- </li>
- <li >
- <a href="tuning.html"
title="Tuning">Tuning</a>
- </li>
- <li >
- <a
href="upgrade_from_2_2.html" title="Upgrade from 2.2">Upgrade from 2.2</a>
- </li>
- <li >
- <a href="http:divider"
title=""></a>
- </li>
- <li >
- <a
href="secondary_indexing.html" title="Secondary Indexes">Secondary Indexes</a>
- </li>
- <li >
- <a href="joins.html"
title="Joins">Joins</a>
- </li>
- <li >
- <a
href="subqueries.html" title="Subqueries">Subqueries</a>
- </li>
- <li >
- <a href="views.html"
title="Views">Views</a>
- </li>
- <li >
- <a
href="multi-tenancy.html" title="Multi tenancy">Multi tenancy</a>
- </li>
- <li >
- <a
href="sequences.html" title="Sequences">Sequences</a>
- </li>
- <li >
- <a
href="array_type.html" title="ARRAY type">ARRAY type</a>
- </li>
- <li >
- <a href="salted.html"
title="Salted Tables">Salted Tables</a>
- </li>
- <li >
- <a href="paged.html"
title="Paged Queries">Paged Queries</a>
- </li>
- <li >
- <a
href="dynamic_columns.html" title="Dynamic Columns">Dynamic Columns</a>
- </li>
- <li >
- <a
href="skip_scan.html" title="Skip Scan">Skip Scan</a>
- </li>
- <li >
- <a
href="bulk_dataload.html" title="Bulk Loading">Bulk Loading</a>
- </li>
- <li >
- <a href="tracing.html"
title="Tracing">Tracing</a>
- </li>
- <li >
- <a
href="update_statistics.html" title="Statistics Collection">Statistics
Collection</a>
- </li>
- <li >
- <a href="http:divider"
title=""></a>
- </li>
- <li >
- <a
href="phoenix_on_emr.html" title="Amazon EMR Support">Amazon EMR Support</a>
- </li>
- <li >
- <a href="flume.html"
title="Apache Flume Plugin">Apache Flume Plugin</a>
- </li>
- <li class="active">
- <a href="#"
title="Apache Pig Integration">Apache Pig Integration</a>
- </li>
- </ul>
- </div>
- <div class="span3 bottom-nav">
- <ul class="nav nav-list">
- <li
class="nav-header">Reference</li>
- <li >
- <a
href="language/index.html" title="Grammar">Grammar</a>
- </li>
- <li >
- <a
href="language/functions.html" title="Functions">Functions</a>
- </li>
- <li >
- <a
href="language/datatypes.html" title="Datatypes">Datatypes</a>
- </li>
- </ul>
- </div>
- <div class="span3 bottom-description">
- <form
action="https://www.google.com/search" method="get"><input
value="phoenix.apache.org" name="sitesearch" type="hidden"><input
placeholder="Search the site…" required="required" style="width:170px;"
size="18" name="q" id="query" type="search"></form>
- </div>
- </div>
- </div>
- </footer>
-
- <div class="container subfooter">
- <div class="row">
- <div class="span12">
- <p class="pull-right"><a href="#">Back to
top</a></p>
- <p class="copyright">Copyright ©2014 <a
href="http://www.apache.org">Apache Software Foundation</a>. All Rights
Reserved.</p>
- </div>
- </div>
- </div>
-
- <!-- Le javascript
- ================================================== -->
- <!-- Placed at the end of the document so the pages load faster -->
- <script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-
- <script
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
- <script src="./js/lightbox.js"></script>
- <script src="./js/jquery.smooth-scroll.min.js"></script>
- <!-- back button support for smooth scroll -->
- <script src="./js/jquery.ba-bbq.min.js"></script>
- <script
src="http://yandex.st/highlightjs/7.5/highlight.min.js"></script>
-
- <script src="./js/reflow-skin.js"></script>
-
- </body>
-</html>