| <!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: be/src/exec/hash-table.h 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('hash-table_8h_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">hash-table.h</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <a href="hash-table_8h.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> </div> |
| <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef IMPALA_EXEC_HASH_TABLE_H</span></div> |
| <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span><span class="preprocessor">#define IMPALA_EXEC_HASH_TABLE_H</span></div> |
| <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"></span></div> |
| <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <vector></span></div> |
| <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <boost/cstdint.hpp></span></div> |
| <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <boost/scoped_ptr.hpp></span></div> |
| <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="impala-ir_8h.html">codegen/impala-ir.h</a>"</span></div> |
| <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="logging_8h.html">common/logging.h</a>"</span></div> |
| <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="buffered-block-mgr_8h.html">runtime/buffered-block-mgr.h</a>"</span></div> |
| <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="buffered-tuple-stream_8h.html">runtime/buffered-tuple-stream.h</a>"</span></div> |
| <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="buffered-tuple-stream_8inline_8h.html">runtime/buffered-tuple-stream.inline.h</a>"</span></div> |
| <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="mem-tracker_8h.html">runtime/mem-tracker.h</a>"</span></div> |
| <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="tuple-row_8h.html">runtime/tuple-row.h</a>"</span></div> |
| <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="bitmap_8h.html">util/bitmap.h</a>"</span></div> |
| <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="hash-util_8h.html">util/hash-util.h</a>"</span></div> |
| <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div> |
| <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span>llvm {</div> |
| <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">class </span>Function;</div> |
| <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> }</div> |
| <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div> |
| <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>impala {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">class </span>Expr;</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>ExprContext;</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>LlvmCodeGen;</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>MemTracker;</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>RowDescriptor;</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span>RuntimeState;</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>Tuple;</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>TupleRow;</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">class </span>HashTable;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//</span></div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"></span><span class="comment">//</span></div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"></span><span class="comment">//</span></div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"></span><span class="comment">//</span></div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span><span class="comment">//</span></div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"></span></div> |
| <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html"> 104</a></span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a> {</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classimpala_1_1HashTableCtx.html#aeec475f7305de2910672e7b301dfb9d9">HashTableCtx</a>(<span class="keyword">const</span> std::vector<ExprContext*>& build_expr_ctxs,</div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> std::vector<ExprContext*>& probe_expr_ctxs, <span class="keywordtype">bool</span> stores_nulls,</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">bool</span> finds_nulls, int32_t initial_seed, <span class="keywordtype">int</span> max_levels,</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">int</span> num_build_tuples);</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aa5429a8f6c765b740a54b3e2d8cbd63b">Close</a>();</div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div> |
| <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aadd04c3eb11049a06d356844ae479ee4">set_level</a>(<span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#ac6acde7728919a561fc4c79f75c8ad14">level</a>);</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#ac6acde7728919a561fc4c79f75c8ad14"> 124</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#ac6acde7728919a561fc4c79f75c8ad14">level</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">level_</a>; }</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#ad613f1a2e85543f4afacee9f568db70e"> 125</a></span>  uint32_t <a class="code" href="classimpala_1_1HashTableCtx.html#ad613f1a2e85543f4afacee9f568db70e">seed</a>(<span class="keywordtype">int</span> level) { <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c">seeds_</a>.at(level); }</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div> |
| <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426"> 127</a></span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aec787cbcc1d6aa4d8e90f2fc52d12c50">row_</a>; }</div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div> |
| <div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#ac010384a3026499a2ab5b465258d41fa"> 134</a></span>  <span class="keywordtype">void</span>* <a class="code" href="classimpala_1_1HashTableCtx.html#ac010384a3026499a2ab5b465258d41fa">last_expr_value</a>(<span class="keywordtype">int</span> expr_idx)<span class="keyword"> const </span>{</div> |
| <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a4995d1cdf709230f66d81be1d612d9ad">expr_values_buffer_</a> + <a class="code" href="classimpala_1_1HashTableCtx.html#a2af21d0c722279bc48addb02dc7d4f9c">expr_values_buffer_offsets_</a>[expr_idx];</div> |
| <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div> |
| <div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div> |
| <div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a4a588e032295321c1940dba38b574768"> 139</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a4a588e032295321c1940dba38b574768">last_expr_value_null</a>(<span class="keywordtype">int</span> expr_idx)<span class="keyword"> const </span>{</div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aa0841acffb814745aca473460769c009">expr_value_null_bits_</a>[expr_idx];</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#aa1c1b818cb5c0004d01f6ad7487a3394">EvalAndHashBuild</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>, uint32_t* <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#a5f92cb6aa106a9fb60fb42debfe14979">EvalAndHashProbe</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>, uint32_t* <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div> |
| <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a477c70070cfeb4bae1e4799a95c754ad"> 151</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a477c70070cfeb4bae1e4799a95c754ad">results_buffer_size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aa2d8a6ef8cf6daebf8e1fbf239fff3ec">results_buffer_size_</a>; }</div> |
| <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div> |
| <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  llvm::Function* <a class="code" href="classimpala_1_1HashTableCtx.html#a3801dc80f094f7bc7b57b3a6f1183503">CodegenEvalRow</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, <span class="keywordtype">bool</span> build_row);</div> |
| <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  llvm::Function* <a class="code" href="classimpala_1_1HashTableCtx.html#aaeabf0274f58b3267bedfdb0bf772c9d">CodegenEquals</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state);</div> |
| <div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div> |
| <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  llvm::Function* <a class="code" href="classimpala_1_1HashTableCtx.html#a1e33a5d90f3c24589f00e2804e1d2cee">CodegenHashCurrentRow</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, <span class="keywordtype">bool</span> use_murmur);</div> |
| <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div> |
| <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a44e0bff0aa2e995e08a52240a587d0fa"> 169</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classimpala_1_1HashTableCtx.html#a44e0bff0aa2e995e08a52240a587d0fa">LLVM_CLASS_NAME</a>;</div> |
| <div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div> |
| <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a574ea806a7ec4e2f0fa54ed7da67b628"> 172</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable.html">HashTable</a>;</div> |
| <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> |
| <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a7f2a20c37756a44feeae7cd335f2746f"> 177</a></span>  uint32_t <a class="code" href="impala-ir_8h.html#aa2f1cf984a158c22088f777a379be0f2">IR_NO_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#a7f2a20c37756a44feeae7cd335f2746f">HashCurrentRow</a>() {</div> |
| <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  DCHECK_LT(<a class="code" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">level_</a>, <a class="code" href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c">seeds_</a>.size());</div> |
| <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1HashTableCtx.html#a1abe9d912251bc4544e59127fcaecbfe">var_result_begin_</a> == -1) {</div> |
| <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a3c1ed6ef5aa26ad39861dcc50eb013e8">Hash</a>(<a class="code" href="classimpala_1_1HashTableCtx.html#a4995d1cdf709230f66d81be1d612d9ad">expr_values_buffer_</a>, <a class="code" href="classimpala_1_1HashTableCtx.html#aa2d8a6ef8cf6daebf8e1fbf239fff3ec">results_buffer_size_</a>, <a class="code" href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c">seeds_</a>[<a class="code" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">level_</a>]);</div> |
| <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aff70889dabe20650c59d74914506fa4d">HashTableCtx::HashVariableLenRow</a>();</div> |
| <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div> |
| <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div> |
| <div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div> |
| <div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a3c1ed6ef5aa26ad39861dcc50eb013e8"> 192</a></span>  uint32_t <span class="keyword">inline</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a3c1ed6ef5aa26ad39861dcc50eb013e8">Hash</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* input, <span class="keywordtype">int</span> len, int32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>) {</div> |
| <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">level_</a> == 0) <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashUtil.html#a90e4737e5bf94d622cbb2fbdac5c6634">HashUtil::Hash</a>(input, len, hash);</div> |
| <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashUtil.html#a9298a9bb5f2016b9b57f395b99a77cbc">HashUtil::MurmurHash2_64</a>(input, len, hash);</div> |
| <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div> |
| <div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div> |
| <div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a4710c7202b6716547326b7f1d2a6730b"> 203</a></span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#aa2f1cf984a158c22088f777a379be0f2">IR_NO_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#a4710c7202b6716547326b7f1d2a6730b">EvalBuildRow</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>) {</div> |
| <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a5b44463c0e80b52ee43c1e64335fff3b">EvalRow</a>(row, <a class="code" href="classimpala_1_1HashTableCtx.html#a98106277a1116a3285d350067ee66d88">build_expr_ctxs_</a>);</div> |
| <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div> |
| <div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div> |
| <div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a35dd000b13acadd90b975609b8e39e55"> 209</a></span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#aa2f1cf984a158c22088f777a379be0f2">IR_NO_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#a35dd000b13acadd90b975609b8e39e55">EvalProbeRow</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>) {</div> |
| <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a5b44463c0e80b52ee43c1e64335fff3b">EvalRow</a>(row, <a class="code" href="classimpala_1_1HashTableCtx.html#a745544cb985f00d23018f23fb5fed789">probe_expr_ctxs_</a>);</div> |
| <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div> |
| <div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div> |
| <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  uint32_t <a class="code" href="classimpala_1_1HashTableCtx.html#aff70889dabe20650c59d74914506fa4d">HashVariableLenRow</a>();</div> |
| <div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div> |
| <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a5b44463c0e80b52ee43c1e64335fff3b">EvalRow</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">row</a>, <span class="keyword">const</span> std::vector<ExprContext*>& ctxs);</div> |
| <div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div> |
| <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#aa2f1cf984a158c22088f777a379be0f2">IR_NO_INLINE</a> <a class="code" href="classimpala_1_1HashTableCtx.html#a889c176bf31f6a36c7ec5e54f18b7c14">Equals</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* build_row);</div> |
| <div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div> |
| <div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a98106277a1116a3285d350067ee66d88"> 227</a></span>  <span class="keyword">const</span> std::vector<ExprContext*>& <a class="code" href="classimpala_1_1HashTableCtx.html#a98106277a1116a3285d350067ee66d88">build_expr_ctxs_</a>;</div> |
| <div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a745544cb985f00d23018f23fb5fed789"> 228</a></span>  <span class="keyword">const</span> std::vector<ExprContext*>& <a class="code" href="classimpala_1_1HashTableCtx.html#a745544cb985f00d23018f23fb5fed789">probe_expr_ctxs_</a>;</div> |
| <div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div> |
| <div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a09e07488bac4c611f09303a6e6d2ba13"> 234</a></span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a09e07488bac4c611f09303a6e6d2ba13">stores_nulls_</a>;</div> |
| <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a37a23fb4e24cc776ffdef905f8fd76a4"> 235</a></span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a37a23fb4e24cc776ffdef905f8fd76a4">finds_nulls_</a>;</div> |
| <div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div> |
| <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c"> 239</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">level_</a>;</div> |
| <div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div> |
| <div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c"> 242</a></span>  std::vector<uint32_t> <a class="code" href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c">seeds_</a>;</div> |
| <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> |
| <div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a2af21d0c722279bc48addb02dc7d4f9c"> 246</a></span>  std::vector<int> <a class="code" href="classimpala_1_1HashTableCtx.html#a2af21d0c722279bc48addb02dc7d4f9c">expr_values_buffer_offsets_</a>;</div> |
| <div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div> |
| <div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a1abe9d912251bc4544e59127fcaecbfe"> 251</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#a1abe9d912251bc4544e59127fcaecbfe">var_result_begin_</a>;</div> |
| <div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div> |
| <div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#aa2d8a6ef8cf6daebf8e1fbf239fff3ec"> 255</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTableCtx.html#aa2d8a6ef8cf6daebf8e1fbf239fff3ec">results_buffer_size_</a>;</div> |
| <div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div> |
| <div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#a4995d1cdf709230f66d81be1d612d9ad"> 259</a></span>  uint8_t* <a class="code" href="classimpala_1_1HashTableCtx.html#a4995d1cdf709230f66d81be1d612d9ad">expr_values_buffer_</a>;</div> |
| <div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div> |
| <div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#aa0841acffb814745aca473460769c009"> 263</a></span>  uint8_t* <a class="code" href="classimpala_1_1HashTableCtx.html#aa0841acffb814745aca473460769c009">expr_value_null_bits_</a>;</div> |
| <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div> |
| <div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTableCtx.html#aec787cbcc1d6aa4d8e90f2fc52d12c50"> 266</a></span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTableCtx.html#aec787cbcc1d6aa4d8e90f2fc52d12c50">row_</a>;</div> |
| <div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div> |
| <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  uint32_t <a class="code" href="classimpala_1_1HashTableCtx.html#aeb10a9c707ed3773a7acd4a438b3811b">GetHashSeed</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> };</div> |
| <div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div> |
| <div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html"> 281</a></span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable.html">HashTable</a> {</div> |
| <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div> |
| <div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="unionimpala_1_1HashTable_1_1HtData.html"> 285</a></span>  <span class="keyword">union </span><a class="code" href="unionimpala_1_1HashTable_1_1HtData.html">HtData</a> {</div> |
| <div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="unionimpala_1_1HashTable_1_1HtData.html#ae540a5f4e0b9f80e3f9057678328e0f7"> 286</a></span>  <a class="code" href="structimpala_1_1BufferedTupleStream_1_1RowIdx.html">BufferedTupleStream::RowIdx</a> <a class="code" href="unionimpala_1_1HashTable_1_1HtData.html#ae540a5f4e0b9f80e3f9057678328e0f7">idx</a>;</div> |
| <div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="unionimpala_1_1HashTable_1_1HtData.html#a399c6ee6b802c2d55f4c18fef30d5a43"> 287</a></span>  <a class="code" href="classimpala_1_1Tuple.html">Tuple</a>* <a class="code" href="unionimpala_1_1HashTable_1_1HtData.html#a399c6ee6b802c2d55f4c18fef30d5a43">tuple</a>;</div> |
| <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  };</div> |
| <div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div> |
| <div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1DuplicateNode.html"> 291</a></span>  <span class="keyword">struct </span><a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a> {</div> |
| <div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1DuplicateNode.html#a61fe600bfa729712702e550a1d334133"> 297</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html#a61fe600bfa729712702e550a1d334133">matched</a>;</div> |
| <div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div> |
| <div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1DuplicateNode.html#a3d4f49a62285fc21dd3caec9aa7fe820"> 299</a></span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html#a3d4f49a62285fc21dd3caec9aa7fe820">next</a>; <span class="comment">// Chain to next duplicate node, NULL when end of list.</span></div> |
| <div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1DuplicateNode.html#ac7abbf3c029016c52411a3c4adc284bd"> 300</a></span>  <a class="code" href="unionimpala_1_1HashTable_1_1HtData.html">HtData</a> <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html#ac7abbf3c029016c52411a3c4adc284bd">htdata</a>;</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="structimpala_1_1HashTable_1_1Bucket.html"> 303</a></span>  <span class="keyword">struct </span><a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a> {</div> |
| <div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#a759811568856b65f3f7995ec9586b4b4"> 305</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#a759811568856b65f3f7995ec9586b4b4">filled</a>;</div> |
| <div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div> |
| <div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#a5d5ccf6675881442370ca9485cc13a37"> 311</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#a5d5ccf6675881442370ca9485cc13a37">matched</a>;</div> |
| <div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div> |
| <div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#af38386ab7a6b3c03823ee9163e14aa57"> 315</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#af38386ab7a6b3c03823ee9163e14aa57">hasDuplicates</a>;</div> |
| <div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div> |
| <div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#a651a400ca63963e409447f5214c554b6"> 319</a></span>  uint32_t <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#a651a400ca63963e409447f5214c554b6">hash</a>;</div> |
| <div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div> |
| <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">union </span>{</div> |
| <div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#a28c4ed7933d299131d303592d92a7d7e"> 323</a></span>  <a class="code" href="unionimpala_1_1HashTable_1_1HtData.html">HtData</a> <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#a28c4ed7933d299131d303592d92a7d7e">htdata</a>;</div> |
| <div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="structimpala_1_1HashTable_1_1Bucket.html#a454ac703d86426476a735f72ab036d09"> 324</a></span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#a454ac703d86426476a735f72ab036d09">duplicates</a>;</div> |
| <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  } <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html#aef6be21fddf0a939b50561f53398fe09">bucketData</a>;</div> |
| <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  };</div> |
| <div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div> |
| <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a>;</div> |
| <div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div> |
| <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classimpala_1_1HashTable.html#af1cccf76b721c82e567a687b5660613d">HashTable</a>(<a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* state, <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">BufferedBlockMgr::Client</a>* client,</div> |
| <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordtype">int</span> num_build_tuples, <a class="code" href="classimpala_1_1BufferedTupleStream.html">BufferedTupleStream</a>* tuple_stream,</div> |
| <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  int64_t max_num_buckets, int64_t initial_num_buckets = 1024);</div> |
| <div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div> |
| <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classimpala_1_1HashTable.html#af1cccf76b721c82e567a687b5660613d">HashTable</a>(<a class="code" href="classimpala_1_1MemPool.html">MemPool</a>* <a class="code" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, <span class="keywordtype">bool</span> quadratic_probing, <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">num_buckets</a>);</div> |
| <div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div> |
| <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#a25f62c459962b594afd0922f71a50433">Init</a>();</div> |
| <div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div> |
| <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable.html#a849d5e05fa77c04ec11efc6fcf266284">Close</a>();</div> |
| <div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div> |
| <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a60e5c8ae0744eb588bfbb8ae98bbeaf0">Insert</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx,</div> |
| <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">const</span> <a class="code" href="structimpala_1_1BufferedTupleStream_1_1RowIdx.html">BufferedTupleStream::RowIdx</a>& <a class="code" href="namespacegen__ir__descriptions.html#a0d6572990c8dd576a55a21ff11d6deb7">idx</a>, <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* row, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div> |
| <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">bool</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a60e5c8ae0744eb588bfbb8ae98bbeaf0">Insert</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx, <a class="code" href="classimpala_1_1Tuple.html">Tuple</a>* tuple, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div> |
| <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#ac128e2d41168cc9e08b40c34e1a29bc3">Find</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div> |
| <div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ae7006f3aff0395a0251fbb2765634b96"> 380</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#ae7006f3aff0395a0251fbb2765634b96">size</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2">num_filled_buckets_</a> - <a class="code" href="classimpala_1_1HashTable.html#a92d8c35c802147adf40685e7c1bdcca7">num_buckets_with_duplicates_</a> + <a class="code" href="classimpala_1_1HashTable.html#afad2ad0b627b41b7fe072598f762c0ae">num_duplicate_nodes_</a>;</div> |
| <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div> |
| <div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div> |
| <div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a4a5e511b2e7945673ce5a0bc6319b55f"> 385</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a4a5e511b2e7945673ce5a0bc6319b55f">EmptyBuckets</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b">num_buckets_</a> - <a class="code" href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2">num_filled_buckets_</a>; }</div> |
| <div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div> |
| <div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac"> 388</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">num_buckets</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b">num_buckets_</a>; }</div> |
| <div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div> |
| <div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a463369a1c40b9254b0805264077b3d8a"> 391</a></span>  <span class="keywordtype">double</span> <a class="code" href="classimpala_1_1HashTable.html#a463369a1c40b9254b0805264077b3d8a">load_factor</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(<a class="code" href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2">num_filled_buckets_</a>) / <a class="code" href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b">num_buckets_</a>;</div> |
| <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div> |
| <div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div> |
| <div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a5cc6716b7f775323d6c6f32cacbb23b5"> 398</a></span>  <span class="keyword">static</span> int64_t <a class="code" href="classimpala_1_1HashTable.html#a5cc6716b7f775323d6c6f32cacbb23b5">EstimateNumBuckets</a>(int64_t num_rows) {</div> |
| <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1BitUtil.html#aeeee1ea0cce21a36518083463e36606c">BitUtil::NextPowerOfTwo</a>(3 * num_rows / 2);</div> |
| <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div> |
| <div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ab4f7267cccc84203f4891ed1e574b644"> 402</a></span>  <span class="keyword">static</span> int64_t <a class="code" href="classimpala_1_1HashTable.html#ab4f7267cccc84203f4891ed1e574b644">EstimateSize</a>(int64_t num_rows) {</div> |
| <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">num_buckets</a> = <a class="code" href="classimpala_1_1HashTable.html#a5cc6716b7f775323d6c6f32cacbb23b5">EstimateNumBuckets</a>(num_rows);</div> |
| <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">return</span> num_buckets * <span class="keyword">sizeof</span>(<a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a>);</div> |
| <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div> |
| <div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div> |
| <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#ab01f3fe1ea91d152a0ff15540e4fc6f6">CurrentMemSize</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div> |
| <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#a008c8765a5a4c57a17abf299882d79c2">CheckAndResize</a>(<a class="code" href="classuint64__t.html">uint64_t</a> buckets_to_fill, <a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx);</div> |
| <div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div> |
| <div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a9ead10df58713f8150ea8c2330820506"> 419</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a9ead10df58713f8150ea8c2330820506">byte_size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#af7b361bdfb31e9438075ce2b67fd91ba">total_data_page_size_</a>; }</div> |
| <div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div> |
| <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a> <a class="code" href="classimpala_1_1HashTable.html#a98f48e7cfbdb196b9a9e9413f6c7fcff">Begin</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx);</div> |
| <div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div> |
| <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="code" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a> <a class="code" href="classimpala_1_1HashTable.html#ac03658dce51b9f2582daebec0646e80a">FirstUnmatched</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ctx);</div> |
| <div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div> |
| <div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#aab2de3f4ada5cdf02366f71e763c967d"> 431</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#aab2de3f4ada5cdf02366f71e763c967d">HasMatches</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#a63154f1e57a11b4d9362943bae38ef5a">has_matches_</a>; }</div> |
| <div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div> |
| <div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ac62ebb8f6c388dff042794e69de596a9"> 434</a></span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html">Iterator</a> <a class="code" href="classimpala_1_1HashTable.html#ac62ebb8f6c388dff042794e69de596a9">End</a>() { <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a>(); }</div> |
| <div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div> |
| <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  std::string <a class="code" href="classimpala_1_1HashTable.html#ae83037529a3f307470860bbeb3e71024">DebugString</a>(<span class="keywordtype">bool</span> skip_empty, <span class="keywordtype">bool</span> show_match,</div> |
| <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">const</span> <a class="code" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a>* build_desc);</div> |
| <div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div> |
| <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable.html#a47c85016bff3fd0e9092b378993b4b15">DebugStringTuple</a>(std::stringstream& ss, HtData& htdata, <span class="keyword">const</span> <a class="code" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a>* desc);</div> |
| <div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div> |
| <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  std::string <a class="code" href="classimpala_1_1HashTable.html#a44aeea6af10973c12e6801dc409d7847">PrintStats</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div> |
| <div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html"> 450</a></span>  <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable_1_1Iterator.html">Iterator</a> {</div> |
| <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a4ae05474c3eb4e4c308e20db50836071"> 453</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> int64_t <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4ae05474c3eb4e4c308e20db50836071">BUCKET_NOT_FOUND</a> = -1;</div> |
| <div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div> |
| <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div> |
| <div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a340dbe5bd25059a7ae93ee51a09069af"> 457</a></span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a340dbe5bd25059a7ae93ee51a09069af">Iterator</a>() : <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4247ec5fb9eed4bbeb44d616a5160073">table_</a>(NULL), <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a7461da6e3c7cc7f04407e89a60a8aabd">row_</a>(NULL), <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4">bucket_idx_</a>(<a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4ae05474c3eb4e4c308e20db50836071">BUCKET_NOT_FOUND</a>), <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a34e6e9efbd7f665c6a870a11938ff031">node_</a>(NULL) { }</div> |
| <div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div> |
| <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordtype">void</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a09b460586ab67d86997ffb537f588cc9">Next</a>();</div> |
| <div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div> |
| <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">void</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a5b53afbdd6e0f077909b850ae1acb9d0">NextDuplicate</a>();</div> |
| <div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div> |
| <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#aad37490de39af6da7eec0a8f89cbb3c4">NextUnmatched</a>();</div> |
| <div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div> |
| <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a9ad9ccfb9528dc9ef7daa26125ec0bf4">GetRow</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classimpala_1_1Tuple.html">Tuple</a>* <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a0116ff819c2e1f30e3c572f4295ac127">GetTuple</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div> |
| <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a298163e8c4896999e93d089f7184ce48">SetMatched</a>();</div> |
| <div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div> |
| <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a847ac66b73ae38d6b0df4902cdb4257c">IsMatched</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div> |
| <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#adf4533910604ee31e8c1eb8fb9fc90c2">SetAtEnd</a>();</div> |
| <div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div> |
| <div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#aea6a675fd49a49907fe7734b94e15a61"> 492</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#aea6a675fd49a49907fe7734b94e15a61">AtEnd</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4">bucket_idx_</a> == <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4ae05474c3eb4e4c308e20db50836071">BUCKET_NOT_FOUND</a>; }</div> |
| <div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div> |
| <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a574ea806a7ec4e2f0fa54ed7da67b628"> 495</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable.html">HashTable</a>;</div> |
| <div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div> |
| <div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a0f3095e5e49d4b20ad21f7e02b1bda20"> 497</a></span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a0f3095e5e49d4b20ad21f7e02b1bda20">Iterator</a>(<a class="code" href="classimpala_1_1HashTable.html">HashTable</a>* table, <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* row, <span class="keywordtype">int</span> bucket_idx, <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* node,</div> |
| <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>)</div> |
| <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  : <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4247ec5fb9eed4bbeb44d616a5160073">table_</a>(table),</div> |
| <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a7461da6e3c7cc7f04407e89a60a8aabd">row_</a>(row),</div> |
| <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4">bucket_idx_</a>(bucket_idx),</div> |
| <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a34e6e9efbd7f665c6a870a11938ff031">node_</a>(node) {</div> |
| <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div> |
| <div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div> |
| <div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a4247ec5fb9eed4bbeb44d616a5160073"> 505</a></span>  <a class="code" href="classimpala_1_1HashTable.html">HashTable</a>* <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a4247ec5fb9eed4bbeb44d616a5160073">table_</a>;</div> |
| <div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a7461da6e3c7cc7f04407e89a60a8aabd"> 506</a></span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a7461da6e3c7cc7f04407e89a60a8aabd">row_</a>;</div> |
| <div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div> |
| <div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4"> 510</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4">bucket_idx_</a>;</div> |
| <div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div> |
| <div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable_1_1Iterator.html#a34e6e9efbd7f665c6a870a11938ff031"> 513</a></span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="classimpala_1_1HashTable_1_1Iterator.html#a34e6e9efbd7f665c6a870a11938ff031">node_</a>;</div> |
| <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  };</div> |
| <div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div> |
| <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394"> 517</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTable_1_1Iterator.html">Iterator</a>;</div> |
| <div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a96d0236d3388688bbf272e9516dc8fda"> 518</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classimpala_1_1HashTableTest.html">HashTableTest</a>;</div> |
| <div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div> |
| <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">//</span></div> |
| <div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment"></span> int64_t <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a0c1d67cc8cebd5cd2fb855fa5d0a4a57">Probe</a>(<a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a>* buckets, int64_t <a class="code" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">num_buckets</a>,</div> |
| <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>, <span class="keywordtype">bool</span>* found);</div> |
| <div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div> |
| <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="unionimpala_1_1HashTable_1_1HtData.html">HtData</a>* <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a6695a051bc94f74a1d277254d6523f29">InsertInternal</a>(<a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div> |
| <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1HashTable.html#a67951a6c7296d85edb7a08b5fe143352">NextFilledBucket</a>(int64_t* bucket_idx, <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>** node);</div> |
| <div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div> |
| <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#aeb7b0e3316dd455066ee922464ee695b">ResizeBuckets</a>(int64_t <a class="code" href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">num_buckets</a>, <a class="code" href="classimpala_1_1HashTableCtx.html">HashTableCtx</a>* ht_ctx);</div> |
| <div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div> |
| <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a9298e0fdd6056ad976cc5d8f38c24e81">AppendNextNode</a>(<a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a>* bucket);</div> |
| <div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div> |
| <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a4664c5c1d82ab068f7005a2c830910e4">InsertDuplicateNode</a>(int64_t bucket_idx);</div> |
| <div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div> |
| <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordtype">void</span> <a class="code" href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a> <a class="code" href="classimpala_1_1HashTable.html#a4222254505940c65b0b817c4836a1021">PrepareBucketForInsert</a>(int64_t bucket_idx, uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>);</div> |
| <div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div> |
| <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTable.html#aba3b5b944609bf0d2debbfaffb8ed767">GetRow</a>(<a class="code" href="unionimpala_1_1HashTable_1_1HtData.html">HtData</a>& htdata, <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* row) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div> |
| <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* <a class="code" href="classimpala_1_1HashTable.html#aba3b5b944609bf0d2debbfaffb8ed767">GetRow</a>(<a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a>* bucket, <a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* row) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div> |
| <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#aa7f625824191cf1eb85af0d4c79cd255">GrowNodeArray</a>();</div> |
| <div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div> |
| <div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a16ecff93c19dfa4090ec393d34385f95"> 583</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classimpala_1_1HashTable.html#a16ecff93c19dfa4090ec393d34385f95">MAX_FILL_FACTOR</a>;</div> |
| <div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div> |
| <div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ac4f83b6445d06ccc7b9c25a67c900cf9"> 585</a></span>  <a class="code" href="classimpala_1_1RuntimeState.html">RuntimeState</a>* <a class="code" href="classimpala_1_1HashTable.html#ac4f83b6445d06ccc7b9c25a67c900cf9">state_</a>;</div> |
| <div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div> |
| <div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ab9cd09fae6e57ed0fb9fedade5f7293a"> 588</a></span>  <a class="code" href="structimpala_1_1BufferedBlockMgr_1_1Client.html">BufferedBlockMgr::Client</a>* <a class="code" href="classimpala_1_1HashTable.html#ab9cd09fae6e57ed0fb9fedade5f7293a">block_mgr_client_</a>;</div> |
| <div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div> |
| <div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a53e8f6764f9f739c3a2f478c5c5e7d4c"> 593</a></span>  <a class="code" href="classimpala_1_1BufferedTupleStream.html">BufferedTupleStream</a>* <a class="code" href="classimpala_1_1HashTable.html#a53e8f6764f9f739c3a2f478c5c5e7d4c">tuple_stream_</a>;</div> |
| <div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div> |
| <div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a0f4c922a525b11eaf26d82a808f6c233"> 596</a></span>  <a class="code" href="classimpala_1_1MemPool.html">MemPool</a>* <a class="code" href="classimpala_1_1HashTable.html#a0f4c922a525b11eaf26d82a808f6c233">data_page_pool_</a>;</div> |
| <div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div> |
| <div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#aea176ae316a2d2e6a6ec1210c0ba7373"> 602</a></span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#aea176ae316a2d2e6a6ec1210c0ba7373">stores_tuples_</a>;</div> |
| <div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div> |
| <div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a1ad3c64c070af80571ca8c79f2ed9f9a"> 605</a></span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#a1ad3c64c070af80571ca8c79f2ed9f9a">quadratic_probing_</a>;</div> |
| <div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div> |
| <div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a554127ece2fc15868faacb0892fb8360"> 608</a></span>  std::vector<BufferedBlockMgr::Block*> <a class="code" href="classimpala_1_1HashTable.html#a554127ece2fc15868faacb0892fb8360">data_pages_</a>;</div> |
| <div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div> |
| <div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#af7b361bdfb31e9438075ce2b67fd91ba"> 611</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#af7b361bdfb31e9438075ce2b67fd91ba">total_data_page_size_</a>;</div> |
| <div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div> |
| <div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ac7049a35b4d1716e54bb46d9c3ed890d"> 614</a></span>  <a class="code" href="structimpala_1_1HashTable_1_1DuplicateNode.html">DuplicateNode</a>* <a class="code" href="classimpala_1_1HashTable.html#ac7049a35b4d1716e54bb46d9c3ed890d">next_node_</a>;</div> |
| <div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div> |
| <div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ae1cda955b2701205694fdf8407f90138"> 617</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTable.html#ae1cda955b2701205694fdf8407f90138">node_remaining_current_page_</a>;</div> |
| <div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div> |
| <div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#afad2ad0b627b41b7fe072598f762c0ae"> 620</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#afad2ad0b627b41b7fe072598f762c0ae">num_duplicate_nodes_</a>;</div> |
| <div class="line"><a name="l00621"></a><span class="lineno"> 621</span> </div> |
| <div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a41ec948e01fcfa27711c3382dd5d1ffd"> 622</a></span>  <span class="keyword">const</span> int64_t <a class="code" href="classimpala_1_1HashTable.html#a41ec948e01fcfa27711c3382dd5d1ffd">max_num_buckets_</a>;</div> |
| <div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div> |
| <div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ac461c88f6a7b8f9b0fdfc1cd42344837"> 626</a></span>  <a class="code" href="structimpala_1_1HashTable_1_1Bucket.html">Bucket</a>* <a class="code" href="classimpala_1_1HashTable.html#ac461c88f6a7b8f9b0fdfc1cd42344837">buckets_</a>;</div> |
| <div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div> |
| <div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b"> 629</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b">num_buckets_</a>;</div> |
| <div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div> |
| <div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2"> 632</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2">num_filled_buckets_</a>;</div> |
| <div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div> |
| <div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a92d8c35c802147adf40685e7c1bdcca7"> 636</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a92d8c35c802147adf40685e7c1bdcca7">num_buckets_with_duplicates_</a>;</div> |
| <div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div> |
| <div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a6d7e2d70c48ad221333f5b939745134b"> 640</a></span>  <span class="keywordtype">int</span> <a class="code" href="classimpala_1_1HashTable.html#a6d7e2d70c48ad221333f5b939745134b">num_build_tuples_</a>;</div> |
| <div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div> |
| <div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a63154f1e57a11b4d9362943bae38ef5a"> 645</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1HashTable.html#a63154f1e57a11b4d9362943bae38ef5a">has_matches_</a>;</div> |
| <div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div> |
| <div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ad5cafb9172df65844a941a43a0e80b3e"> 650</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#ad5cafb9172df65844a941a43a0e80b3e">num_probes_</a>;</div> |
| <div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div> |
| <div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a3f5da1f068a86b1cae6f207dfce96710"> 653</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a3f5da1f068a86b1cae6f207dfce96710">num_failed_probes_</a>;</div> |
| <div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div> |
| <div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#a8cc7932cc1427f6279ced8e9b915f00e"> 657</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#a8cc7932cc1427f6279ced8e9b915f00e">travel_length_</a>;</div> |
| <div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div> |
| <div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#ae21db224cca645cb112fc27d323e9048"> 661</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#ae21db224cca645cb112fc27d323e9048">num_hash_collisions_</a>;</div> |
| <div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div> |
| <div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="classimpala_1_1HashTable.html#afea6437f65ec39ca574fe85afe0992e7"> 664</a></span>  int64_t <a class="code" href="classimpala_1_1HashTable.html#afea6437f65ec39ca574fe85afe0992e7">num_resizes_</a>;</div> |
| <div class="line"><a name="l00665"></a><span class="lineno"> 665</span> };</div> |
| <div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div> |
| <div class="line"><a name="l00667"></a><span class="lineno"> 667</span> }</div> |
| <div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div> |
| <div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor">#endif</span></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aadd04c3eb11049a06d356844ae479ee4"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aadd04c3eb11049a06d356844ae479ee4">impala::HashTableCtx::set_level</a></div><div class="ttdeci">void set_level(int level)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00329">hash-table.inline.h:329</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a3c1ed6ef5aa26ad39861dcc50eb013e8"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a3c1ed6ef5aa26ad39861dcc50eb013e8">impala::HashTableCtx::Hash</a></div><div class="ttdeci">uint32_t Hash(const void *input, int len, int32_t hash)</div><div class="ttdoc">Wrapper function for calling correct HashUtil function in non-codegen'd case. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00192">hash-table.h:192</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html">impala::HashTable::Iterator</a></div><div class="ttdoc">stl-like iterator interface. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00450">hash-table.h:450</a></div></div> |
| <div class="ttc" id="impala-ir_8h_html_aa2f1cf984a158c22088f777a379be0f2"><div class="ttname"><a href="impala-ir_8h.html#aa2f1cf984a158c22088f777a379be0f2">IR_NO_INLINE</a></div><div class="ttdeci">#define IR_NO_INLINE</div><div class="ttdef"><b>Definition:</b> <a href="impala-ir_8h_source.html#l00030">impala-ir.h:30</a></div></div> |
| <div class="ttc" id="classimpala_1_1BufferedTupleStream_html"><div class="ttname"><a href="classimpala_1_1BufferedTupleStream.html">impala::BufferedTupleStream</a></div><div class="ttdoc">The underlying memory management is done by the BufferedBlockMgr. </div><div class="ttdef"><b>Definition:</b> <a href="buffered-tuple-stream_8h_source.html#l00109">buffered-tuple-stream.h:109</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac4f83b6445d06ccc7b9c25a67c900cf9"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac4f83b6445d06ccc7b9c25a67c900cf9">impala::HashTable::state_</a></div><div class="ttdeci">RuntimeState * state_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00585">hash-table.h:585</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_aea6a675fd49a49907fe7734b94e15a61"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#aea6a675fd49a49907fe7734b94e15a61">impala::HashTable::Iterator::AtEnd</a></div><div class="ttdeci">bool AtEnd() const </div><div class="ttdoc">Returns true if this iterator is at the end, i.e. GetRow() cannot be called. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00492">hash-table.h:492</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a44aeea6af10973c12e6801dc409d7847"><div class="ttname"><a href="classimpala_1_1HashTable.html#a44aeea6af10973c12e6801dc409d7847">impala::HashTable::PrintStats</a></div><div class="ttdeci">std::string PrintStats() const </div><div class="ttdoc">Update and print some statistics that can be used for performance debugging. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00424">hash-table.cc:424</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac62ebb8f6c388dff042794e69de596a9"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac62ebb8f6c388dff042794e69de596a9">impala::HashTable::End</a></div><div class="ttdeci">Iterator End()</div><div class="ttdoc">Return end marker. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00434">hash-table.h:434</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a889c176bf31f6a36c7ec5e54f18b7c14"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a889c176bf31f6a36c7ec5e54f18b7c14">impala::HashTableCtx::Equals</a></div><div class="ttdeci">bool IR_NO_INLINE Equals(TupleRow *build_row)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00171">hash-table.cc:171</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aa7f625824191cf1eb85af0d4c79cd255"><div class="ttname"><a href="classimpala_1_1HashTable.html#aa7f625824191cf1eb85af0d4c79cd255">impala::HashTable::GrowNodeArray</a></div><div class="ttdeci">bool GrowNodeArray()</div><div class="ttdoc">Grow the node array. Returns false on OOM. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00345">hash-table.cc:345</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a477c70070cfeb4bae1e4799a95c754ad"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a477c70070cfeb4bae1e4799a95c754ad">impala::HashTableCtx::results_buffer_size</a></div><div class="ttdeci">int results_buffer_size() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00151">hash-table.h:151</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a0116ff819c2e1f30e3c572f4295ac127"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a0116ff819c2e1f30e3c572f4295ac127">impala::HashTable::Iterator::GetTuple</a></div><div class="ttdeci">Tuple * GetTuple() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00243">hash-table.inline.h:243</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a5cc6716b7f775323d6c6f32cacbb23b5"><div class="ttname"><a href="classimpala_1_1HashTable.html#a5cc6716b7f775323d6c6f32cacbb23b5">impala::HashTable::EstimateNumBuckets</a></div><div class="ttdeci">static int64_t EstimateNumBuckets(int64_t num_rows)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00398">hash-table.h:398</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a8cc7932cc1427f6279ced8e9b915f00e"><div class="ttname"><a href="classimpala_1_1HashTable.html#a8cc7932cc1427f6279ced8e9b915f00e">impala::HashTable::travel_length_</a></div><div class="ttdeci">int64_t travel_length_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00657">hash-table.h:657</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a47c85016bff3fd0e9092b378993b4b15"><div class="ttname"><a href="classimpala_1_1HashTable.html#a47c85016bff3fd0e9092b378993b4b15">impala::HashTable::DebugStringTuple</a></div><div class="ttdeci">void DebugStringTuple(std::stringstream &ss, HtData &htdata, const RowDescriptor *desc)</div><div class="ttdoc">Print the content of a bucket or node. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00373">hash-table.cc:373</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a5b44463c0e80b52ee43c1e64335fff3b"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a5b44463c0e80b52ee43c1e64335fff3b">impala::HashTableCtx::EvalRow</a></div><div class="ttdeci">bool EvalRow(TupleRow *row, const std::vector< ExprContext * > &ctxs)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00124">hash-table.cc:124</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_adf4533910604ee31e8c1eb8fb9fc90c2"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#adf4533910604ee31e8c1eb8fb9fc90c2">impala::HashTable::Iterator::SetAtEnd</a></div><div class="ttdeci">void SetAtEnd()</div><div class="ttdoc">Resets everything but the pointer to the hash table. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00278">hash-table.inline.h:278</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_aad37490de39af6da7eec0a8f89cbb3c4"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#aad37490de39af6da7eec0a8f89cbb3c4">impala::HashTable::Iterator::NextUnmatched</a></div><div class="ttdeci">void NextUnmatched()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00302">hash-table.inline.h:302</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a7461da6e3c7cc7f04407e89a60a8aabd"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a7461da6e3c7cc7f04407e89a60a8aabd">impala::HashTable::Iterator::row_</a></div><div class="ttdeci">TupleRow * row_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00506">hash-table.h:506</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a9ead10df58713f8150ea8c2330820506"><div class="ttname"><a href="classimpala_1_1HashTable.html#a9ead10df58713f8150ea8c2330820506">impala::HashTable::byte_size</a></div><div class="ttdeci">int64_t byte_size() const </div><div class="ttdoc">Returns the number of bytes allocated to the hash table. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00419">hash-table.h:419</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a340dbe5bd25059a7ae93ee51a09069af"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a340dbe5bd25059a7ae93ee51a09069af">impala::HashTable::Iterator::Iterator</a></div><div class="ttdeci">Iterator()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00457">hash-table.h:457</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a1e33a5d90f3c24589f00e2804e1d2cee"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a1e33a5d90f3c24589f00e2804e1d2cee">impala::HashTableCtx::CodegenHashCurrentRow</a></div><div class="ttdeci">llvm::Function * CodegenHashCurrentRow(RuntimeState *state, bool use_murmur)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00647">hash-table.cc:647</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a4995d1cdf709230f66d81be1d612d9ad"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a4995d1cdf709230f66d81be1d612d9ad">impala::HashTableCtx::expr_values_buffer_</a></div><div class="ttdeci">uint8_t * expr_values_buffer_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00259">hash-table.h:259</a></div></div> |
| <div class="ttc" id="classimpala_1_1Tuple_html"><div class="ttname"><a href="classimpala_1_1Tuple.html">impala::Tuple</a></div><div class="ttdoc">A tuple with 0 materialised slots is represented as NULL. </div><div class="ttdef"><b>Definition:</b> <a href="tuple_8h_source.html#l00048">tuple.h:48</a></div></div> |
| <div class="ttc" id="mem-tracker_8h_html"><div class="ttname"><a href="mem-tracker_8h.html">mem-tracker.h</a></div></div> |
| <div class="ttc" id="namespaceimpala_html_a50b59c9628eedf49aa82643ce601967d"><div class="ttname"><a href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">impala::hash</a></div><div class="ttdeci">const StringSearch UrlParser::hash_search & hash</div><div class="ttdef"><b>Definition:</b> <a href="url-parser_8cc_source.html#l00041">url-parser.cc:41</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ab9cd09fae6e57ed0fb9fedade5f7293a"><div class="ttname"><a href="classimpala_1_1HashTable.html#ab9cd09fae6e57ed0fb9fedade5f7293a">impala::HashTable::block_mgr_client_</a></div><div class="ttdeci">BufferedBlockMgr::Client * block_mgr_client_</div><div class="ttdoc">Client to allocate data pages with. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00588">hash-table.h:588</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1DuplicateNode_html_a3d4f49a62285fc21dd3caec9aa7fe820"><div class="ttname"><a href="structimpala_1_1HashTable_1_1DuplicateNode.html#a3d4f49a62285fc21dd3caec9aa7fe820">impala::HashTable::DuplicateNode::next</a></div><div class="ttdeci">DuplicateNode * next</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00299">hash-table.h:299</a></div></div> |
| <div class="ttc" id="buffered-tuple-stream_8h_html"><div class="ttname"><a href="buffered-tuple-stream_8h.html">buffered-tuple-stream.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a16ecff93c19dfa4090ec393d34385f95"><div class="ttname"><a href="classimpala_1_1HashTable.html#a16ecff93c19dfa4090ec393d34385f95">impala::HashTable::MAX_FILL_FACTOR</a></div><div class="ttdeci">static const double MAX_FILL_FACTOR</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00583">hash-table.h:583</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a9298e0fdd6056ad976cc5d8f38c24e81"><div class="ttname"><a href="classimpala_1_1HashTable.html#a9298e0fdd6056ad976cc5d8f38c24e81">impala::HashTable::AppendNextNode</a></div><div class="ttdeci">DuplicateNode *IR_ALWAYS_INLINE AppendNextNode(Bucket *bucket)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00175">hash-table.inline.h:175</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a98106277a1116a3285d350067ee66d88"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a98106277a1116a3285d350067ee66d88">impala::HashTableCtx::build_expr_ctxs_</a></div><div class="ttdeci">const std::vector< ExprContext * > & build_expr_ctxs_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00227">hash-table.h:227</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a6695a051bc94f74a1d277254d6523f29"><div class="ttname"><a href="classimpala_1_1HashTable.html#a6695a051bc94f74a1d277254d6523f29">impala::HashTable::InsertInternal</a></div><div class="ttdeci">HtData *IR_ALWAYS_INLINE InsertInternal(HashTableCtx *ht_ctx, uint32_t hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00077">hash-table.inline.h:77</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_a454ac703d86426476a735f72ab036d09"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#a454ac703d86426476a735f72ab036d09">impala::HashTable::Bucket::duplicates</a></div><div class="ttdeci">DuplicateNode * duplicates</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00324">hash-table.h:324</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a4ae05474c3eb4e4c308e20db50836071"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a4ae05474c3eb4e4c308e20db50836071">impala::HashTable::Iterator::BUCKET_NOT_FOUND</a></div><div class="ttdeci">static const int64_t BUCKET_NOT_FOUND</div><div class="ttdoc">Bucket index value when probe is not successful. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00453">hash-table.h:453</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a25f62c459962b594afd0922f71a50433"><div class="ttname"><a href="classimpala_1_1HashTable.html#a25f62c459962b594afd0922f71a50433">impala::HashTable::Init</a></div><div class="ttdeci">bool Init()</div><div class="ttdoc">Allocates the initial bucket structure. Returns false if OOM. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00245">hash-table.cc:245</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_ac010384a3026499a2ab5b465258d41fa"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#ac010384a3026499a2ab5b465258d41fa">impala::HashTableCtx::last_expr_value</a></div><div class="ttdeci">void * last_expr_value(int expr_idx) const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00134">hash-table.h:134</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a98f48e7cfbdb196b9a9e9413f6c7fcff"><div class="ttname"><a href="classimpala_1_1HashTable.html#a98f48e7cfbdb196b9a9e9413f6c7fcff">impala::HashTable::Begin</a></div><div class="ttdeci">Iterator Begin(HashTableCtx *ht_ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00128">hash-table.inline.h:128</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a44e0bff0aa2e995e08a52240a587d0fa"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a44e0bff0aa2e995e08a52240a587d0fa">impala::HashTableCtx::LLVM_CLASS_NAME</a></div><div class="ttdeci">static const char * LLVM_CLASS_NAME</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00169">hash-table.h:169</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_aef6be21fddf0a939b50561f53398fe09"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#aef6be21fddf0a939b50561f53398fe09">impala::HashTable::Bucket::bucketData</a></div><div class="ttdeci">union impala::HashTable::Bucket::@6 bucketData</div><div class="ttdoc">Either the data for this bucket or the linked list of duplicates. </div></div> |
| <div class="ttc" id="structimpala_1_1BufferedBlockMgr_1_1Client_html"><div class="ttname"><a href="structimpala_1_1BufferedBlockMgr_1_1Client.html">impala::BufferedBlockMgr::Client</a></div><div class="ttdef"><b>Definition:</b> <a href="buffered-block-mgr_8cc_source.html#l00045">buffered-block-mgr.cc:45</a></div></div> |
| <div class="ttc" id="classimpala_1_1RowDescriptor_html"><div class="ttname"><a href="classimpala_1_1RowDescriptor.html">impala::RowDescriptor</a></div><div class="ttdef"><b>Definition:</b> <a href="descriptors_8h_source.html#l00373">descriptors.h:373</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a008c8765a5a4c57a17abf299882d79c2"><div class="ttname"><a href="classimpala_1_1HashTable.html#a008c8765a5a4c57a17abf299882d79c2">impala::HashTable::CheckAndResize</a></div><div class="ttdeci">bool CheckAndResize(uint64_t buckets_to_fill, HashTableCtx *ht_ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00282">hash-table.cc:282</a></div></div> |
| <div class="ttc" id="buffered-tuple-stream_8inline_8h_html"><div class="ttname"><a href="buffered-tuple-stream_8inline_8h.html">buffered-tuple-stream.inline.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a4a5e511b2e7945673ce5a0bc6319b55f"><div class="ttname"><a href="classimpala_1_1HashTable.html#a4a5e511b2e7945673ce5a0bc6319b55f">impala::HashTable::EmptyBuckets</a></div><div class="ttdeci">int64_t EmptyBuckets() const </div><div class="ttdoc">Returns the number of empty buckets. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00385">hash-table.h:385</a></div></div> |
| <div class="ttc" id="hash-util_8h_html"><div class="ttname"><a href="hash-util_8h.html">hash-util.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a554127ece2fc15868faacb0892fb8360"><div class="ttname"><a href="classimpala_1_1HashTable.html#a554127ece2fc15868faacb0892fb8360">impala::HashTable::data_pages_</a></div><div class="ttdeci">std::vector< BufferedBlockMgr::Block * > data_pages_</div><div class="ttdoc">Data pages for all nodes. These are always pinned. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00608">hash-table.h:608</a></div></div> |
| <div class="ttc" id="unionimpala_1_1HashTable_1_1HtData_html"><div class="ttname"><a href="unionimpala_1_1HashTable_1_1HtData.html">impala::HashTable::HtData</a></div><div class="ttdoc">Either the row in the tuple stream or a pointer to the single tuple of this row. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00285">hash-table.h:285</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html">impala::HashTable::Bucket</a></div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00303">hash-table.h:303</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aab2de3f4ada5cdf02366f71e763c967d"><div class="ttname"><a href="classimpala_1_1HashTable.html#aab2de3f4ada5cdf02366f71e763c967d">impala::HashTable::HasMatches</a></div><div class="ttdeci">bool HasMatches() const </div><div class="ttdoc">Return true if there was a least one match. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00431">hash-table.h:431</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a1ad3c64c070af80571ca8c79f2ed9f9a"><div class="ttname"><a href="classimpala_1_1HashTable.html#a1ad3c64c070af80571ca8c79f2ed9f9a">impala::HashTable::quadratic_probing_</a></div><div class="ttdeci">const bool quadratic_probing_</div><div class="ttdoc">Quadratic probing enabled (as opposed to linear). </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00605">hash-table.h:605</a></div></div> |
| <div class="ttc" id="unionimpala_1_1HashTable_1_1HtData_html_a399c6ee6b802c2d55f4c18fef30d5a43"><div class="ttname"><a href="unionimpala_1_1HashTable_1_1HtData.html#a399c6ee6b802c2d55f4c18fef30d5a43">impala::HashTable::HtData::tuple</a></div><div class="ttdeci">Tuple * tuple</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00287">hash-table.h:287</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a745544cb985f00d23018f23fb5fed789"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a745544cb985f00d23018f23fb5fed789">impala::HashTableCtx::probe_expr_ctxs_</a></div><div class="ttdeci">const std::vector< ExprContext * > & probe_expr_ctxs_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00228">hash-table.h:228</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a5b53afbdd6e0f077909b850ae1acb9d0"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a5b53afbdd6e0f077909b850ae1acb9d0">impala::HashTable::Iterator::NextDuplicate</a></div><div class="ttdeci">void IR_ALWAYS_INLINE NextDuplicate()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00292">hash-table.inline.h:292</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_afad2ad0b627b41b7fe072598f762c0ae"><div class="ttname"><a href="classimpala_1_1HashTable.html#afad2ad0b627b41b7fe072598f762c0ae">impala::HashTable::num_duplicate_nodes_</a></div><div class="ttdeci">int64_t num_duplicate_nodes_</div><div class="ttdoc">Number of duplicate nodes. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00620">hash-table.h:620</a></div></div> |
| <div class="ttc" id="logging_8h_html"><div class="ttname"><a href="logging_8h.html">logging.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1TupleRow_html"><div class="ttname"><a href="classimpala_1_1TupleRow.html">impala::TupleRow</a></div><div class="ttdef"><b>Definition:</b> <a href="tuple-row_8h_source.html#l00028">tuple-row.h:28</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_a5d5ccf6675881442370ca9485cc13a37"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#a5d5ccf6675881442370ca9485cc13a37">impala::HashTable::Bucket::matched</a></div><div class="ttdeci">bool matched</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00311">hash-table.h:311</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1DuplicateNode_html"><div class="ttname"><a href="structimpala_1_1HashTable_1_1DuplicateNode.html">impala::HashTable::DuplicateNode</a></div><div class="ttdoc">Linked list of entries used for duplicates. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00291">hash-table.h:291</a></div></div> |
| <div class="ttc" id="impala-ir_8h_html_af2b653018219cda8c9a2d9efc0ce3f44"><div class="ttname"><a href="impala-ir_8h.html#af2b653018219cda8c9a2d9efc0ce3f44">IR_ALWAYS_INLINE</a></div><div class="ttdeci">#define IR_ALWAYS_INLINE</div><div class="ttdef"><b>Definition:</b> <a href="impala-ir_8h_source.html#l00031">impala-ir.h:31</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aedcb3c980c553224433705601b8b577c"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aedcb3c980c553224433705601b8b577c">impala::HashTableCtx::level_</a></div><div class="ttdeci">int level_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00239">hash-table.h:239</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a4ce8e82c4e985189eed19deb26471cc2"><div class="ttname"><a href="classimpala_1_1HashTable.html#a4ce8e82c4e985189eed19deb26471cc2">impala::HashTable::num_filled_buckets_</a></div><div class="ttdeci">int64_t num_filled_buckets_</div><div class="ttdoc">Number of non-empty buckets. Used to determine when to resize. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00632">hash-table.h:632</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a847ac66b73ae38d6b0df4902cdb4257c"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a847ac66b73ae38d6b0df4902cdb4257c">impala::HashTable::Iterator::IsMatched</a></div><div class="ttdeci">bool IsMatched() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00269">hash-table.inline.h:269</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a3fad4b0eb6d105cfafb07464570e8cd4"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a3fad4b0eb6d105cfafb07464570e8cd4">impala::HashTable::Iterator::bucket_idx_</a></div><div class="ttdeci">int64_t bucket_idx_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00510">hash-table.h:510</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a09e07488bac4c611f09303a6e6d2ba13"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a09e07488bac4c611f09303a6e6d2ba13">impala::HashTableCtx::stores_nulls_</a></div><div class="ttdeci">const bool stores_nulls_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00234">hash-table.h:234</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_a759811568856b65f3f7995ec9586b4b4"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#a759811568856b65f3f7995ec9586b4b4">impala::HashTable::Bucket::filled</a></div><div class="ttdeci">bool filled</div><div class="ttdoc">Whether this bucket contains a vaild entry, or it is empty. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00305">hash-table.h:305</a></div></div> |
| <div class="ttc" id="classimpala_1_1MemPool_html"><div class="ttname"><a href="classimpala_1_1MemPool.html">impala::MemPool</a></div><div class="ttdef"><b>Definition:</b> <a href="mem-pool_8h_source.html#l00077">mem-pool.h:77</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a4247ec5fb9eed4bbeb44d616a5160073"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a4247ec5fb9eed4bbeb44d616a5160073">impala::HashTable::Iterator::table_</a></div><div class="ttdeci">HashTable * table_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00505">hash-table.h:505</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aeb10a9c707ed3773a7acd4a438b3811b"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aeb10a9c707ed3773a7acd4a438b3811b">impala::HashTableCtx::GetHashSeed</a></div><div class="ttdeci">uint32_t GetHashSeed() const </div><div class="ttdoc">Cross-compiled functions to access member variables used in CodegenHashCurrentRow(). </div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a2af21d0c722279bc48addb02dc7d4f9c"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a2af21d0c722279bc48addb02dc7d4f9c">impala::HashTableCtx::expr_values_buffer_offsets_</a></div><div class="ttdeci">std::vector< int > expr_values_buffer_offsets_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00246">hash-table.h:246</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aea176ae316a2d2e6a6ec1210c0ba7373"><div class="ttname"><a href="classimpala_1_1HashTable.html#aea176ae316a2d2e6a6ec1210c0ba7373">impala::HashTable::stores_tuples_</a></div><div class="ttdeci">const bool stores_tuples_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00602">hash-table.h:602</a></div></div> |
| <div class="ttc" id="classimpala_1_1RuntimeState_html"><div class="ttname"><a href="classimpala_1_1RuntimeState.html">impala::RuntimeState</a></div><div class="ttdef"><b>Definition:</b> <a href="runtime-state_8h_source.html#l00069">runtime-state.h:69</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html"><div class="ttname"><a href="classimpala_1_1HashTable.html">impala::HashTable</a></div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00281">hash-table.h:281</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashUtil_html_a90e4737e5bf94d622cbb2fbdac5c6634"><div class="ttname"><a href="classimpala_1_1HashUtil.html#a90e4737e5bf94d622cbb2fbdac5c6634">impala::HashUtil::Hash</a></div><div class="ttdeci">static uint32_t Hash(const void *data, int32_t bytes, uint32_t seed)</div><div class="ttdef"><b>Definition:</b> <a href="hash-util_8h_source.html#l00135">hash-util.h:135</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a1abe9d912251bc4544e59127fcaecbfe"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a1abe9d912251bc4544e59127fcaecbfe">impala::HashTableCtx::var_result_begin_</a></div><div class="ttdeci">int var_result_begin_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00251">hash-table.h:251</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_ac6acde7728919a561fc4c79f75c8ad14"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#ac6acde7728919a561fc4c79f75c8ad14">impala::HashTableCtx::level</a></div><div class="ttdeci">int level() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00124">hash-table.h:124</a></div></div> |
| <div class="ttc" id="expr-benchmark_8cc_html_a3a5de7bd423fbc0afc4cf935c166ca6b"><div class="ttname"><a href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a></div><div class="ttdeci">ObjectPool pool</div><div class="ttdef"><b>Definition:</b> <a href="expr-benchmark_8cc_source.html#l00089">expr-benchmark.cc:89</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aaeabf0274f58b3267bedfdb0bf772c9d"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aaeabf0274f58b3267bedfdb0bf772c9d">impala::HashTableCtx::CodegenEquals</a></div><div class="ttdeci">llvm::Function * CodegenEquals(RuntimeState *state)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00820">hash-table.cc:820</a></div></div> |
| <div class="ttc" id="unionimpala_1_1HashTable_1_1HtData_html_ae540a5f4e0b9f80e3f9057678328e0f7"><div class="ttname"><a href="unionimpala_1_1HashTable_1_1HtData.html#ae540a5f4e0b9f80e3f9057678328e0f7">impala::HashTable::HtData::idx</a></div><div class="ttdeci">BufferedTupleStream::RowIdx idx</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00286">hash-table.h:286</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_a28c4ed7933d299131d303592d92a7d7e"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#a28c4ed7933d299131d303592d92a7d7e">impala::HashTable::Bucket::htdata</a></div><div class="ttdeci">HtData htdata</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00323">hash-table.h:323</a></div></div> |
| <div class="ttc" id="classuint64__t_html"><div class="ttname"><a href="classuint64__t.html">uint64_t</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a09b460586ab67d86997ffb537f588cc9"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a09b460586ab67d86997ffb537f588cc9">impala::HashTable::Iterator::Next</a></div><div class="ttdeci">void IR_ALWAYS_INLINE Next()</div><div class="ttdoc">Iterates to the next element. It should be called only if !AtEnd(). </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00283">hash-table.inline.h:283</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_afea6437f65ec39ca574fe85afe0992e7"><div class="ttname"><a href="classimpala_1_1HashTable.html#afea6437f65ec39ca574fe85afe0992e7">impala::HashTable::num_resizes_</a></div><div class="ttdeci">int64_t num_resizes_</div><div class="ttdoc">How many times this table has resized so far. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00664">hash-table.h:664</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a3801dc80f094f7bc7b57b3a6f1183503"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a3801dc80f094f7bc7b57b3a6f1183503">impala::HashTableCtx::CodegenEvalRow</a></div><div class="ttdeci">llvm::Function * CodegenEvalRow(RuntimeState *state, bool build_row)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00519">hash-table.cc:519</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aeb7b0e3316dd455066ee922464ee695b"><div class="ttname"><a href="classimpala_1_1HashTable.html#aeb7b0e3316dd455066ee922464ee695b">impala::HashTable::ResizeBuckets</a></div><div class="ttdeci">bool ResizeBuckets(int64_t num_buckets, HashTableCtx *ht_ctx)</div><div class="ttdoc">Resize the hash table to 'num_buckets'. Returns false on OOM. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00293">hash-table.cc:293</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ab01f3fe1ea91d152a0ff15540e4fc6f6"><div class="ttname"><a href="classimpala_1_1HashTable.html#ab01f3fe1ea91d152a0ff15540e4fc6f6">impala::HashTable::CurrentMemSize</a></div><div class="ttdeci">int64_t CurrentMemSize() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00278">hash-table.cc:278</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_ad613f1a2e85543f4afacee9f568db70e"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#ad613f1a2e85543f4afacee9f568db70e">impala::HashTableCtx::seed</a></div><div class="ttdeci">uint32_t seed(int level)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00125">hash-table.h:125</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_af38386ab7a6b3c03823ee9163e14aa57"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#af38386ab7a6b3c03823ee9163e14aa57">impala::HashTable::Bucket::hasDuplicates</a></div><div class="ttdeci">bool hasDuplicates</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00315">hash-table.h:315</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aba3b5b944609bf0d2debbfaffb8ed767"><div class="ttname"><a href="classimpala_1_1HashTable.html#aba3b5b944609bf0d2debbfaffb8ed767">impala::HashTable::GetRow</a></div><div class="ttdeci">TupleRow * GetRow(HtData &htdata, TupleRow *row) const </div><div class="ttdoc">Return the TupleRow pointed by 'htdata'. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00210">hash-table.inline.h:210</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ad5cafb9172df65844a941a43a0e80b3e"><div class="ttname"><a href="classimpala_1_1HashTable.html#ad5cafb9172df65844a941a43a0e80b3e">impala::HashTable::num_probes_</a></div><div class="ttdeci">int64_t num_probes_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00650">hash-table.h:650</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a92d8c35c802147adf40685e7c1bdcca7"><div class="ttname"><a href="classimpala_1_1HashTable.html#a92d8c35c802147adf40685e7c1bdcca7">impala::HashTable::num_buckets_with_duplicates_</a></div><div class="ttdeci">int64_t num_buckets_with_duplicates_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00636">hash-table.h:636</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a4664c5c1d82ab068f7005a2c830910e4"><div class="ttname"><a href="classimpala_1_1HashTable.html#a4664c5c1d82ab068f7005a2c830910e4">impala::HashTable::InsertDuplicateNode</a></div><div class="ttdeci">DuplicateNode *IR_ALWAYS_INLINE InsertDuplicateNode(int64_t bucket_idx)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00183">hash-table.inline.h:183</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ae21db224cca645cb112fc27d323e9048"><div class="ttname"><a href="classimpala_1_1HashTable.html#ae21db224cca645cb112fc27d323e9048">impala::HashTable::num_hash_collisions_</a></div><div class="ttdeci">int64_t num_hash_collisions_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00661">hash-table.h:661</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a4222254505940c65b0b817c4836a1021"><div class="ttname"><a href="classimpala_1_1HashTable.html#a4222254505940c65b0b817c4836a1021">impala::HashTable::PrepareBucketForInsert</a></div><div class="ttdeci">void IR_ALWAYS_INLINE PrepareBucketForInsert(int64_t bucket_idx, uint32_t hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00163">hash-table.inline.h:163</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_acc898ddea6c8c1d54f21fea4af1bcf7b"><div class="ttname"><a href="classimpala_1_1HashTable.html#acc898ddea6c8c1d54f21fea4af1bcf7b">impala::HashTable::num_buckets_</a></div><div class="ttdeci">int64_t num_buckets_</div><div class="ttdoc">Total number of buckets (filled and empty). </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00629">hash-table.h:629</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aeec475f7305de2910672e7b301dfb9d9"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aeec475f7305de2910672e7b301dfb9d9">impala::HashTableCtx::HashTableCtx</a></div><div class="ttdeci">HashTableCtx(const std::vector< ExprContext * > &build_expr_ctxs, const std::vector< ExprContext * > &probe_expr_ctxs, bool stores_nulls, bool finds_nulls, int32_t initial_seed, int max_levels, int num_build_tuples)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00083">hash-table.cc:83</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ae1cda955b2701205694fdf8407f90138"><div class="ttname"><a href="classimpala_1_1HashTable.html#ae1cda955b2701205694fdf8407f90138">impala::HashTable::node_remaining_current_page_</a></div><div class="ttdeci">int node_remaining_current_page_</div><div class="ttdoc">Number of nodes left in the current page. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00617">hash-table.h:617</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aa0841acffb814745aca473460769c009"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aa0841acffb814745aca473460769c009">impala::HashTableCtx::expr_value_null_bits_</a></div><div class="ttdeci">uint8_t * expr_value_null_bits_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00263">hash-table.h:263</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a0f4c922a525b11eaf26d82a808f6c233"><div class="ttname"><a href="classimpala_1_1HashTable.html#a0f4c922a525b11eaf26d82a808f6c233">impala::HashTable::data_page_pool_</a></div><div class="ttdeci">MemPool * data_page_pool_</div><div class="ttdoc">Only used for tests to allocate data pages instead of the block mgr. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00596">hash-table.h:596</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a7f2a20c37756a44feeae7cd335f2746f"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a7f2a20c37756a44feeae7cd335f2746f">impala::HashTableCtx::HashCurrentRow</a></div><div class="ttdeci">uint32_t IR_NO_INLINE HashCurrentRow()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00177">hash-table.h:177</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac03658dce51b9f2582daebec0646e80a"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac03658dce51b9f2582daebec0646e80a">impala::HashTable::FirstUnmatched</a></div><div class="ttdeci">Iterator FirstUnmatched(HashTableCtx *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00135">hash-table.inline.h:135</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1Bucket_html_a651a400ca63963e409447f5214c554b6"><div class="ttname"><a href="structimpala_1_1HashTable_1_1Bucket.html#a651a400ca63963e409447f5214c554b6">impala::HashTable::Bucket::hash</a></div><div class="ttdeci">uint32_t hash</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00319">hash-table.h:319</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aae6aa71d148c256abe717fe085173e3c"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aae6aa71d148c256abe717fe085173e3c">impala::HashTableCtx::seeds_</a></div><div class="ttdeci">std::vector< uint32_t > seeds_</div><div class="ttdoc">The seeds to use for hashing. Indexed by the level. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00242">hash-table.h:242</a></div></div> |
| <div class="ttc" id="bitmap_8h_html"><div class="ttname"><a href="bitmap_8h.html">bitmap.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a9830fc407400559db7e7783cc10a9394"><div class="ttname"><a href="classimpala_1_1HashTable.html#a9830fc407400559db7e7783cc10a9394">impala::HashTable::Iterator</a></div><div class="ttdeci">friend class Iterator</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00517">hash-table.h:517</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aec787cbcc1d6aa4d8e90f2fc52d12c50"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aec787cbcc1d6aa4d8e90f2fc52d12c50">impala::HashTableCtx::row_</a></div><div class="ttdeci">TupleRow * row_</div><div class="ttdoc">Scratch buffer to generate rows on the fly. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00266">hash-table.h:266</a></div></div> |
| <div class="ttc" id="classimpala_1_1BitUtil_html_aeeee1ea0cce21a36518083463e36606c"><div class="ttname"><a href="classimpala_1_1BitUtil.html#aeeee1ea0cce21a36518083463e36606c">impala::BitUtil::NextPowerOfTwo</a></div><div class="ttdeci">static int64_t NextPowerOfTwo(int64_t v)</div><div class="ttdef"><b>Definition:</b> <a href="bit-util_8h_source.html#l00050">bit-util.h:50</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_aa240fc7c128e0f6bd1e99b1b26e564ac"><div class="ttname"><a href="classimpala_1_1HashTable.html#aa240fc7c128e0f6bd1e99b1b26e564ac">impala::HashTable::num_buckets</a></div><div class="ttdeci">int64_t num_buckets() const </div><div class="ttdoc">Returns the number of buckets. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00388">hash-table.h:388</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac7049a35b4d1716e54bb46d9c3ed890d"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac7049a35b4d1716e54bb46d9c3ed890d">impala::HashTable::next_node_</a></div><div class="ttdeci">DuplicateNode * next_node_</div><div class="ttdoc">Next duplicate node to insert. Vaild when node_remaining_current_page_ > 0. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00614">hash-table.h:614</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a35dd000b13acadd90b975609b8e39e55"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a35dd000b13acadd90b975609b8e39e55">impala::HashTableCtx::EvalProbeRow</a></div><div class="ttdeci">bool IR_NO_INLINE EvalProbeRow(TupleRow *row)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00209">hash-table.h:209</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_af7b361bdfb31e9438075ce2b67fd91ba"><div class="ttname"><a href="classimpala_1_1HashTable.html#af7b361bdfb31e9438075ce2b67fd91ba">impala::HashTable::total_data_page_size_</a></div><div class="ttdeci">int64_t total_data_page_size_</div><div class="ttdoc">Byte size of all buffers in data_pages_. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00611">hash-table.h:611</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac128e2d41168cc9e08b40c34e1a29bc3"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac128e2d41168cc9e08b40c34e1a29bc3">impala::HashTable::Find</a></div><div class="ttdeci">Iterator IR_ALWAYS_INLINE Find(HashTableCtx *ht_ctx, uint32_t hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00117">hash-table.inline.h:117</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a37a23fb4e24cc776ffdef905f8fd76a4"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a37a23fb4e24cc776ffdef905f8fd76a4">impala::HashTableCtx::finds_nulls_</a></div><div class="ttdeci">const bool finds_nulls_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00235">hash-table.h:235</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_af1cccf76b721c82e567a687b5660613d"><div class="ttname"><a href="classimpala_1_1HashTable.html#af1cccf76b721c82e567a687b5660613d">impala::HashTable::HashTable</a></div><div class="ttdeci">HashTable(RuntimeState *state, BufferedBlockMgr::Client *client, int num_build_tuples, BufferedTupleStream *tuple_stream, int64_t max_num_buckets, int64_t initial_num_buckets=1024)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00192">hash-table.cc:192</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableTest_html"><div class="ttname"><a href="classimpala_1_1HashTableTest.html">impala::HashTableTest</a></div><div class="ttdef"><b>Definition:</b> <a href="hash-table-test_8cc_source.html#l00038">hash-table-test.cc:38</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a63154f1e57a11b4d9362943bae38ef5a"><div class="ttname"><a href="classimpala_1_1HashTable.html#a63154f1e57a11b4d9362943bae38ef5a">impala::HashTable::has_matches_</a></div><div class="ttdeci">bool has_matches_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00645">hash-table.h:645</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aff70889dabe20650c59d74914506fa4d"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aff70889dabe20650c59d74914506fa4d">impala::HashTableCtx::HashVariableLenRow</a></div><div class="ttdeci">uint32_t HashVariableLenRow()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00146">hash-table.cc:146</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a67951a6c7296d85edb7a08b5fe143352"><div class="ttname"><a href="classimpala_1_1HashTable.html#a67951a6c7296d85edb7a08b5fe143352">impala::HashTable::NextFilledBucket</a></div><div class="ttdeci">void NextFilledBucket(int64_t *bucket_idx, DuplicateNode **node)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00150">hash-table.inline.h:150</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a4a588e032295321c1940dba38b574768"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a4a588e032295321c1940dba38b574768">impala::HashTableCtx::last_expr_value_null</a></div><div class="ttdeci">bool last_expr_value_null(int expr_idx) const </div><div class="ttdoc">Returns if the expr at 'expr_idx' evaluated to NULL for the last row. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00139">hash-table.h:139</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a6d7e2d70c48ad221333f5b939745134b"><div class="ttname"><a href="classimpala_1_1HashTable.html#a6d7e2d70c48ad221333f5b939745134b">impala::HashTable::num_build_tuples_</a></div><div class="ttdeci">int num_build_tuples_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00640">hash-table.h:640</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ab4f7267cccc84203f4891ed1e574b644"><div class="ttname"><a href="classimpala_1_1HashTable.html#ab4f7267cccc84203f4891ed1e574b644">impala::HashTable::EstimateSize</a></div><div class="ttdeci">static int64_t EstimateSize(int64_t num_rows)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00402">hash-table.h:402</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a0c1d67cc8cebd5cd2fb855fa5d0a4a57"><div class="ttname"><a href="classimpala_1_1HashTable.html#a0c1d67cc8cebd5cd2fb855fa5d0a4a57">impala::HashTable::Probe</a></div><div class="ttdeci">int64_t IR_ALWAYS_INLINE Probe(Bucket *buckets, int64_t num_buckets, HashTableCtx *ht_ctx, uint32_t hash, bool *found)</div><div class="ttdoc">There are wrappers of this function that perform the Find and Insert logic. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00037">hash-table.inline.h:37</a></div></div> |
| <div class="ttc" id="tuple-row_8h_html"><div class="ttname"><a href="tuple-row_8h.html">tuple-row.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a463369a1c40b9254b0805264077b3d8a"><div class="ttname"><a href="classimpala_1_1HashTable.html#a463369a1c40b9254b0805264077b3d8a">impala::HashTable::load_factor</a></div><div class="ttdeci">double load_factor() const </div><div class="ttdoc">Returns the load factor (the number of non-empty buckets) </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00391">hash-table.h:391</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aa5429a8f6c765b740a54b3e2d8cbd63b"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aa5429a8f6c765b740a54b3e2d8cbd63b">impala::HashTableCtx::Close</a></div><div class="ttdeci">void Close()</div><div class="ttdoc">Call to cleanup any resources. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00112">hash-table.cc:112</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a53e8f6764f9f739c3a2f478c5c5e7d4c"><div class="ttname"><a href="classimpala_1_1HashTable.html#a53e8f6764f9f739c3a2f478c5c5e7d4c">impala::HashTable::tuple_stream_</a></div><div class="ttdeci">BufferedTupleStream * tuple_stream_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00593">hash-table.h:593</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1DuplicateNode_html_ac7abbf3c029016c52411a3c4adc284bd"><div class="ttname"><a href="structimpala_1_1HashTable_1_1DuplicateNode.html#ac7abbf3c029016c52411a3c4adc284bd">impala::HashTable::DuplicateNode::htdata</a></div><div class="ttdeci">HtData htdata</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00300">hash-table.h:300</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a849d5e05fa77c04ec11efc6fcf266284"><div class="ttname"><a href="classimpala_1_1HashTable.html#a849d5e05fa77c04ec11efc6fcf266284">impala::HashTable::Close</a></div><div class="ttdeci">void Close()</div><div class="ttdoc">Call to cleanup any resources. Must be called once. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00257">hash-table.cc:257</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a41ec948e01fcfa27711c3382dd5d1ffd"><div class="ttname"><a href="classimpala_1_1HashTable.html#a41ec948e01fcfa27711c3382dd5d1ffd">impala::HashTable::max_num_buckets_</a></div><div class="ttdeci">const int64_t max_num_buckets_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00622">hash-table.h:622</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aa1c1b818cb5c0004d01f6ad7487a3394"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aa1c1b818cb5c0004d01f6ad7487a3394">impala::HashTableCtx::EvalAndHashBuild</a></div><div class="ttdeci">bool IR_ALWAYS_INLINE EvalAndHashBuild(TupleRow *row, uint32_t *hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00023">hash-table.inline.h:23</a></div></div> |
| <div class="ttc" id="buffered-block-mgr_8h_html"><div class="ttname"><a href="buffered-block-mgr_8h.html">buffered-block-mgr.h</a></div></div> |
| <div class="ttc" id="namespacegen__ir__descriptions_html_a0d6572990c8dd576a55a21ff11d6deb7"><div class="ttname"><a href="namespacegen__ir__descriptions.html#a0d6572990c8dd576a55a21ff11d6deb7">gen_ir_descriptions.idx</a></div><div class="ttdeci">int idx</div><div class="ttdef"><b>Definition:</b> <a href="gen__ir__descriptions_8py_source.html#l00215">gen_ir_descriptions.py:215</a></div></div> |
| <div class="ttc" id="structimpala_1_1HashTable_1_1DuplicateNode_html_a61fe600bfa729712702e550a1d334133"><div class="ttname"><a href="structimpala_1_1HashTable_1_1DuplicateNode.html#a61fe600bfa729712702e550a1d334133">impala::HashTable::DuplicateNode::matched</a></div><div class="ttdeci">bool matched</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00297">hash-table.h:297</a></div></div> |
| <div class="ttc" id="structimpala_1_1BufferedTupleStream_1_1RowIdx_html"><div class="ttname"><a href="structimpala_1_1BufferedTupleStream_1_1RowIdx.html">impala::BufferedTupleStream::RowIdx</a></div><div class="ttdef"><b>Definition:</b> <a href="buffered-tuple-stream_8h_source.html#l00121">buffered-tuple-stream.h:121</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a298163e8c4896999e93d089f7184ce48"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a298163e8c4896999e93d089f7184ce48">impala::HashTable::Iterator::SetMatched</a></div><div class="ttdeci">void SetMatched()</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00256">hash-table.inline.h:256</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a34e6e9efbd7f665c6a870a11938ff031"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a34e6e9efbd7f665c6a870a11938ff031">impala::HashTable::Iterator::node_</a></div><div class="ttdeci">DuplicateNode * node_</div><div class="ttdoc">Pointer to the current duplicate node. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00513">hash-table.h:513</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_aa2d8a6ef8cf6daebf8e1fbf239fff3ec"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#aa2d8a6ef8cf6daebf8e1fbf239fff3ec">impala::HashTableCtx::results_buffer_size_</a></div><div class="ttdeci">int results_buffer_size_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00255">hash-table.h:255</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a9ad9ccfb9528dc9ef7daa26125ec0bf4"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a9ad9ccfb9528dc9ef7daa26125ec0bf4">impala::HashTable::Iterator::GetRow</a></div><div class="ttdeci">TupleRow * GetRow() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00230">hash-table.inline.h:230</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_1_1Iterator_html_a0f3095e5e49d4b20ad21f7e02b1bda20"><div class="ttname"><a href="classimpala_1_1HashTable_1_1Iterator.html#a0f3095e5e49d4b20ad21f7e02b1bda20">impala::HashTable::Iterator::Iterator</a></div><div class="ttdeci">Iterator(HashTable *table, TupleRow *row, int bucket_idx, DuplicateNode *node, uint32_t hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00497">hash-table.h:497</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a4710c7202b6716547326b7f1d2a6730b"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a4710c7202b6716547326b7f1d2a6730b">impala::HashTableCtx::EvalBuildRow</a></div><div class="ttdeci">bool IR_NO_INLINE EvalBuildRow(TupleRow *row)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00203">hash-table.h:203</a></div></div> |
| <div class="ttc" id="impala-ir_8h_html"><div class="ttname"><a href="impala-ir_8h.html">impala-ir.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html">impala::HashTableCtx</a></div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00104">hash-table.h:104</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a60e5c8ae0744eb588bfbb8ae98bbeaf0"><div class="ttname"><a href="classimpala_1_1HashTable.html#a60e5c8ae0744eb588bfbb8ae98bbeaf0">impala::HashTable::Insert</a></div><div class="ttdeci">bool IR_ALWAYS_INLINE Insert(HashTableCtx *ht_ctx, const BufferedTupleStream::RowIdx &idx, TupleRow *row, uint32_t hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00094">hash-table.inline.h:94</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ae7006f3aff0395a0251fbb2765634b96"><div class="ttname"><a href="classimpala_1_1HashTable.html#ae7006f3aff0395a0251fbb2765634b96">impala::HashTable::size</a></div><div class="ttdeci">int64_t size() const </div><div class="ttdoc">Returns number of elements inserted in the hash table. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00380">hash-table.h:380</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashUtil_html_a9298a9bb5f2016b9b57f395b99a77cbc"><div class="ttname"><a href="classimpala_1_1HashUtil.html#a9298a9bb5f2016b9b57f395b99a77cbc">impala::HashUtil::MurmurHash2_64</a></div><div class="ttdeci">static uint64_t MurmurHash2_64(const void *input, int len, uint64_t seed)</div><div class="ttdoc">Murmur2 hash implementation returning 64-bit hashes. </div><div class="ttdef"><b>Definition:</b> <a href="hash-util_8h_source.html#l00064">hash-util.h:64</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ae83037529a3f307470860bbeb3e71024"><div class="ttname"><a href="classimpala_1_1HashTable.html#ae83037529a3f307470860bbeb3e71024">impala::HashTable::DebugString</a></div><div class="ttdeci">std::string DebugString(bool skip_empty, bool show_match, const RowDescriptor *build_desc)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8cc_source.html#l00387">hash-table.cc:387</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a1ad8788675d03050636efe015a75c426"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a1ad8788675d03050636efe015a75c426">impala::HashTableCtx::row</a></div><div class="ttdeci">TupleRow * row() const </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00127">hash-table.h:127</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTableCtx_html_a5f92cb6aa106a9fb60fb42debfe14979"><div class="ttname"><a href="classimpala_1_1HashTableCtx.html#a5f92cb6aa106a9fb60fb42debfe14979">impala::HashTableCtx::EvalAndHashProbe</a></div><div class="ttdeci">bool IR_ALWAYS_INLINE EvalAndHashProbe(TupleRow *row, uint32_t *hash)</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8inline_8h_source.html#l00030">hash-table.inline.h:30</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_a3f5da1f068a86b1cae6f207dfce96710"><div class="ttname"><a href="classimpala_1_1HashTable.html#a3f5da1f068a86b1cae6f207dfce96710">impala::HashTable::num_failed_probes_</a></div><div class="ttdeci">int64_t num_failed_probes_</div><div class="ttdoc">Number of probes that failed and had to fall back to linear probing without cap. </div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00653">hash-table.h:653</a></div></div> |
| <div class="ttc" id="classimpala_1_1HashTable_html_ac461c88f6a7b8f9b0fdfc1cd42344837"><div class="ttname"><a href="classimpala_1_1HashTable.html#ac461c88f6a7b8f9b0fdfc1cd42344837">impala::HashTable::buckets_</a></div><div class="ttdeci">Bucket * buckets_</div><div class="ttdef"><b>Definition:</b> <a href="hash-table_8h_source.html#l00626">hash-table.h:626</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_e5d120be6b5e8a44336cbfd013b25604.html">be</a></li><li class="navelem"><a class="el" href="dir_68cf7cafb51a962d5bc4848b83cab0de.html">src</a></li><li class="navelem"><a class="el" href="dir_479336c0a15f2c0737bcafcf969f884c.html">exec</a></li><li class="navelem"><a class="el" href="hash-table_8h.html">hash-table.h</a></li> |
| <li class="footer">Generated on Thu May 7 2015 16:10:35 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> |