|  | <!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/xhtml;charset=UTF-8"/> | 
|  | <meta http-equiv="X-UA-Compatible" content="IE=9"/> | 
|  | <meta name="generator" content="Doxygen 1.8.6"/> | 
|  | <title>Impala: fe/src/main/java/com/cloudera/impala/analysis/TableRef.java Source File</title> | 
|  | <link href="tabs.css" rel="stylesheet" type="text/css"/> | 
|  | <script type="text/javascript" src="jquery.js"></script> | 
|  | <script type="text/javascript" src="dynsections.js"></script> | 
|  | <link href="navtree.css" rel="stylesheet" type="text/css"/> | 
|  | <script type="text/javascript" src="resize.js"></script> | 
|  | <script type="text/javascript" src="navtree.js"></script> | 
|  | <script type="text/javascript"> | 
|  | $(document).ready(initResizable); | 
|  | $(window).load(resizeHeight); | 
|  | </script> | 
|  | <link href="search/search.css" rel="stylesheet" type="text/css"/> | 
|  | <script type="text/javascript" src="search/search.js"></script> | 
|  | <script type="text/javascript"> | 
|  | $(document).ready(function() { searchBox.OnSelectItem(0); }); | 
|  | </script> | 
|  | <link href="doxygen.css" rel="stylesheet" type="text/css" /> | 
|  | </head> | 
|  | <body> | 
|  | <div id="top"><!-- do not remove this div, it is closed by doxygen! --> | 
|  | <div id="titlearea"> | 
|  | <table cellspacing="0" cellpadding="0"> | 
|  | <tbody> | 
|  | <tr style="height: 56px;"> | 
|  | <td style="padding-left: 0.5em;"> | 
|  | <div id="projectname">Impala | 
|  | </div> | 
|  | <div id="projectbrief">Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.</div> | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </div> | 
|  | <!-- end header part --> | 
|  | <!-- Generated by Doxygen 1.8.6 --> | 
|  | <script type="text/javascript"> | 
|  | var searchBox = new SearchBox("searchBox", "search",false,'Search'); | 
|  | </script> | 
|  | <div id="navrow1" class="tabs"> | 
|  | <ul class="tablist"> | 
|  | <li><a href="index.html"><span>Main Page</span></a></li> | 
|  | <li><a href="namespaces.html"><span>Namespaces</span></a></li> | 
|  | <li><a href="annotated.html"><span>Classes</span></a></li> | 
|  | <li class="current"><a href="files.html"><span>Files</span></a></li> | 
|  | <li> | 
|  | <div id="MSearchBox" class="MSearchBoxInactive"> | 
|  | <span class="left"> | 
|  | <img id="MSearchSelect" src="search/mag_sel.png" | 
|  | onmouseover="return searchBox.OnSearchSelectShow()" | 
|  | onmouseout="return searchBox.OnSearchSelectHide()" | 
|  | alt=""/> | 
|  | <input type="text" id="MSearchField" value="Search" accesskey="S" | 
|  | onfocus="searchBox.OnSearchFieldFocus(true)" | 
|  | onblur="searchBox.OnSearchFieldFocus(false)" | 
|  | onkeyup="searchBox.OnSearchFieldChange(event)"/> | 
|  | </span><span class="right"> | 
|  | <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> | 
|  | </span> | 
|  | </div> | 
|  | </li> | 
|  | </ul> | 
|  | </div> | 
|  | <div id="navrow2" class="tabs2"> | 
|  | <ul class="tablist"> | 
|  | <li><a href="files.html"><span>File List</span></a></li> | 
|  | <li><a href="globals.html"><span>File Members</span></a></li> | 
|  | </ul> | 
|  | </div> | 
|  | </div><!-- top --> | 
|  | <div id="side-nav" class="ui-resizable side-nav-resizable"> | 
|  | <div id="nav-tree"> | 
|  | <div id="nav-tree-contents"> | 
|  | <div id="nav-sync" class="sync"></div> | 
|  | </div> | 
|  | </div> | 
|  | <div id="splitbar" style="-moz-user-select:none;" | 
|  | class="ui-resizable-handle"> | 
|  | </div> | 
|  | </div> | 
|  | <script type="text/javascript"> | 
|  | $(document).ready(function(){initNavTree('TableRef_8java_source.html','');}); | 
|  | </script> | 
|  | <div id="doc-content"> | 
|  | <!-- window showing the filter options --> | 
|  | <div id="MSearchSelectWindow" | 
|  | onmouseover="return searchBox.OnSearchSelectShow()" | 
|  | onmouseout="return searchBox.OnSearchSelectHide()" | 
|  | onkeydown="return searchBox.OnSearchSelectKey(event)"> | 
|  | <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a></div> | 
|  |  | 
|  | <!-- iframe showing the search results (closed by default) --> | 
|  | <div id="MSearchResultsWindow"> | 
|  | <iframe src="javascript:void(0)" frameborder="0" | 
|  | name="MSearchResults" id="MSearchResults"> | 
|  | </iframe> | 
|  | </div> | 
|  |  | 
|  | <div class="header"> | 
|  | <div class="headertitle"> | 
|  | <div class="title">TableRef.java</div>  </div> | 
|  | </div><!--header--> | 
|  | <div class="contents"> | 
|  | <a href="TableRef_8java.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">// Copyright 2012 Cloudera Inc.</span></div> | 
|  | <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div> | 
|  | <div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div> | 
|  | <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div> | 
|  | <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// You may obtain a copy of the License at</span></div> | 
|  | <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">//</span></div> | 
|  | <div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div> | 
|  | <div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//</span></div> | 
|  | <div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div> | 
|  | <div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div> | 
|  | <div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div> | 
|  | <div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// See the License for the specific language governing permissions and</span></div> | 
|  | <div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">// limitations under the License.</span></div> | 
|  | <div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div> | 
|  | <div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="keyword">package </span>com.cloudera.impala.analysis;</div> | 
|  | <div class="line"><a name="l00016"></a><span class="lineno">   16</span> </div> | 
|  | <div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">import</span> java.util.ArrayList;</div> | 
|  | <div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">import</span> java.util.List;</div> | 
|  | <div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">import</span> java.util.Set;</div> | 
|  | <div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div> | 
|  | <div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="keyword">import</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType.html">com.cloudera.impala.analysis.Path.PathType</a>;</div> | 
|  | <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">import</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege.html">com.cloudera.impala.authorization.Privilege</a>;</div> | 
|  | <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder.html">com.cloudera.impala.authorization.PrivilegeRequestBuilder</a>;</div> | 
|  | <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html">com.cloudera.impala.catalog.Table</a>;</div> | 
|  | <div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1TableLoadingException.html">com.cloudera.impala.catalog.TableLoadingException</a>;</div> | 
|  | <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View.html">com.cloudera.impala.catalog.View</a>;</div> | 
|  | <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">com.cloudera.impala.common.AnalysisException</a>;</div> | 
|  | <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">import</span> com.cloudera.impala.common.Pair;</div> | 
|  | <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">import</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1planner_1_1PlanNode.html">com.cloudera.impala.planner.PlanNode</a>;</div> | 
|  | <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">import</span> com.cloudera.impala.thrift.TAccessEvent;</div> | 
|  | <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="keyword">import</span> com.cloudera.impala.thrift.TCatalogObjectType;</div> | 
|  | <div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">import</span> com.google.common.base.Joiner;</div> | 
|  | <div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">import</span> com.google.common.base.Preconditions;</div> | 
|  | <div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">import</span> com.google.common.collect.Lists;</div> | 
|  | <div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="keyword">import</span> com.google.common.collect.Sets;</div> | 
|  | <div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div> | 
|  | <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">   45</a></span> <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> <span class="keyword">implements</span> <a class="code" href="interfacecom_1_1cloudera_1_1impala_1_1analysis_1_1ParseNode.html">ParseNode</a> {</div> | 
|  | <div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <span class="comment">// Path to a collection type. Not set for inline views.</span></div> | 
|  | <div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">   47</a></span>   <span class="keyword">protected</span> List<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>;</div> | 
|  | <div class="line"><a name="l00048"></a><span class="lineno">   48</span> </div> | 
|  | <div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment">// Resolution of rawPath_ if applicable. Result of analysis.</span></div> | 
|  | <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">   50</a></span>   <span class="keyword">protected</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a>;</div> | 
|  | <div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div> | 
|  | <div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="comment">// Legal aliases of this table ref. Contains the explicit alias as its sole element if</span></div> | 
|  | <div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="comment">// there is one. Otherwise, contains the two implicit aliases. Implicit aliases are set</span></div> | 
|  | <div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="comment">// in the c'tor of the corresponding resolved table ref (subclasses of TableRef) during</span></div> | 
|  | <div class="line"><a name="l00055"></a><span class="lineno">   55</span>   <span class="comment">// analysis. By convention, for table refs with multiple implicit aliases, aliases_[0]</span></div> | 
|  | <div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="comment">// contains the fully-qualified implicit alias to ensure that aliases_[0] always</span></div> | 
|  | <div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="comment">// uniquely identifies this table ref regardless of whether it has an explicit alias.</span></div> | 
|  | <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">   58</a></span>   <span class="keyword">protected</span> String[] <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">aliases_</a>;</div> | 
|  | <div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div> | 
|  | <div class="line"><a name="l00060"></a><span class="lineno">   60</span>   <span class="comment">// Indicates whether this table ref is given an explicit alias,</span></div> | 
|  | <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">   61</a></span>   <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">hasExplicitAlias_</a>;</div> | 
|  | <div class="line"><a name="l00062"></a><span class="lineno">   62</span> </div> | 
|  | <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">   63</a></span>   <span class="keyword">protected</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>;</div> | 
|  | <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">   64</a></span>   <span class="keyword">protected</span> ArrayList<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a>;</div> | 
|  | <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">   65</a></span>   <span class="keyword">protected</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">Expr</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>;</div> | 
|  | <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">   66</a></span>   <span class="keyword">protected</span> List<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a>;</div> | 
|  | <div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div> | 
|  | <div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="comment">// set after analyzeJoinHints(); true if explicitly set via hints</span></div> | 
|  | <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">   69</a></span>   <span class="keyword">private</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">isBroadcastJoin_</a>;</div> | 
|  | <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">   70</a></span>   <span class="keyword">private</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">isPartitionedJoin_</a>;</div> | 
|  | <div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div> | 
|  | <div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="comment">// the ref to the left of us, if we're part of a JOIN clause</span></div> | 
|  | <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">   73</a></span>   <span class="keyword">protected</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>;</div> | 
|  | <div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div> | 
|  | <div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="comment">// true if this TableRef has been analyzed; implementing subclass should set it to true</span></div> | 
|  | <div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="comment">// at the end of analyze() call.</span></div> | 
|  | <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">   77</a></span>   <span class="keyword">protected</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a>;</div> | 
|  | <div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div> | 
|  | <div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="comment">// all (logical) TupleIds referenced in the On clause</span></div> | 
|  | <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5d0bef7c077f57d420970854c18cc904">   80</a></span>   <span class="keyword">protected</span> List<TupleId> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5d0bef7c077f57d420970854c18cc904">onClauseTupleIds_</a> = Lists.newArrayList();</div> | 
|  | <div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div> | 
|  | <div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="comment">// analysis output</span></div> | 
|  | <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">   83</a></span>   <span class="keyword">protected</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor.html">TupleDescriptor</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a>;</div> | 
|  | <div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div> | 
|  | <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a094f550a53ae415c2ce417d28716ac08">   85</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a094f550a53ae415c2ce417d28716ac08">TableRef</a>(List<String> <a class="code" href="sasl-test_8cc.html#a2db66f7b463c0e190f8933e51f43d91e">path</a>, String alias) {</div> | 
|  | <div class="line"><a name="l00086"></a><span class="lineno">   86</span>     super();</div> | 
|  | <div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a> = <a class="code" href="sasl-test_8cc.html#a2db66f7b463c0e190f8933e51f43d91e">path</a>;</div> | 
|  | <div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <span class="keywordflow">if</span> (alias != null) {</div> | 
|  | <div class="line"><a name="l00089"></a><span class="lineno">   89</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">aliases_</a> = <span class="keyword">new</span> String[] { alias.toLowerCase() };</div> | 
|  | <div class="line"><a name="l00090"></a><span class="lineno">   90</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">hasExplicitAlias_</a> = <span class="keyword">true</span>;</div> | 
|  | <div class="line"><a name="l00091"></a><span class="lineno">   91</span>     } <span class="keywordflow">else</span> {</div> | 
|  | <div class="line"><a name="l00092"></a><span class="lineno">   92</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">hasExplicitAlias_</a> = <span class="keyword">false</span>;</div> | 
|  | <div class="line"><a name="l00093"></a><span class="lineno">   93</span>     }</div> | 
|  | <div class="line"><a name="l00094"></a><span class="lineno">   94</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a> = <span class="keyword">false</span>;</div> | 
|  | <div class="line"><a name="l00095"></a><span class="lineno">   95</span>   }</div> | 
|  | <div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div> | 
|  | <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0f017c35629f9737fd6651cb96b74d78">  100</a></span>   <span class="keyword">protected</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0f017c35629f9737fd6651cb96b74d78">TableRef</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> other) {</div> | 
|  | <div class="line"><a name="l00101"></a><span class="lineno">  101</span>     super();</div> | 
|  | <div class="line"><a name="l00102"></a><span class="lineno">  102</span>     Preconditions.checkNotNull(other);</div> | 
|  | <div class="line"><a name="l00103"></a><span class="lineno">  103</span>     this.rawPath_ = other.rawPath_;</div> | 
|  | <div class="line"><a name="l00104"></a><span class="lineno">  104</span>     this.resolvedPath_ = other.resolvedPath_;</div> | 
|  | <div class="line"><a name="l00105"></a><span class="lineno">  105</span>     this.aliases_ = other.aliases_;</div> | 
|  | <div class="line"><a name="l00106"></a><span class="lineno">  106</span>     this.hasExplicitAlias_ = other.hasExplicitAlias_;</div> | 
|  | <div class="line"><a name="l00107"></a><span class="lineno">  107</span>     this.joinOp_ = other.joinOp_;</div> | 
|  | <div class="line"><a name="l00108"></a><span class="lineno">  108</span>     this.joinHints_ =</div> | 
|  | <div class="line"><a name="l00109"></a><span class="lineno">  109</span>         (other.joinHints_ != null) ? Lists.newArrayList(other.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a>) : null;</div> | 
|  | <div class="line"><a name="l00110"></a><span class="lineno">  110</span>     this.usingColNames_ =</div> | 
|  | <div class="line"><a name="l00111"></a><span class="lineno">  111</span>         (other.usingColNames_ != null) ? Lists.newArrayList(other.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a>) : null;</div> | 
|  | <div class="line"><a name="l00112"></a><span class="lineno">  112</span>     this.onClause_ = (other.onClause_ != null) ? other.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a3029a08185c79e214478bfcbd407c7b1">clone</a>().reset() : null;</div> | 
|  | <div class="line"><a name="l00113"></a><span class="lineno">  113</span>     this.isAnalyzed_ = <span class="keyword">false</span>;</div> | 
|  | <div class="line"><a name="l00114"></a><span class="lineno">  114</span>   }</div> | 
|  | <div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div> | 
|  | <div class="line"><a name="l00116"></a><span class="lineno">  116</span>   @Override</div> | 
|  | <div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5e62c5415f14ad21993b0290501b9085">  117</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5e62c5415f14ad21993b0290501b9085">analyze</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">Analyzer</a> analyzer) <span class="keywordflow">throws</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a> {</div> | 
|  | <div class="line"><a name="l00118"></a><span class="lineno">  118</span>     <span class="keywordflow">try</span> {</div> | 
|  | <div class="line"><a name="l00119"></a><span class="lineno">  119</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a> = analyzer.resolvePath(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>, <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType.html#a67f6b2287f9d34beee10405b77d4efed">PathType.TABLE_REF</a>);</div> | 
|  | <div class="line"><a name="l00120"></a><span class="lineno">  120</span>     } <span class="keywordflow">catch</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a> e) {</div> | 
|  | <div class="line"><a name="l00121"></a><span class="lineno">  121</span>       <span class="keywordflow">if</span> (!analyzer.hasMissingTbls()) {</div> | 
|  | <div class="line"><a name="l00122"></a><span class="lineno">  122</span>         <span class="comment">// Register privilege requests to prefer reporting an authorization error over</span></div> | 
|  | <div class="line"><a name="l00123"></a><span class="lineno">  123</span>         <span class="comment">// an analysis error. We should not accidentally reveal the non-existence of a</span></div> | 
|  | <div class="line"><a name="l00124"></a><span class="lineno">  124</span>         <span class="comment">// table/database if the user is not authorized.</span></div> | 
|  | <div class="line"><a name="l00125"></a><span class="lineno">  125</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>.size() > 1) {</div> | 
|  | <div class="line"><a name="l00126"></a><span class="lineno">  126</span>           analyzer.registerPrivReq(<span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder.html">PrivilegeRequestBuilder</a>()</div> | 
|  | <div class="line"><a name="l00127"></a><span class="lineno">  127</span>               .onTable(rawPath_.get(0), <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>.get(1))</div> | 
|  | <div class="line"><a name="l00128"></a><span class="lineno">  128</span>               .allOf(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>()).toRequest());</div> | 
|  | <div class="line"><a name="l00129"></a><span class="lineno">  129</span>         }</div> | 
|  | <div class="line"><a name="l00130"></a><span class="lineno">  130</span>         analyzer.registerPrivReq(<span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder.html">PrivilegeRequestBuilder</a>()</div> | 
|  | <div class="line"><a name="l00131"></a><span class="lineno">  131</span>             .onTable(analyzer.getDefaultDb(), <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>.get(0))</div> | 
|  | <div class="line"><a name="l00132"></a><span class="lineno">  132</span>             .allOf(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>()).toRequest());</div> | 
|  | <div class="line"><a name="l00133"></a><span class="lineno">  133</span>       }</div> | 
|  | <div class="line"><a name="l00134"></a><span class="lineno">  134</span>       <span class="keywordflow">throw</span> e;</div> | 
|  | <div class="line"><a name="l00135"></a><span class="lineno">  135</span>     } <span class="keywordflow">catch</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1TableLoadingException.html">TableLoadingException</a> e) {</div> | 
|  | <div class="line"><a name="l00136"></a><span class="lineno">  136</span>       <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(String.format(</div> | 
|  | <div class="line"><a name="l00137"></a><span class="lineno">  137</span>           <span class="stringliteral">"Failed to load metadata for table: '%s'"</span>, Joiner.on(<span class="stringliteral">"."</span>).join(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>)), e);</div> | 
|  | <div class="line"><a name="l00138"></a><span class="lineno">  138</span>     }</div> | 
|  | <div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div> | 
|  | <div class="line"><a name="l00140"></a><span class="lineno">  140</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#afc0b188f63c55758dabb1f25159bbc0a">getRootTable</a>() != null) {</div> | 
|  | <div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <span class="comment">// Add access event for auditing.</span></div> | 
|  | <div class="line"><a name="l00142"></a><span class="lineno">  142</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html">Table</a> table = resolvedPath_.getRootTable();</div> | 
|  | <div class="line"><a name="l00143"></a><span class="lineno">  143</span>       <span class="keywordflow">if</span> (table instanceof <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View.html">View</a>) {</div> | 
|  | <div class="line"><a name="l00144"></a><span class="lineno">  144</span>         View view = (View) table;</div> | 
|  | <div class="line"><a name="l00145"></a><span class="lineno">  145</span>         <span class="keywordflow">if</span> (!view.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View.html#a8e833ea31245e1ce28e8046d8668d649">isLocalView</a>()) {</div> | 
|  | <div class="line"><a name="l00146"></a><span class="lineno">  146</span>           analyzer.addAccessEvent(<span class="keyword">new</span> TAccessEvent(</div> | 
|  | <div class="line"><a name="l00147"></a><span class="lineno">  147</span>               table.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html#a5b21c8bb6e4867e76fc27abd43cfa62a">getFullName</a>(), TCatalogObjectType.VIEW,</div> | 
|  | <div class="line"><a name="l00148"></a><span class="lineno">  148</span>               <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>().toString()));</div> | 
|  | <div class="line"><a name="l00149"></a><span class="lineno">  149</span>         }</div> | 
|  | <div class="line"><a name="l00150"></a><span class="lineno">  150</span>       } <span class="keywordflow">else</span> {</div> | 
|  | <div class="line"><a name="l00151"></a><span class="lineno">  151</span>         analyzer.addAccessEvent(<span class="keyword">new</span> TAccessEvent(</div> | 
|  | <div class="line"><a name="l00152"></a><span class="lineno">  152</span>             table.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html#a5b21c8bb6e4867e76fc27abd43cfa62a">getFullName</a>(), TCatalogObjectType.TABLE,</div> | 
|  | <div class="line"><a name="l00153"></a><span class="lineno">  153</span>             <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>().toString()));</div> | 
|  | <div class="line"><a name="l00154"></a><span class="lineno">  154</span>       }</div> | 
|  | <div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div> | 
|  | <div class="line"><a name="l00156"></a><span class="lineno">  156</span>       <span class="comment">// Add privilege requests for authorization.</span></div> | 
|  | <div class="line"><a name="l00157"></a><span class="lineno">  157</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName.html">TableName</a> tableName = table.getTableName();</div> | 
|  | <div class="line"><a name="l00158"></a><span class="lineno">  158</span>       analyzer.registerPrivReq(<span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder.html">PrivilegeRequestBuilder</a>()</div> | 
|  | <div class="line"><a name="l00159"></a><span class="lineno">  159</span>           .onTable(tableName.getDb(), tableName.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName.html#ad73769e2a0bc856197630afb8811bc9c">getTbl</a>())</div> | 
|  | <div class="line"><a name="l00160"></a><span class="lineno">  160</span>           .allOf(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>()).toRequest());</div> | 
|  | <div class="line"><a name="l00161"></a><span class="lineno">  161</span>     }</div> | 
|  | <div class="line"><a name="l00162"></a><span class="lineno">  162</span>   }</div> | 
|  | <div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div> | 
|  | <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af7928a15d951d3bffdb1358ffb77ae0f">  169</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor.html">TupleDescriptor</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af7928a15d951d3bffdb1358ffb77ae0f">createTupleDescriptor</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">Analyzer</a> analyzer)</div> | 
|  | <div class="line"><a name="l00170"></a><span class="lineno">  170</span>       <span class="keywordflow">throws</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a> {</div> | 
|  | <div class="line"><a name="l00171"></a><span class="lineno">  171</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor.html">TupleDescriptor</a> result = analyzer.getDescTbl().<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af7928a15d951d3bffdb1358ffb77ae0f">createTupleDescriptor</a>(</div> | 
|  | <div class="line"><a name="l00172"></a><span class="lineno">  172</span>         getClass().getSimpleName() + <span class="stringliteral">" "</span> + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>());</div> | 
|  | <div class="line"><a name="l00173"></a><span class="lineno">  173</span>     result.setPath(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a>);</div> | 
|  | <div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="keywordflow">return</span> result;</div> | 
|  | <div class="line"><a name="l00175"></a><span class="lineno">  175</span>   }</div> | 
|  | <div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div> | 
|  | <div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ae1c80b385f6cf7df8c16e59312261060">  181</a></span>   <span class="keyword">protected</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ae1c80b385f6cf7df8c16e59312261060">setJoinAttrs</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> other) {</div> | 
|  | <div class="line"><a name="l00182"></a><span class="lineno">  182</span>     this.joinOp_ = other.joinOp_;</div> | 
|  | <div class="line"><a name="l00183"></a><span class="lineno">  183</span>     this.joinHints_ = other.joinHints_;</div> | 
|  | <div class="line"><a name="l00184"></a><span class="lineno">  184</span>     this.onClause_ = other.onClause_;</div> | 
|  | <div class="line"><a name="l00185"></a><span class="lineno">  185</span>     this.usingColNames_ = other.usingColNames_;</div> | 
|  | <div class="line"><a name="l00186"></a><span class="lineno">  186</span>   }</div> | 
|  | <div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div> | 
|  | <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">  188</a></span>   <span class="keyword">public</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">getJoinOp</a>() {</div> | 
|  | <div class="line"><a name="l00189"></a><span class="lineno">  189</span>     <span class="comment">// if it's not explicitly set, we're doing an inner join</span></div> | 
|  | <div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">return</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == null ? <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aa57923aef27d004862f2b3cb5e0cdd01">INNER_JOIN</a> : <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>);</div> | 
|  | <div class="line"><a name="l00191"></a><span class="lineno">  191</span>   }</div> | 
|  | <div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div> | 
|  | <div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab1824d0c6483e36df53fc2558d895052">  197</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab1824d0c6483e36df53fc2558d895052">isChildRef</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div> | 
|  | <div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div> | 
|  | <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a098ca33adf5269830b2507e22df3d1e2">  199</a></span>   <span class="keyword">public</span> List<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a098ca33adf5269830b2507e22df3d1e2">getPath</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>; }</div> | 
|  | <div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a69c798e3844ed8d2a48972abc8f2660c">  200</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a69c798e3844ed8d2a48972abc8f2660c">getResolvedPath</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a>; }</div> | 
|  | <div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div> | 
|  | <div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a400e08271af37487b94a38f25fbc6652">  205</a></span>   <span class="keyword">public</span> String[] <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a400e08271af37487b94a38f25fbc6652">getAliases</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">aliases_</a>; }</div> | 
|  | <div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div> | 
|  | <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">  212</a></span>   <span class="keyword">public</span> String <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">aliases_</a>[0]; }</div> | 
|  | <div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div> | 
|  | <div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6622608f1b890b6fc9b21fd520463123">  219</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6622608f1b890b6fc9b21fd520463123">hasExplicitAlias</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">hasExplicitAlias_</a>; }</div> | 
|  | <div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div> | 
|  | <div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a65d9bb69b3bca29f2d0d17b001d13103">  224</a></span>   <span class="keyword">public</span> String <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a65d9bb69b3bca29f2d0d17b001d13103">getExplicitAlias</a>() {</div> | 
|  | <div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6622608f1b890b6fc9b21fd520463123">hasExplicitAlias</a>()) <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>();</div> | 
|  | <div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="keywordflow">return</span> null;</div> | 
|  | <div class="line"><a name="l00227"></a><span class="lineno">  227</span>   }</div> | 
|  | <div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div> | 
|  | <div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#abb33f77a5ed41d57873e6ab4fa973257">  229</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html">Table</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#abb33f77a5ed41d57873e6ab4fa973257">getTable</a>() {</div> | 
|  | <div class="line"><a name="l00230"></a><span class="lineno">  230</span>     Preconditions.checkNotNull(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a>);</div> | 
|  | <div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="keywordflow">return</span> resolvedPath_.getRootTable();</div> | 
|  | <div class="line"><a name="l00232"></a><span class="lineno">  232</span>   }</div> | 
|  | <div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0813b8af78dbd6e6885cf1fe5a4df662">  233</a></span>   <span class="keyword">public</span> ArrayList<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0813b8af78dbd6e6885cf1fe5a4df662">getJoinHints</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a>; }</div> | 
|  | <div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a3cb6e7c5c7ca32918aeb82224cb63276">  234</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">Expr</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a3cb6e7c5c7ca32918aeb82224cb63276">getOnClause</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>; }</div> | 
|  | <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0af5530c400f4d5642bdd99016400885">  235</a></span>   <span class="keyword">public</span> List<String> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0af5530c400f4d5642bdd99016400885">getUsingClause</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a>; }</div> | 
|  | <div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac5ce9005711d281a1774727d9837332f">  236</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac5ce9005711d281a1774727d9837332f">setJoinOp</a>(<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a> op) { this.joinOp_ = op; }</div> | 
|  | <div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a304bde0690c71345be938e4377782592">  237</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a304bde0690c71345be938e4377782592">setOnClause</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">Expr</a> e) { this.onClause_ = e; }</div> | 
|  | <div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aed6dea871cb858e749585ae71642bc06">  238</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aed6dea871cb858e749585ae71642bc06">setUsingClause</a>(List<String> colNames) { this.usingColNames_ = colNames; }</div> | 
|  | <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aee1caa4453247d7983760079b7f55c9e">  239</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aee1caa4453247d7983760079b7f55c9e">getLeftTblRef</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>; }</div> | 
|  | <div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6777f29aa617c95e98489aeededb7a89">  240</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6777f29aa617c95e98489aeededb7a89">setLeftTblRef</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> leftTblRef) { this.leftTblRef_ = leftTblRef; }</div> | 
|  | <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a09939b6c23e6cfb6d03c5299f43f5f79">  241</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a09939b6c23e6cfb6d03c5299f43f5f79">setJoinHints</a>(ArrayList<String> hints) { this.joinHints_ = hints; }</div> | 
|  | <div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af4b2cc7502f9870d25dc2806a3ddb192">  242</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af4b2cc7502f9870d25dc2806a3ddb192">isBroadcastJoin</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">isBroadcastJoin_</a>; }</div> | 
|  | <div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a74fc48183fa5c3279fd418019d54833b">  243</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a74fc48183fa5c3279fd418019d54833b">isPartitionedJoin</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">isPartitionedJoin_</a>; }</div> | 
|  | <div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af50545c31bdfbe8f0c8a5bba5f504c44">  244</a></span>   <span class="keyword">public</span> List<TupleId> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af50545c31bdfbe8f0c8a5bba5f504c44">getOnClauseTupleIds</a>() { <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5d0bef7c077f57d420970854c18cc904">onClauseTupleIds_</a>; }</div> | 
|  | <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5f3f2e33129adc04a3f1a5ce9d3f07f4">  245</a></span>   <span class="keyword">public</span> <span class="keywordtype">boolean</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5f3f2e33129adc04a3f1a5ce9d3f07f4">isResolved</a>() { <span class="keywordflow">return</span> !getClass().equals(TableRef.class); }</div> | 
|  | <div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div> | 
|  | <div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adb7fea99804944555a4904d14b5a8c01">  250</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor.html">TupleDescriptor</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adb7fea99804944555a4904d14b5a8c01">getDesc</a>() {</div> | 
|  | <div class="line"><a name="l00251"></a><span class="lineno">  251</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a>);</div> | 
|  | <div class="line"><a name="l00252"></a><span class="lineno">  252</span>     <span class="comment">// after analyze(), desc should be set.</span></div> | 
|  | <div class="line"><a name="l00253"></a><span class="lineno">  253</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a> != null);</div> | 
|  | <div class="line"><a name="l00254"></a><span class="lineno">  254</span>     <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a>;</div> | 
|  | <div class="line"><a name="l00255"></a><span class="lineno">  255</span>   }</div> | 
|  | <div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div> | 
|  | <div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">  260</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleId.html">TupleId</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">getId</a>() {</div> | 
|  | <div class="line"><a name="l00261"></a><span class="lineno">  261</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a>);</div> | 
|  | <div class="line"><a name="l00262"></a><span class="lineno">  262</span>     <span class="comment">// after analyze(), desc should be set.</span></div> | 
|  | <div class="line"><a name="l00263"></a><span class="lineno">  263</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a> != null);</div> | 
|  | <div class="line"><a name="l00264"></a><span class="lineno">  264</span>     <span class="keywordflow">return</span> desc_.getId();</div> | 
|  | <div class="line"><a name="l00265"></a><span class="lineno">  265</span>   }</div> | 
|  | <div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div> | 
|  | <div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a421ed6d1550867b2804117223cbeb545">  267</a></span>   <span class="keyword">public</span> List<TupleId> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a421ed6d1550867b2804117223cbeb545">getMaterializedTupleIds</a>() {</div> | 
|  | <div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <span class="comment">// This function should only be called after analyze().</span></div> | 
|  | <div class="line"><a name="l00269"></a><span class="lineno">  269</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a>);</div> | 
|  | <div class="line"><a name="l00270"></a><span class="lineno">  270</span>     Preconditions.checkNotNull(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a>);</div> | 
|  | <div class="line"><a name="l00271"></a><span class="lineno">  271</span>     <span class="keywordflow">return</span> desc_.getId().asList();</div> | 
|  | <div class="line"><a name="l00272"></a><span class="lineno">  272</span>   }</div> | 
|  | <div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div> | 
|  | <div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aebf8b47d98fb23bf4e06ec4550f33800">  278</a></span>   <span class="keyword">public</span> List<TupleId> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aebf8b47d98fb23bf4e06ec4550f33800">getAllMaterializedTupleIds</a>() {</div> | 
|  | <div class="line"><a name="l00279"></a><span class="lineno">  279</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a> != null) {</div> | 
|  | <div class="line"><a name="l00280"></a><span class="lineno">  280</span>       List<TupleId> result =</div> | 
|  | <div class="line"><a name="l00281"></a><span class="lineno">  281</span>           Lists.newArrayList(leftTblRef_.getAllMaterializedTupleIds());</div> | 
|  | <div class="line"><a name="l00282"></a><span class="lineno">  282</span>       result.addAll(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a421ed6d1550867b2804117223cbeb545">getMaterializedTupleIds</a>());</div> | 
|  | <div class="line"><a name="l00283"></a><span class="lineno">  283</span>       <span class="keywordflow">return</span> result;</div> | 
|  | <div class="line"><a name="l00284"></a><span class="lineno">  284</span>     } <span class="keywordflow">else</span> {</div> | 
|  | <div class="line"><a name="l00285"></a><span class="lineno">  285</span>       <span class="keywordflow">return</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a421ed6d1550867b2804117223cbeb545">getMaterializedTupleIds</a>();</div> | 
|  | <div class="line"><a name="l00286"></a><span class="lineno">  286</span>     }</div> | 
|  | <div class="line"><a name="l00287"></a><span class="lineno">  287</span>   }</div> | 
|  | <div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div> | 
|  | <div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aac17fffe2db4089c402e13827fc91725">  292</a></span>   <span class="keyword">public</span> List<TupleId> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aac17fffe2db4089c402e13827fc91725">getAllTupleIds</a>() {</div> | 
|  | <div class="line"><a name="l00293"></a><span class="lineno">  293</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">isAnalyzed_</a>);</div> | 
|  | <div class="line"><a name="l00294"></a><span class="lineno">  294</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a> != null) {</div> | 
|  | <div class="line"><a name="l00295"></a><span class="lineno">  295</span>       List<TupleId> result = leftTblRef_.getAllTupleIds();</div> | 
|  | <div class="line"><a name="l00296"></a><span class="lineno">  296</span>       result.add(desc_.getId());</div> | 
|  | <div class="line"><a name="l00297"></a><span class="lineno">  297</span>       <span class="keywordflow">return</span> result;</div> | 
|  | <div class="line"><a name="l00298"></a><span class="lineno">  298</span>     } <span class="keywordflow">else</span> {</div> | 
|  | <div class="line"><a name="l00299"></a><span class="lineno">  299</span>       <span class="keywordflow">return</span> Lists.newArrayList(desc_.getId());</div> | 
|  | <div class="line"><a name="l00300"></a><span class="lineno">  300</span>     }</div> | 
|  | <div class="line"><a name="l00301"></a><span class="lineno">  301</span>   }</div> | 
|  | <div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div> | 
|  | <div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a35f6243a78c015db30f5de7a8f5c9d98">  303</a></span>   <span class="keyword">private</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a35f6243a78c015db30f5de7a8f5c9d98">analyzeJoinHints</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">Analyzer</a> analyzer) <span class="keywordflow">throws</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a> {</div> | 
|  | <div class="line"><a name="l00304"></a><span class="lineno">  304</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a> == null) <span class="keywordflow">return</span>;</div> | 
|  | <div class="line"><a name="l00305"></a><span class="lineno">  305</span>     <span class="keywordflow">for</span> (String hint: <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a>) {</div> | 
|  | <div class="line"><a name="l00306"></a><span class="lineno">  306</span>       <span class="keywordflow">if</span> (hint.equalsIgnoreCase(<span class="stringliteral">"BROADCAST"</span>)) {</div> | 
|  | <div class="line"><a name="l00307"></a><span class="lineno">  307</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a52763f7402f6cda66a89e1db6e654224">RIGHT_OUTER_JOIN</a></div> | 
|  | <div class="line"><a name="l00308"></a><span class="lineno">  308</span>             || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afb6be8664ecdc718fd06d7fb5d55bf02">FULL_OUTER_JOIN</a></div> | 
|  | <div class="line"><a name="l00309"></a><span class="lineno">  309</span>             || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a669bb0025077046ed01aae5b7d492959">RIGHT_SEMI_JOIN</a></div> | 
|  | <div class="line"><a name="l00310"></a><span class="lineno">  310</span>             || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a228a3d9cb07d7db059ffe917442b78a7">RIGHT_ANTI_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00311"></a><span class="lineno">  311</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(</div> | 
|  | <div class="line"><a name="l00312"></a><span class="lineno">  312</span>               <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a7807a926cf41fa31897cb638ef14e8ad">toString</a>() + <span class="stringliteral">" does not support BROADCAST."</span>);</div> | 
|  | <div class="line"><a name="l00313"></a><span class="lineno">  313</span>         }</div> | 
|  | <div class="line"><a name="l00314"></a><span class="lineno">  314</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">isPartitionedJoin_</a>) {</div> | 
|  | <div class="line"><a name="l00315"></a><span class="lineno">  315</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(<span class="stringliteral">"Conflicting JOIN hint: "</span> + hint);</div> | 
|  | <div class="line"><a name="l00316"></a><span class="lineno">  316</span>         }</div> | 
|  | <div class="line"><a name="l00317"></a><span class="lineno">  317</span>         <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">isBroadcastJoin_</a> = <span class="keyword">true</span>;</div> | 
|  | <div class="line"><a name="l00318"></a><span class="lineno">  318</span>         analyzer.setHasPlanHints();</div> | 
|  | <div class="line"><a name="l00319"></a><span class="lineno">  319</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hint.equalsIgnoreCase(<span class="stringliteral">"SHUFFLE"</span>)) {</div> | 
|  | <div class="line"><a name="l00320"></a><span class="lineno">  320</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aed20a5f291c6ea19e43d77a08328150d">CROSS_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00321"></a><span class="lineno">  321</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(<span class="stringliteral">"CROSS JOIN does not support SHUFFLE."</span>);</div> | 
|  | <div class="line"><a name="l00322"></a><span class="lineno">  322</span>         }</div> | 
|  | <div class="line"><a name="l00323"></a><span class="lineno">  323</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">isBroadcastJoin_</a>) {</div> | 
|  | <div class="line"><a name="l00324"></a><span class="lineno">  324</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(<span class="stringliteral">"Conflicting JOIN hint: "</span> + hint);</div> | 
|  | <div class="line"><a name="l00325"></a><span class="lineno">  325</span>         }</div> | 
|  | <div class="line"><a name="l00326"></a><span class="lineno">  326</span>         <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">isPartitionedJoin_</a> = <span class="keyword">true</span>;</div> | 
|  | <div class="line"><a name="l00327"></a><span class="lineno">  327</span>         analyzer.setHasPlanHints();</div> | 
|  | <div class="line"><a name="l00328"></a><span class="lineno">  328</span>       } <span class="keywordflow">else</span> {</div> | 
|  | <div class="line"><a name="l00329"></a><span class="lineno">  329</span>         analyzer.addWarning(<span class="stringliteral">"JOIN hint not recognized: "</span> + hint);</div> | 
|  | <div class="line"><a name="l00330"></a><span class="lineno">  330</span>       }</div> | 
|  | <div class="line"><a name="l00331"></a><span class="lineno">  331</span>     }</div> | 
|  | <div class="line"><a name="l00332"></a><span class="lineno">  332</span>   }</div> | 
|  | <div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div> | 
|  | <div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adf450b938333cd7bc98c681b33c698ff">  339</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adf450b938333cd7bc98c681b33c698ff">analyzeJoin</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">Analyzer</a> analyzer) <span class="keywordflow">throws</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a> {</div> | 
|  | <div class="line"><a name="l00340"></a><span class="lineno">  340</span>     Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a> != null);</div> | 
|  | <div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a35f6243a78c015db30f5de7a8f5c9d98">analyzeJoinHints</a>(analyzer);</div> | 
|  | <div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aed20a5f291c6ea19e43d77a08328150d">CROSS_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00343"></a><span class="lineno">  343</span>       <span class="comment">// A CROSS JOIN is always a broadcast join, regardless of the join hints</span></div> | 
|  | <div class="line"><a name="l00344"></a><span class="lineno">  344</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">isBroadcastJoin_</a> = <span class="keyword">true</span>;</div> | 
|  | <div class="line"><a name="l00345"></a><span class="lineno">  345</span>     }</div> | 
|  | <div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div> | 
|  | <div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a> != null) {</div> | 
|  | <div class="line"><a name="l00348"></a><span class="lineno">  348</span>       Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> != <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aed20a5f291c6ea19e43d77a08328150d">JoinOperator.CROSS_JOIN</a>);</div> | 
|  | <div class="line"><a name="l00349"></a><span class="lineno">  349</span>       <span class="comment">// Turn USING clause into equivalent ON clause.</span></div> | 
|  | <div class="line"><a name="l00350"></a><span class="lineno">  350</span>       <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a> = null;</div> | 
|  | <div class="line"><a name="l00351"></a><span class="lineno">  351</span>       <span class="keywordflow">for</span> (String colName: <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a>) {</div> | 
|  | <div class="line"><a name="l00352"></a><span class="lineno">  352</span>         <span class="comment">// check whether colName exists both for our table and the one</span></div> | 
|  | <div class="line"><a name="l00353"></a><span class="lineno">  353</span>         <span class="comment">// to the left of us</span></div> | 
|  | <div class="line"><a name="l00354"></a><span class="lineno">  354</span>         <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a> leftColPath = <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adb7fea99804944555a4904d14b5a8c01">getDesc</a>(),</div> | 
|  | <div class="line"><a name="l00355"></a><span class="lineno">  355</span>             Lists.newArrayList(colName.toLowerCase()));</div> | 
|  | <div class="line"><a name="l00356"></a><span class="lineno">  356</span>         <span class="keywordflow">if</span> (!leftColPath.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#a8b5ade6b6cf183c4bd3c08e03854b7bd">resolve</a>()) {</div> | 
|  | <div class="line"><a name="l00357"></a><span class="lineno">  357</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(</div> | 
|  | <div class="line"><a name="l00358"></a><span class="lineno">  358</span>               <span class="stringliteral">"unknown column "</span> + colName + <span class="stringliteral">" for alias "</span></div> | 
|  | <div class="line"><a name="l00359"></a><span class="lineno">  359</span>               + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>() + <span class="stringliteral">" (in \""</span> + this.toSql() + <span class="stringliteral">"\")"</span>);</div> | 
|  | <div class="line"><a name="l00360"></a><span class="lineno">  360</span>         }</div> | 
|  | <div class="line"><a name="l00361"></a><span class="lineno">  361</span>         <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a> rightColPath = <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">desc_</a>,</div> | 
|  | <div class="line"><a name="l00362"></a><span class="lineno">  362</span>             Lists.newArrayList(colName.toLowerCase()));</div> | 
|  | <div class="line"><a name="l00363"></a><span class="lineno">  363</span>         <span class="keywordflow">if</span> (!rightColPath.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#a8b5ade6b6cf183c4bd3c08e03854b7bd">resolve</a>()) {</div> | 
|  | <div class="line"><a name="l00364"></a><span class="lineno">  364</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(</div> | 
|  | <div class="line"><a name="l00365"></a><span class="lineno">  365</span>               <span class="stringliteral">"unknown column "</span> + colName + <span class="stringliteral">" for alias "</span></div> | 
|  | <div class="line"><a name="l00366"></a><span class="lineno">  366</span>               + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>() + <span class="stringliteral">" (in \""</span> + this.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">toSql</a>() + <span class="stringliteral">"\")"</span>);</div> | 
|  | <div class="line"><a name="l00367"></a><span class="lineno">  367</span>         }</div> | 
|  | <div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div> | 
|  | <div class="line"><a name="l00369"></a><span class="lineno">  369</span>         <span class="comment">// create predicate "<left>.colName = <right>.colName"</span></div> | 
|  | <div class="line"><a name="l00370"></a><span class="lineno">  370</span>         <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1BinaryPredicate.html">BinaryPredicate</a> eqPred =</div> | 
|  | <div class="line"><a name="l00371"></a><span class="lineno">  371</span>             <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1BinaryPredicate.html">BinaryPredicate</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1BinaryPredicate.html">BinaryPredicate</a>.Operator.EQ,</div> | 
|  | <div class="line"><a name="l00372"></a><span class="lineno">  372</span>               <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1SlotRef.html">SlotRef</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#ad419d3a9fafa67b65dd4e12e0be5623f">createRawPath</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>(), colName)),</div> | 
|  | <div class="line"><a name="l00373"></a><span class="lineno">  373</span>               <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1SlotRef.html">SlotRef</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">Path</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#ad419d3a9fafa67b65dd4e12e0be5623f">createRawPath</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">getUniqueAlias</a>(), colName)));</div> | 
|  | <div class="line"><a name="l00374"></a><span class="lineno">  374</span>         onClause_ = CompoundPredicate.createConjunction(eqPred, <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>);</div> | 
|  | <div class="line"><a name="l00375"></a><span class="lineno">  375</span>       }</div> | 
|  | <div class="line"><a name="l00376"></a><span class="lineno">  376</span>     }</div> | 
|  | <div class="line"><a name="l00377"></a><span class="lineno">  377</span> </div> | 
|  | <div class="line"><a name="l00378"></a><span class="lineno">  378</span>     <span class="comment">// at this point, both 'this' and leftTblRef have been analyzed and registered;</span></div> | 
|  | <div class="line"><a name="l00379"></a><span class="lineno">  379</span>     <span class="comment">// register the tuple ids of the TableRefs on the nullable side of an outer join</span></div> | 
|  | <div class="line"><a name="l00380"></a><span class="lineno">  380</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a3e45b5b2214eb80b290562a3511a860b">LEFT_OUTER_JOIN</a></div> | 
|  | <div class="line"><a name="l00381"></a><span class="lineno">  381</span>         || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afb6be8664ecdc718fd06d7fb5d55bf02">FULL_OUTER_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00382"></a><span class="lineno">  382</span>       analyzer.registerOuterJoinedTids(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">getId</a>().asList(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00383"></a><span class="lineno">  383</span>     }</div> | 
|  | <div class="line"><a name="l00384"></a><span class="lineno">  384</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a52763f7402f6cda66a89e1db6e654224">RIGHT_OUTER_JOIN</a></div> | 
|  | <div class="line"><a name="l00385"></a><span class="lineno">  385</span>         || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afb6be8664ecdc718fd06d7fb5d55bf02">FULL_OUTER_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00386"></a><span class="lineno">  386</span>       analyzer.registerOuterJoinedTids(leftTblRef_.getAllTupleIds(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00387"></a><span class="lineno">  387</span>     }</div> | 
|  | <div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <span class="comment">// register the tuple ids of a full outer join</span></div> | 
|  | <div class="line"><a name="l00389"></a><span class="lineno">  389</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afb6be8664ecdc718fd06d7fb5d55bf02">FULL_OUTER_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00390"></a><span class="lineno">  390</span>       analyzer.registerFullOuterJoinedTids(leftTblRef_.getAllTupleIds(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00391"></a><span class="lineno">  391</span>       analyzer.registerFullOuterJoinedTids(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">getId</a>().asList(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00392"></a><span class="lineno">  392</span>     }</div> | 
|  | <div class="line"><a name="l00393"></a><span class="lineno">  393</span>     <span class="comment">// register the tuple id of the rhs of a left semi join</span></div> | 
|  | <div class="line"><a name="l00394"></a><span class="lineno">  394</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleId.html">TupleId</a> semiJoinedTupleId = null;</div> | 
|  | <div class="line"><a name="l00395"></a><span class="lineno">  395</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aaea7f1fd6a9d820086f8af9d728c52f6">LEFT_SEMI_JOIN</a></div> | 
|  | <div class="line"><a name="l00396"></a><span class="lineno">  396</span>         || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afacd4da736771503d09f305ee7aaa4d0">LEFT_ANTI_JOIN</a></div> | 
|  | <div class="line"><a name="l00397"></a><span class="lineno">  397</span>         || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a8b09b2f7e6b542cc348277552a7104d8">NULL_AWARE_LEFT_ANTI_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00398"></a><span class="lineno">  398</span>       analyzer.registerSemiJoinedTid(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">getId</a>(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00399"></a><span class="lineno">  399</span>       semiJoinedTupleId = <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">getId</a>();</div> | 
|  | <div class="line"><a name="l00400"></a><span class="lineno">  400</span>     }</div> | 
|  | <div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <span class="comment">// register the tuple id of the lhs of a right semi join</span></div> | 
|  | <div class="line"><a name="l00402"></a><span class="lineno">  402</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a669bb0025077046ed01aae5b7d492959">RIGHT_SEMI_JOIN</a></div> | 
|  | <div class="line"><a name="l00403"></a><span class="lineno">  403</span>         || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">JoinOperator</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a228a3d9cb07d7db059ffe917442b78a7">RIGHT_ANTI_JOIN</a>) {</div> | 
|  | <div class="line"><a name="l00404"></a><span class="lineno">  404</span>       analyzer.registerSemiJoinedTid(leftTblRef_.getId(), <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00405"></a><span class="lineno">  405</span>       semiJoinedTupleId = leftTblRef_.getId();</div> | 
|  | <div class="line"><a name="l00406"></a><span class="lineno">  406</span>     }</div> | 
|  | <div class="line"><a name="l00407"></a><span class="lineno">  407</span> </div> | 
|  | <div class="line"><a name="l00408"></a><span class="lineno">  408</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a> != null) {</div> | 
|  | <div class="line"><a name="l00409"></a><span class="lineno">  409</span>       Preconditions.checkState(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> != <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aed20a5f291c6ea19e43d77a08328150d">JoinOperator.CROSS_JOIN</a>);</div> | 
|  | <div class="line"><a name="l00410"></a><span class="lineno">  410</span>       analyzer.setVisibleSemiJoinedTuple(semiJoinedTupleId);</div> | 
|  | <div class="line"><a name="l00411"></a><span class="lineno">  411</span>       onClause_.analyze(analyzer);</div> | 
|  | <div class="line"><a name="l00412"></a><span class="lineno">  412</span>       analyzer.setVisibleSemiJoinedTuple(null);</div> | 
|  | <div class="line"><a name="l00413"></a><span class="lineno">  413</span>       onClause_.checkReturnsBool(<span class="stringliteral">"ON clause"</span>, <span class="keyword">true</span>);</div> | 
|  | <div class="line"><a name="l00414"></a><span class="lineno">  414</span>         <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>.contains(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">Expr</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a15a8828b6869e70fe8131a292b48a4a0">isAggregatePredicate</a>())) {</div> | 
|  | <div class="line"><a name="l00415"></a><span class="lineno">  415</span>           <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(</div> | 
|  | <div class="line"><a name="l00416"></a><span class="lineno">  416</span>               <span class="stringliteral">"aggregate function not allowed in ON clause: "</span> + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">toSql</a>());</div> | 
|  | <div class="line"><a name="l00417"></a><span class="lineno">  417</span>       }</div> | 
|  | <div class="line"><a name="l00418"></a><span class="lineno">  418</span>       <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>.contains(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1AnalyticExpr.html">AnalyticExpr</a>.class)) {</div> | 
|  | <div class="line"><a name="l00419"></a><span class="lineno">  419</span>         <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(</div> | 
|  | <div class="line"><a name="l00420"></a><span class="lineno">  420</span>             <span class="stringliteral">"analytic expression not allowed in ON clause: "</span> + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">toSql</a>());</div> | 
|  | <div class="line"><a name="l00421"></a><span class="lineno">  421</span>       }</div> | 
|  | <div class="line"><a name="l00422"></a><span class="lineno">  422</span>       Set<TupleId> onClauseTupleIds = Sets.newHashSet();</div> | 
|  | <div class="line"><a name="l00423"></a><span class="lineno">  423</span>       <span class="keywordflow">for</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">Expr</a> e: <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a104f1c51ebb5cf27818185c1ab16af40">getConjuncts</a>()) {</div> | 
|  | <div class="line"><a name="l00424"></a><span class="lineno">  424</span>         <span class="comment">// Outer join clause conjuncts are registered for this particular table ref</span></div> | 
|  | <div class="line"><a name="l00425"></a><span class="lineno">  425</span>         <span class="comment">// (ie, can only be evaluated by the plan node that implements this join).</span></div> | 
|  | <div class="line"><a name="l00426"></a><span class="lineno">  426</span>         <span class="comment">// The exception are conjuncts that only pertain to the nullable side</span></div> | 
|  | <div class="line"><a name="l00427"></a><span class="lineno">  427</span>         <span class="comment">// of the outer join; those can be evaluated directly when materializing tuples</span></div> | 
|  | <div class="line"><a name="l00428"></a><span class="lineno">  428</span>         <span class="comment">// without violating outer join semantics.</span></div> | 
|  | <div class="line"><a name="l00429"></a><span class="lineno">  429</span>         analyzer.registerOnClauseConjuncts(e, <span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00430"></a><span class="lineno">  430</span>         List<TupleId> tupleIds = Lists.newArrayList();</div> | 
|  | <div class="line"><a name="l00431"></a><span class="lineno">  431</span>         e.getIds(tupleIds, null);</div> | 
|  | <div class="line"><a name="l00432"></a><span class="lineno">  432</span>         onClauseTupleIds.addAll(tupleIds);</div> | 
|  | <div class="line"><a name="l00433"></a><span class="lineno">  433</span>       }</div> | 
|  | <div class="line"><a name="l00434"></a><span class="lineno">  434</span>       onClauseTupleIds_.addAll(onClauseTupleIds);</div> | 
|  | <div class="line"><a name="l00435"></a><span class="lineno">  435</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab1824d0c6483e36df53fc2558d895052">isChildRef</a>()</div> | 
|  | <div class="line"><a name="l00436"></a><span class="lineno">  436</span>         && (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">getJoinOp</a>().isOuterJoin() || <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">getJoinOp</a>().isSemiJoin())) {</div> | 
|  | <div class="line"><a name="l00437"></a><span class="lineno">  437</span>       <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">AnalysisException</a>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a7807a926cf41fa31897cb638ef14e8ad">toString</a>() + <span class="stringliteral">" requires an ON or USING clause."</span>);</div> | 
|  | <div class="line"><a name="l00438"></a><span class="lineno">  438</span>     }</div> | 
|  | <div class="line"><a name="l00439"></a><span class="lineno">  439</span>   }</div> | 
|  | <div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div> | 
|  | <div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a8d9a02da17d5ee9aa39f0b18f948394b">  447</a></span>   <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a8d9a02da17d5ee9aa39f0b18f948394b">invertJoin</a>(List<Pair<TableRef, PlanNode>> refPlans, <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">Analyzer</a> analyzer) {</div> | 
|  | <div class="line"><a name="l00448"></a><span class="lineno">  448</span>     <span class="comment">// Assert that this is the first join in a series of joins.</span></div> | 
|  | <div class="line"><a name="l00449"></a><span class="lineno">  449</span>     Preconditions.checkState(leftTblRef_.leftTblRef_ == null);</div> | 
|  | <div class="line"><a name="l00450"></a><span class="lineno">  450</span>     <span class="comment">// Find a table ref that references 'this' as its left table (if any) and change</span></div> | 
|  | <div class="line"><a name="l00451"></a><span class="lineno">  451</span>     <span class="comment">// it to reference 'this.leftTblRef_ 'instead, because 'this.leftTblRef_' will</span></div> | 
|  | <div class="line"><a name="l00452"></a><span class="lineno">  452</span>     <span class="comment">// become the new rhs of the inverted join.</span></div> | 
|  | <div class="line"><a name="l00453"></a><span class="lineno">  453</span>     <span class="keywordflow">for</span> (Pair<TableRef, PlanNode> refPlan: refPlans) {</div> | 
|  | <div class="line"><a name="l00454"></a><span class="lineno">  454</span>       <span class="keywordflow">if</span> (refPlan.first.leftTblRef_ == <span class="keyword">this</span>) {</div> | 
|  | <div class="line"><a name="l00455"></a><span class="lineno">  455</span>         refPlan.first.setLeftTblRef(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>);</div> | 
|  | <div class="line"><a name="l00456"></a><span class="lineno">  456</span>         <span class="keywordflow">break</span>;</div> | 
|  | <div class="line"><a name="l00457"></a><span class="lineno">  457</span>       }</div> | 
|  | <div class="line"><a name="l00458"></a><span class="lineno">  458</span>     }</div> | 
|  | <div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aca01cfbe719b33f494d4dc4e6994d535">isOuterJoin</a>()) analyzer.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html#aa32250507ef6f0b06f04441b5ce4e3bd">invertOuterJoinState</a>(<span class="keyword">this</span>, <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a>);</div> | 
|  | <div class="line"><a name="l00460"></a><span class="lineno">  460</span>     leftTblRef_.setJoinOp(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">getJoinOp</a>().invert());</div> | 
|  | <div class="line"><a name="l00461"></a><span class="lineno">  461</span>     leftTblRef_.setLeftTblRef(<span class="keyword">this</span>);</div> | 
|  | <div class="line"><a name="l00462"></a><span class="lineno">  462</span>     leftTblRef_.setOnClause(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>);</div> | 
|  | <div class="line"><a name="l00463"></a><span class="lineno">  463</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> = null;</div> | 
|  | <div class="line"><a name="l00464"></a><span class="lineno">  464</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a> = null;</div> | 
|  | <div class="line"><a name="l00465"></a><span class="lineno">  465</span>     <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a> = null;</div> | 
|  | <div class="line"><a name="l00466"></a><span class="lineno">  466</span>   }</div> | 
|  | <div class="line"><a name="l00467"></a><span class="lineno">  467</span> </div> | 
|  | <div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aa28e6cb765ca5d77968018548d8b5359">  468</a></span>   <span class="keyword">protected</span> String <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aa28e6cb765ca5d77968018548d8b5359">tableRefToSql</a>() {</div> | 
|  | <div class="line"><a name="l00469"></a><span class="lineno">  469</span>     String aliasSql = null;</div> | 
|  | <div class="line"><a name="l00470"></a><span class="lineno">  470</span>     String alias = <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a65d9bb69b3bca29f2d0d17b001d13103">getExplicitAlias</a>();</div> | 
|  | <div class="line"><a name="l00471"></a><span class="lineno">  471</span>     <span class="keywordflow">if</span> (alias != null) aliasSql = ToSqlUtils.getIdentSql(alias);</div> | 
|  | <div class="line"><a name="l00472"></a><span class="lineno">  472</span>     List<String> path = <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">rawPath_</a>;</div> | 
|  | <div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">resolvedPath_</a> != null) path = resolvedPath_.getFullyQualifiedRawPath();</div> | 
|  | <div class="line"><a name="l00474"></a><span class="lineno">  474</span>     <span class="keywordflow">return</span> ToSqlUtils.getPathSql(<a class="code" href="sasl-test_8cc.html#a2db66f7b463c0e190f8933e51f43d91e">path</a>) + ((aliasSql != null) ? <span class="stringliteral">" "</span> + aliasSql : <span class="stringliteral">""</span>);</div> | 
|  | <div class="line"><a name="l00475"></a><span class="lineno">  475</span>   }</div> | 
|  | <div class="line"><a name="l00476"></a><span class="lineno">  476</span> </div> | 
|  | <div class="line"><a name="l00477"></a><span class="lineno">  477</span>   @Override</div> | 
|  | <div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">  478</a></span>   <span class="keyword">public</span> String <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">toSql</a>() {</div> | 
|  | <div class="line"><a name="l00479"></a><span class="lineno">  479</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a> == null) {</div> | 
|  | <div class="line"><a name="l00480"></a><span class="lineno">  480</span>       <span class="comment">// prepend "," if we're part of a sequence of table refs w/o an</span></div> | 
|  | <div class="line"><a name="l00481"></a><span class="lineno">  481</span>       <span class="comment">// explicit JOIN clause</span></div> | 
|  | <div class="line"><a name="l00482"></a><span class="lineno">  482</span>       <span class="keywordflow">return</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">leftTblRef_</a> != null ? <span class="stringliteral">", "</span> : <span class="stringliteral">""</span>) + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aa28e6cb765ca5d77968018548d8b5359">tableRefToSql</a>();</div> | 
|  | <div class="line"><a name="l00483"></a><span class="lineno">  483</span>     }</div> | 
|  | <div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div> | 
|  | <div class="line"><a name="l00485"></a><span class="lineno">  485</span>     StringBuilder output = <span class="keyword">new</span> StringBuilder(<span class="stringliteral">" "</span> + <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">joinOp_</a>.<a class="code" href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a7807a926cf41fa31897cb638ef14e8ad">toString</a>() + <span class="stringliteral">" "</span>);</div> | 
|  | <div class="line"><a name="l00486"></a><span class="lineno">  486</span>     <span class="keywordflow">if</span>(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a> != null) output.append(ToSqlUtils.getPlanHintsSql(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">joinHints_</a>) + <span class="stringliteral">" "</span>);</div> | 
|  | <div class="line"><a name="l00487"></a><span class="lineno">  487</span>     output.append(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aa28e6cb765ca5d77968018548d8b5359">tableRefToSql</a>());</div> | 
|  | <div class="line"><a name="l00488"></a><span class="lineno">  488</span>     <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a> != null) {</div> | 
|  | <div class="line"><a name="l00489"></a><span class="lineno">  489</span>       output.append(<span class="stringliteral">" USING ("</span>).append(Joiner.on(<span class="stringliteral">", "</span>).join(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">usingColNames_</a>)).append(<span class="stringliteral">")"</span>);</div> | 
|  | <div class="line"><a name="l00490"></a><span class="lineno">  490</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a> != null) {</div> | 
|  | <div class="line"><a name="l00491"></a><span class="lineno">  491</span>       output.append(<span class="stringliteral">" ON "</span>).append(<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">onClause_</a>.<a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a8a7f3127d58f9b9e03cd2a5855311dc8">toSql</a>());</div> | 
|  | <div class="line"><a name="l00492"></a><span class="lineno">  492</span>     }</div> | 
|  | <div class="line"><a name="l00493"></a><span class="lineno">  493</span>     <span class="keywordflow">return</span> output.toString();</div> | 
|  | <div class="line"><a name="l00494"></a><span class="lineno">  494</span>   }</div> | 
|  | <div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div> | 
|  | <div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">  499</a></span>   <span class="keyword">public</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege.html">Privilege</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">getPrivilegeRequirement</a>() { <span class="keywordflow">return</span> <a class="code" href="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege.html#a9e79159f744b48459510355cf819f614">Privilege.SELECT</a>; }</div> | 
|  | <div class="line"><a name="l00500"></a><span class="lineno">  500</span> </div> | 
|  | <div class="line"><a name="l00501"></a><span class="lineno">  501</span>   @Override</div> | 
|  | <div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a94f5e69d5d0427f3f597b6dc6afb45db">  502</a></span>   <span class="keyword">public</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">TableRef</a> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a94f5e69d5d0427f3f597b6dc6afb45db">clone</a>() { <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a094f550a53ae415c2ce417d28716ac08">TableRef</a>(<span class="keyword">this</span>); }</div> | 
|  | <div class="line"><a name="l00503"></a><span class="lineno">  503</span> }</div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleDescriptor.html">com.cloudera.impala.analysis.TupleDescriptor</a></div><div class="ttdef"><b>Definition:</b> <a href="TupleDescriptor_8java_source.html#l00054">TupleDescriptor.java:54</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer_html_aa32250507ef6f0b06f04441b5ce4e3bd"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html#aa32250507ef6f0b06f04441b5ce4e3bd">com.cloudera.impala.analysis.Analyzer.invertOuterJoinState</a></div><div class="ttdeci">void invertOuterJoinState(TableRef oldRhsTbl, TableRef newRhsTbl)</div><div class="ttdef"><b>Definition:</b> <a href="Analyzer_8java_source.html#l01400">Analyzer.java:1400</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a304bde0690c71345be938e4377782592"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a304bde0690c71345be938e4377782592">com.cloudera.impala.analysis.TableRef.setOnClause</a></div><div class="ttdeci">void setOnClause(Expr e)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00237">TableRef.java:237</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ac6feca79b9c225e00d26f39b8ca0686c"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac6feca79b9c225e00d26f39b8ca0686c">com.cloudera.impala.analysis.TableRef.aliases_</a></div><div class="ttdeci">String[] aliases_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00058">TableRef.java:58</a></div></div> | 
|  | <div class="ttc" id="sasl-test_8cc_html_a2db66f7b463c0e190f8933e51f43d91e"><div class="ttname"><a href="sasl-test_8cc.html#a2db66f7b463c0e190f8933e51f43d91e">path</a></div><div class="ttdeci">string path("/usr/lib/sasl2:/usr/lib64/sasl2:/usr/local/lib/sasl2:/usr/lib/x86_64-linux-gnu/sasl2")</div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a669bb0025077046ed01aae5b7d492959"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a669bb0025077046ed01aae5b7d492959">com.cloudera.impala.analysis.JoinOperator.RIGHT_SEMI_JOIN</a></div><div class="ttdeci">RIGHT_SEMI_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00025">JoinOperator.java:25</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_aca01cfbe719b33f494d4dc4e6994d535"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aca01cfbe719b33f494d4dc4e6994d535">com.cloudera.impala.analysis.JoinOperator.isOuterJoin</a></div><div class="ttdeci">boolean isOuterJoin()</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00056">JoinOperator.java:56</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html">com.cloudera.impala.catalog.Table</a></div><div class="ttdef"><b>Definition:</b> <a href="Table_8java_source.html#l00051">Table.java:51</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a7807a926cf41fa31897cb638ef14e8ad"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a7807a926cf41fa31897cb638ef14e8ad">com.cloudera.impala.analysis.JoinOperator.toString</a></div><div class="ttdeci">String toString()</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00044">JoinOperator.java:44</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a5d0bef7c077f57d420970854c18cc904"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5d0bef7c077f57d420970854c18cc904">com.cloudera.impala.analysis.TableRef.onClauseTupleIds_</a></div><div class="ttdeci">List< TupleId > onClauseTupleIds_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00080">TableRef.java:80</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1authorization_1_1PrivilegeRequestBuilder.html">com.cloudera.impala.authorization.PrivilegeRequestBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="PrivilegeRequestBuilder_8java_source.html#l00032">PrivilegeRequestBuilder.java:32</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a834f3bccce00d1bf671a09cee618e64e"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a834f3bccce00d1bf671a09cee618e64e">com.cloudera.impala.analysis.TableRef.leftTblRef_</a></div><div class="ttdeci">TableRef leftTblRef_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00073">TableRef.java:73</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType_html"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType.html">com.cloudera.impala.analysis.Path.PathType</a></div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00081">Path.java:81</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a909a3940c704c71996bdb60ecffb70b8"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a909a3940c704c71996bdb60ecffb70b8">com.cloudera.impala.analysis.TableRef.onClause_</a></div><div class="ttdeci">Expr onClause_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00065">TableRef.java:65</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View.html">com.cloudera.impala.catalog.View</a></div><div class="ttdef"><b>Definition:</b> <a href="View_8java_source.html#l00041">View.java:41</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1BinaryPredicate_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1BinaryPredicate.html">com.cloudera.impala.analysis.BinaryPredicate</a></div><div class="ttdef"><b>Definition:</b> <a href="BinaryPredicate_8java_source.html#l00042">BinaryPredicate.java:42</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a23722bebd2a724caf714b3f967f55aa3"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a23722bebd2a724caf714b3f967f55aa3">com.cloudera.impala.analysis.TableRef.getJoinOp</a></div><div class="ttdeci">JoinOperator getJoinOp()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00188">TableRef.java:188</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_af2afb13c3ceb71627b1a748888f12f12"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af2afb13c3ceb71627b1a748888f12f12">com.cloudera.impala.analysis.TableRef.getPrivilegeRequirement</a></div><div class="ttdeci">Privilege getPrivilegeRequirement()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00499">TableRef.java:499</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a436e1b236e0f03b40a5c2daf5da07cb8"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a436e1b236e0f03b40a5c2daf5da07cb8">com.cloudera.impala.analysis.TableRef.getUniqueAlias</a></div><div class="ttdeci">String getUniqueAlias()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00212">TableRef.java:212</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr_html_a15a8828b6869e70fe8131a292b48a4a0"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a15a8828b6869e70fe8131a292b48a4a0">com.cloudera.impala.analysis.Expr.isAggregatePredicate</a></div><div class="ttdeci">static com.google.common.base.Predicate< Expr > isAggregatePredicate()</div><div class="ttdef"><b>Definition:</b> <a href="Expr_8java_source.html#l00523">Expr.java:523</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ab69c7a58575eb7f029a086a8f0135659"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab69c7a58575eb7f029a086a8f0135659">com.cloudera.impala.analysis.TableRef.toSql</a></div><div class="ttdeci">String toSql()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00478">TableRef.java:478</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr_html_a8a7f3127d58f9b9e03cd2a5855311dc8"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a8a7f3127d58f9b9e03cd2a5855311dc8">com.cloudera.impala.analysis.Expr.toSql</a></div><div class="ttdeci">String toSql()</div><div class="ttdef"><b>Definition:</b> <a href="Expr_8java_source.html#l00449">Expr.java:449</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a09939b6c23e6cfb6d03c5299f43f5f79"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a09939b6c23e6cfb6d03c5299f43f5f79">com.cloudera.impala.analysis.TableRef.setJoinHints</a></div><div class="ttdeci">void setJoinHints(ArrayList< String > hints)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00241">TableRef.java:241</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aac17fffe2db4089c402e13827fc91725"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aac17fffe2db4089c402e13827fc91725">com.cloudera.impala.analysis.TableRef.getAllTupleIds</a></div><div class="ttdeci">List< TupleId > getAllTupleIds()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00292">TableRef.java:292</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ac8383a491a353e81ce8ba4f0dbd4c234"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac8383a491a353e81ce8ba4f0dbd4c234">com.cloudera.impala.analysis.TableRef.isPartitionedJoin_</a></div><div class="ttdeci">boolean isPartitionedJoin_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00070">TableRef.java:70</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_aaea7f1fd6a9d820086f8af9d728c52f6"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aaea7f1fd6a9d820086f8af9d728c52f6">com.cloudera.impala.analysis.JoinOperator.LEFT_SEMI_JOIN</a></div><div class="ttdeci">LEFT_SEMI_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00022">JoinOperator.java:22</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a3e45b5b2214eb80b290562a3511a860b"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a3e45b5b2214eb80b290562a3511a860b">com.cloudera.impala.analysis.JoinOperator.LEFT_OUTER_JOIN</a></div><div class="ttdeci">LEFT_OUTER_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00021">JoinOperator.java:21</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a5e62c5415f14ad21993b0290501b9085"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5e62c5415f14ad21993b0290501b9085">com.cloudera.impala.analysis.TableRef.analyze</a></div><div class="ttdeci">void analyze(Analyzer analyzer)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00117">TableRef.java:117</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr_html_a3029a08185c79e214478bfcbd407c7b1"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a3029a08185c79e214478bfcbd407c7b1">com.cloudera.impala.analysis.Expr.clone</a></div><div class="ttdeci">abstract Expr clone()</div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a74fc48183fa5c3279fd418019d54833b"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a74fc48183fa5c3279fd418019d54833b">com.cloudera.impala.analysis.TableRef.isPartitionedJoin</a></div><div class="ttdeci">boolean isPartitionedJoin()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00243">TableRef.java:243</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a9b79c76adcdff0c7b6f497bcd5215469"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9b79c76adcdff0c7b6f497bcd5215469">com.cloudera.impala.analysis.TableRef.desc_</a></div><div class="ttdeci">TupleDescriptor desc_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00083">TableRef.java:83</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_html_afc0b188f63c55758dabb1f25159bbc0a"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#afc0b188f63c55758dabb1f25159bbc0a">com.cloudera.impala.analysis.Path.getRootTable</a></div><div class="ttdeci">Table getRootTable()</div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00238">Path.java:238</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a5f3f2e33129adc04a3f1a5ce9d3f07f4"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a5f3f2e33129adc04a3f1a5ce9d3f07f4">com.cloudera.impala.analysis.TableRef.isResolved</a></div><div class="ttdeci">boolean isResolved()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00245">TableRef.java:245</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a0813b8af78dbd6e6885cf1fe5a4df662"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0813b8af78dbd6e6885cf1fe5a4df662">com.cloudera.impala.analysis.TableRef.getJoinHints</a></div><div class="ttdeci">ArrayList< String > getJoinHints()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00233">TableRef.java:233</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_aa57923aef27d004862f2b3cb5e0cdd01"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aa57923aef27d004862f2b3cb5e0cdd01">com.cloudera.impala.analysis.JoinOperator.INNER_JOIN</a></div><div class="ttdeci">INNER_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00020">JoinOperator.java:20</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1planner_1_1PlanNode_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1planner_1_1PlanNode.html">com.cloudera.impala.planner.PlanNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PlanNode_8java_source.html#l00059">PlanNode.java:59</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName.html">com.cloudera.impala.analysis.TableName</a></div><div class="ttdef"><b>Definition:</b> <a href="TableName_8java_source.html#l00033">TableName.java:33</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aba7182e044fdf34afe2b57d21fcb2c5f"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aba7182e044fdf34afe2b57d21fcb2c5f">com.cloudera.impala.analysis.TableRef.isBroadcastJoin_</a></div><div class="ttdeci">boolean isBroadcastJoin_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00069">TableRef.java:69</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a504aa8fb68cc530654a444cb8efc1d6a"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a504aa8fb68cc530654a444cb8efc1d6a">com.cloudera.impala.analysis.TableRef.hasExplicitAlias_</a></div><div class="ttdeci">boolean hasExplicitAlias_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00061">TableRef.java:61</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1common_1_1AnalysisException.html">com.cloudera.impala.common.AnalysisException</a></div><div class="ttdef"><b>Definition:</b> <a href="AnalysisException_8java_source.html#l00021">AnalysisException.java:21</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_af4b2cc7502f9870d25dc2806a3ddb192"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af4b2cc7502f9870d25dc2806a3ddb192">com.cloudera.impala.analysis.TableRef.isBroadcastJoin</a></div><div class="ttdeci">boolean isBroadcastJoin()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00242">TableRef.java:242</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1SlotRef_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1SlotRef.html">com.cloudera.impala.analysis.SlotRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SlotRef_8java_source.html#l00035">SlotRef.java:35</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a098ca33adf5269830b2507e22df3d1e2"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a098ca33adf5269830b2507e22df3d1e2">com.cloudera.impala.analysis.TableRef.getPath</a></div><div class="ttdeci">List< String > getPath()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00199">TableRef.java:199</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aa28e6cb765ca5d77968018548d8b5359"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aa28e6cb765ca5d77968018548d8b5359">com.cloudera.impala.analysis.TableRef.tableRefToSql</a></div><div class="ttdeci">String tableRefToSql()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00468">TableRef.java:468</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html">com.cloudera.impala.analysis.JoinOperator</a></div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00019">JoinOperator.java:19</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a35f6243a78c015db30f5de7a8f5c9d98"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a35f6243a78c015db30f5de7a8f5c9d98">com.cloudera.impala.analysis.TableRef.analyzeJoinHints</a></div><div class="ttdeci">void analyzeJoinHints(Analyzer analyzer)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00303">TableRef.java:303</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_aed20a5f291c6ea19e43d77a08328150d"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#aed20a5f291c6ea19e43d77a08328150d">com.cloudera.impala.analysis.JoinOperator.CROSS_JOIN</a></div><div class="ttdeci">CROSS_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00028">JoinOperator.java:28</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ae1c80b385f6cf7df8c16e59312261060"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ae1c80b385f6cf7df8c16e59312261060">com.cloudera.impala.analysis.TableRef.setJoinAttrs</a></div><div class="ttdeci">void setJoinAttrs(TableRef other)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00181">TableRef.java:181</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a421ed6d1550867b2804117223cbeb545"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a421ed6d1550867b2804117223cbeb545">com.cloudera.impala.analysis.TableRef.getMaterializedTupleIds</a></div><div class="ttdeci">List< TupleId > getMaterializedTupleIds()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00267">TableRef.java:267</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a094f550a53ae415c2ce417d28716ac08"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a094f550a53ae415c2ce417d28716ac08">com.cloudera.impala.analysis.TableRef.TableRef</a></div><div class="ttdeci">TableRef(List< String > path, String alias)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00085">TableRef.java:85</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aaca52e892cee565459366d3cdedca372"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aaca52e892cee565459366d3cdedca372">com.cloudera.impala.analysis.TableRef.rawPath_</a></div><div class="ttdeci">List< String > rawPath_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00047">TableRef.java:47</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a9431ec3d3c8f23c103c005fa81c541c1"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a9431ec3d3c8f23c103c005fa81c541c1">com.cloudera.impala.analysis.TableRef.resolvedPath_</a></div><div class="ttdeci">Path resolvedPath_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00050">TableRef.java:50</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a24a3ac3e0fea9784c98322b9c22c451f"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a24a3ac3e0fea9784c98322b9c22c451f">com.cloudera.impala.analysis.TableRef.getId</a></div><div class="ttdeci">TupleId getId()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00260">TableRef.java:260</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html">com.cloudera.impala.analysis.TableRef</a></div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00045">TableRef.java:45</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_afb6be8664ecdc718fd06d7fb5d55bf02"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afb6be8664ecdc718fd06d7fb5d55bf02">com.cloudera.impala.analysis.JoinOperator.FULL_OUTER_JOIN</a></div><div class="ttdeci">FULL_OUTER_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00027">JoinOperator.java:27</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a51876c67039a109aa20cb9a52ab71177"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a51876c67039a109aa20cb9a52ab71177">com.cloudera.impala.analysis.TableRef.joinHints_</a></div><div class="ttdeci">ArrayList< String > joinHints_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00064">TableRef.java:64</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_afacd4da736771503d09f305ee7aaa4d0"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#afacd4da736771503d09f305ee7aaa4d0">com.cloudera.impala.analysis.JoinOperator.LEFT_ANTI_JOIN</a></div><div class="ttdeci">LEFT_ANTI_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00023">JoinOperator.java:23</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html">com.cloudera.impala.analysis.Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Expr_8java_source.html#l00048">Expr.java:48</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a94f5e69d5d0427f3f597b6dc6afb45db"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a94f5e69d5d0427f3f597b6dc6afb45db">com.cloudera.impala.analysis.TableRef.clone</a></div><div class="ttdeci">TableRef clone()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00502">TableRef.java:502</a></div></div> | 
|  | <div class="ttc" id="interfacecom_1_1cloudera_1_1impala_1_1analysis_1_1ParseNode_html"><div class="ttname"><a href="interfacecom_1_1cloudera_1_1impala_1_1analysis_1_1ParseNode.html">com.cloudera.impala.analysis.ParseNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ParseNode_8java_source.html#l00019">ParseNode.java:19</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aed6dea871cb858e749585ae71642bc06"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aed6dea871cb858e749585ae71642bc06">com.cloudera.impala.analysis.TableRef.setUsingClause</a></div><div class="ttdeci">void setUsingClause(List< String > colNames)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00238">TableRef.java:238</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ac5ce9005711d281a1774727d9837332f"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ac5ce9005711d281a1774727d9837332f">com.cloudera.impala.analysis.TableRef.setJoinOp</a></div><div class="ttdeci">void setJoinOp(JoinOperator op)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00236">TableRef.java:236</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType_html_a67f6b2287f9d34beee10405b77d4efed"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_1_1PathType.html#a67f6b2287f9d34beee10405b77d4efed">com.cloudera.impala.analysis.Path.PathType.TABLE_REF</a></div><div class="ttdeci">TABLE_REF</div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00083">Path.java:83</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a52763f7402f6cda66a89e1db6e654224"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a52763f7402f6cda66a89e1db6e654224">com.cloudera.impala.analysis.JoinOperator.RIGHT_OUTER_JOIN</a></div><div class="ttdeci">RIGHT_OUTER_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00024">JoinOperator.java:24</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a69c798e3844ed8d2a48972abc8f2660c"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a69c798e3844ed8d2a48972abc8f2660c">com.cloudera.impala.analysis.TableRef.getResolvedPath</a></div><div class="ttdeci">Path getResolvedPath()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00200">TableRef.java:200</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a8d9a02da17d5ee9aa39f0b18f948394b"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a8d9a02da17d5ee9aa39f0b18f948394b">com.cloudera.impala.analysis.TableRef.invertJoin</a></div><div class="ttdeci">void invertJoin(List< Pair< TableRef, PlanNode >> refPlans, Analyzer analyzer)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00447">TableRef.java:447</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_abb33f77a5ed41d57873e6ab4fa973257"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#abb33f77a5ed41d57873e6ab4fa973257">com.cloudera.impala.analysis.TableRef.getTable</a></div><div class="ttdeci">Table getTable()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00229">TableRef.java:229</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View_html_a8e833ea31245e1ce28e8046d8668d649"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1View.html#a8e833ea31245e1ce28e8046d8668d649">com.cloudera.impala.catalog.View.isLocalView</a></div><div class="ttdeci">boolean isLocalView()</div><div class="ttdef"><b>Definition:</b> <a href="View_8java_source.html#l00154">View.java:154</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a0af5530c400f4d5642bdd99016400885"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0af5530c400f4d5642bdd99016400885">com.cloudera.impala.analysis.TableRef.getUsingClause</a></div><div class="ttdeci">List< String > getUsingClause()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00235">TableRef.java:235</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_af50545c31bdfbe8f0c8a5bba5f504c44"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af50545c31bdfbe8f0c8a5bba5f504c44">com.cloudera.impala.analysis.TableRef.getOnClauseTupleIds</a></div><div class="ttdeci">List< TupleId > getOnClauseTupleIds()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00244">TableRef.java:244</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege_html"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege.html">com.cloudera.impala.authorization.Privilege</a></div><div class="ttdef"><b>Definition:</b> <a href="Privilege_8java_source.html#l00024">Privilege.java:24</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1AnalyticExpr_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1AnalyticExpr.html">com.cloudera.impala.analysis.AnalyticExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="AnalyticExpr_8java_source.html#l00060">AnalyticExpr.java:60</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_html_ad419d3a9fafa67b65dd4e12e0be5623f"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#ad419d3a9fafa67b65dd4e12e0be5623f">com.cloudera.impala.analysis.Path.createRawPath</a></div><div class="ttdeci">static ArrayList< String > createRawPath(String rootAlias, String fieldName)</div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00350">Path.java:350</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Analyzer.html">com.cloudera.impala.analysis.Analyzer</a></div><div class="ttdef"><b>Definition:</b> <a href="Analyzer_8java_source.html#l00105">Analyzer.java:105</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ab1824d0c6483e36df53fc2558d895052"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ab1824d0c6483e36df53fc2558d895052">com.cloudera.impala.analysis.TableRef.isChildRef</a></div><div class="ttdeci">boolean isChildRef()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00197">TableRef.java:197</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_adb7fea99804944555a4904d14b5a8c01"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adb7fea99804944555a4904d14b5a8c01">com.cloudera.impala.analysis.TableRef.getDesc</a></div><div class="ttdeci">TupleDescriptor getDesc()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00250">TableRef.java:250</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a514b68cc8236f5480df705bd48cf7538"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a514b68cc8236f5480df705bd48cf7538">com.cloudera.impala.analysis.TableRef.isAnalyzed_</a></div><div class="ttdeci">boolean isAnalyzed_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00077">TableRef.java:77</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a400e08271af37487b94a38f25fbc6652"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a400e08271af37487b94a38f25fbc6652">com.cloudera.impala.analysis.TableRef.getAliases</a></div><div class="ttdeci">String[] getAliases()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00205">TableRef.java:205</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_html_a8b5ade6b6cf183c4bd3c08e03854b7bd"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html#a8b5ade6b6cf183c4bd3c08e03854b7bd">com.cloudera.impala.analysis.Path.resolve</a></div><div class="ttdeci">boolean resolve()</div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00169">Path.java:169</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a8b09b2f7e6b542cc348277552a7104d8"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a8b09b2f7e6b542cc348277552a7104d8">com.cloudera.impala.analysis.JoinOperator.NULL_AWARE_LEFT_ANTI_JOIN</a></div><div class="ttdeci">NULL_AWARE_LEFT_ANTI_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00032">JoinOperator.java:32</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleId_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TupleId.html">com.cloudera.impala.analysis.TupleId</a></div><div class="ttdef"><b>Definition:</b> <a href="TupleId_8java_source.html#l00023">TupleId.java:23</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a6777f29aa617c95e98489aeededb7a89"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6777f29aa617c95e98489aeededb7a89">com.cloudera.impala.analysis.TableRef.setLeftTblRef</a></div><div class="ttdeci">void setLeftTblRef(TableRef leftTblRef)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00240">TableRef.java:240</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName_html_ad73769e2a0bc856197630afb8811bc9c"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableName.html#ad73769e2a0bc856197630afb8811bc9c">com.cloudera.impala.analysis.TableName.getTbl</a></div><div class="ttdeci">String getTbl()</div><div class="ttdef"><b>Definition:</b> <a href="TableName_8java_source.html#l00046">TableName.java:46</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_ade99175f011cc9294ae2b50295db3909"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#ade99175f011cc9294ae2b50295db3909">com.cloudera.impala.analysis.TableRef.usingColNames_</a></div><div class="ttdeci">List< String > usingColNames_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00066">TableRef.java:66</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator_html_a228a3d9cb07d7db059ffe917442b78a7"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1analysis_1_1JoinOperator.html#a228a3d9cb07d7db059ffe917442b78a7">com.cloudera.impala.analysis.JoinOperator.RIGHT_ANTI_JOIN</a></div><div class="ttdeci">RIGHT_ANTI_JOIN</div><div class="ttdef"><b>Definition:</b> <a href="JoinOperator_8java_source.html#l00026">JoinOperator.java:26</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_af7928a15d951d3bffdb1358ffb77ae0f"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#af7928a15d951d3bffdb1358ffb77ae0f">com.cloudera.impala.analysis.TableRef.createTupleDescriptor</a></div><div class="ttdeci">TupleDescriptor createTupleDescriptor(Analyzer analyzer)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00169">TableRef.java:169</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_adf450b938333cd7bc98c681b33c698ff"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#adf450b938333cd7bc98c681b33c698ff">com.cloudera.impala.analysis.TableRef.analyzeJoin</a></div><div class="ttdeci">void analyzeJoin(Analyzer analyzer)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00339">TableRef.java:339</a></div></div> | 
|  | <div class="ttc" id="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege_html_a9e79159f744b48459510355cf819f614"><div class="ttname"><a href="enumcom_1_1cloudera_1_1impala_1_1authorization_1_1Privilege.html#a9e79159f744b48459510355cf819f614">com.cloudera.impala.authorization.Privilege.SELECT</a></div><div class="ttdeci">SELECT</div><div class="ttdef"><b>Definition:</b> <a href="Privilege_8java_source.html#l00030">Privilege.java:30</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a6622608f1b890b6fc9b21fd520463123"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a6622608f1b890b6fc9b21fd520463123">com.cloudera.impala.analysis.TableRef.hasExplicitAlias</a></div><div class="ttdeci">boolean hasExplicitAlias()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00219">TableRef.java:219</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr_html_a104f1c51ebb5cf27818185c1ab16af40"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Expr.html#a104f1c51ebb5cf27818185c1ab16af40">com.cloudera.impala.analysis.Expr.getConjuncts</a></div><div class="ttdeci">List< Expr > getConjuncts()</div><div class="ttdef"><b>Definition:</b> <a href="Expr_8java_source.html#l00662">Expr.java:662</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a65d9bb69b3bca29f2d0d17b001d13103"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a65d9bb69b3bca29f2d0d17b001d13103">com.cloudera.impala.analysis.TableRef.getExplicitAlias</a></div><div class="ttdeci">String getExplicitAlias()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00224">TableRef.java:224</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aebf8b47d98fb23bf4e06ec4550f33800"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aebf8b47d98fb23bf4e06ec4550f33800">com.cloudera.impala.analysis.TableRef.getAllMaterializedTupleIds</a></div><div class="ttdeci">List< TupleId > getAllMaterializedTupleIds()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00278">TableRef.java:278</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1Path.html">com.cloudera.impala.analysis.Path</a></div><div class="ttdef"><b>Definition:</b> <a href="Path_8java_source.html#l00074">Path.java:74</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1catalog_1_1TableLoadingException_html"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1TableLoadingException.html">com.cloudera.impala.catalog.TableLoadingException</a></div><div class="ttdef"><b>Definition:</b> <a href="TableLoadingException_8java_source.html#l00021">TableLoadingException.java:21</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a3cb6e7c5c7ca32918aeb82224cb63276"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a3cb6e7c5c7ca32918aeb82224cb63276">com.cloudera.impala.analysis.TableRef.getOnClause</a></div><div class="ttdeci">Expr getOnClause()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00234">TableRef.java:234</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_aee1caa4453247d7983760079b7f55c9e"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#aee1caa4453247d7983760079b7f55c9e">com.cloudera.impala.analysis.TableRef.getLeftTblRef</a></div><div class="ttdeci">TableRef getLeftTblRef()</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00239">TableRef.java:239</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a0f017c35629f9737fd6651cb96b74d78"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a0f017c35629f9737fd6651cb96b74d78">com.cloudera.impala.analysis.TableRef.TableRef</a></div><div class="ttdeci">TableRef(TableRef other)</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00100">TableRef.java:100</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table_html_a5b21c8bb6e4867e76fc27abd43cfa62a"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1catalog_1_1Table.html#a5b21c8bb6e4867e76fc27abd43cfa62a">com.cloudera.impala.catalog.Table.getFullName</a></div><div class="ttdeci">String getFullName()</div><div class="ttdef"><b>Definition:</b> <a href="Table_8java_source.html#l00343">Table.java:343</a></div></div> | 
|  | <div class="ttc" id="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef_html_a78345498aa83742c902aa6e03111ed49"><div class="ttname"><a href="classcom_1_1cloudera_1_1impala_1_1analysis_1_1TableRef.html#a78345498aa83742c902aa6e03111ed49">com.cloudera.impala.analysis.TableRef.joinOp_</a></div><div class="ttdeci">JoinOperator joinOp_</div><div class="ttdef"><b>Definition:</b> <a href="TableRef_8java_source.html#l00063">TableRef.java:63</a></div></div> | 
|  | </div><!-- fragment --></div><!-- contents --> | 
|  | </div><!-- doc-content --> | 
|  | <!-- start footer part --> | 
|  | <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> | 
|  | <ul> | 
|  | <li class="navelem"><a class="el" href="dir_ca2797c59c2e868cd2eca72571423f6a.html">fe</a></li><li class="navelem"><a class="el" href="dir_9456c03c9c6e5a96e843b28fc5c6395b.html">src</a></li><li class="navelem"><a class="el" href="dir_31c8d7a6e8855be2d8d6fa4227c487c3.html">main</a></li><li class="navelem"><a class="el" href="dir_d2615d3423c50009d0fa2801d3e0150c.html">java</a></li><li class="navelem"><a class="el" href="dir_df2af9fb37a2f3aedd0dd3e7b116eedc.html">com</a></li><li class="navelem"><a class="el" href="dir_48ee7e70be44cce637301d7ac948c4e1.html">cloudera</a></li><li class="navelem"><a class="el" href="dir_c062777d65f1b5dc463ca31df638b83a.html">impala</a></li><li class="navelem"><a class="el" href="dir_5a28c2814222b20468ce1cf07f052735.html">analysis</a></li><li class="navelem"><a class="el" href="TableRef_8java.html">TableRef.java</a></li> | 
|  | <li class="footer">Generated on Thu May 7 2015 16:10:38 for Impala by | 
|  | <a href="http://www.doxygen.org/index.html"> | 
|  | <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> | 
|  | </ul> | 
|  | </div> | 
|  | </body> | 
|  | </html> |