| <!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/old-hash-table.inline.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('old-hash-table_8inline_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">old-hash-table.inline.h</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <a href="old-hash-table_8inline_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_OLD_HASH_TABLE_INLINE_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_OLD_HASH_TABLE_INLINE_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 "<a class="code" href="old-hash-table_8h.html">exec/old-hash-table.h</a>"</span></div> |
| <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div> |
| <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span>impala {</div> |
| <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div> |
| <div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a0dc2dc91abd3307e9d58b497a7473624"> 23</a></span> <span class="keyword">inline</span> <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html">OldHashTable::Iterator</a> <a class="code" href="classimpala_1_1OldHashTable.html#a0dc2dc91abd3307e9d58b497a7473624">OldHashTable::Find</a>(<a class="code" href="classimpala_1_1TupleRow.html">TupleRow</a>* probe_row) {</div> |
| <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>;</div> |
| <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keywordflow">if</span> (!<a class="code" href="classimpala_1_1OldHashTable.html#afbb141e9ecb7d66f79e903b9390da326">EvalAndHashProbe</a>(probe_row, &hash)) <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">End</a>();</div> |
| <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  int64_t bucket_idx = hash & (<a class="code" href="classimpala_1_1OldHashTable.html#a4e6476b6787b537cc82062d63ed3d976">num_buckets_</a> - 1);</div> |
| <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket = &<a class="code" href="classimpala_1_1OldHashTable.html#a887e78a6ac049d00163bf9e328f2dda8">buckets_</a>[bucket_idx];</div> |
| <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* node = bucket->node;</div> |
| <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">while</span> (node != NULL) {</div> |
| <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">if</span> (node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a1aa9ad84fc2e19334f9bd711517df1d6">hash</a> == hash && <a class="code" href="classimpala_1_1OldHashTable.html#a9d19ab9277a7261b75dc77adcdfe822d">Equals</a>(<a class="code" href="classimpala_1_1OldHashTable.html#a9cf954b79777dcd73df31476b7b06e5d">GetRow</a>(node))) {</div> |
| <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a>(<span class="keyword">this</span>, bucket_idx, node, hash);</div> |
| <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  }</div> |
| <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  node = node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</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>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">End</a>();</div> |
| <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div> |
| <div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a751cdb2e9561124603d773abd47fba58"> 38</a></span> <span class="keyword">inline</span> <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html">OldHashTable::Iterator</a> <a class="code" href="classimpala_1_1OldHashTable.html#a751cdb2e9561124603d773abd47fba58">OldHashTable::Begin</a>() {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  int64_t bucket_idx = -1;</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket = <a class="code" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">NextBucket</a>(&bucket_idx);</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">if</span> (bucket != NULL) <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a>(<span class="keyword">this</span>, bucket_idx, bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a>, 0);</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">End</a>();</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div> |
| <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a84fb3f2096e01b0eec4c3d6c19a4df9f"> 45</a></span> <span class="keyword">inline</span> <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html">OldHashTable::Iterator</a> <a class="code" href="classimpala_1_1OldHashTable.html#a84fb3f2096e01b0eec4c3d6c19a4df9f">OldHashTable::FirstUnmatched</a>() {</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  int64_t bucket_idx = -1;</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket = <a class="code" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">NextBucket</a>(&bucket_idx);</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">while</span> (bucket != NULL) {</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* node = bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a>;</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">while</span> (node != NULL && node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6750dfb78ea7a6494fda453894073fdd">matched</a>) {</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  node = node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span> (node == NULL) {</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  bucket = <a class="code" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">NextBucket</a>(&bucket_idx);</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  DCHECK(!node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6750dfb78ea7a6494fda453894073fdd">matched</a>);</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a9830fc407400559db7e7783cc10a9394">Iterator</a>(<span class="keyword">this</span>, bucket_idx, node, 0);</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">return</span> <a class="code" href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">End</a>();</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div> |
| <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181"> 63</a></span> <span class="keyword">inline</span> <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">OldHashTable::Bucket</a>* <a class="code" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">OldHashTable::NextBucket</a>(int64_t* bucket_idx) {</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  ++*bucket_idx;</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">for</span> (; *bucket_idx < <a class="code" href="classimpala_1_1OldHashTable.html#a4e6476b6787b537cc82062d63ed3d976">num_buckets_</a>; ++*bucket_idx) {</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1OldHashTable.html#a887e78a6ac049d00163bf9e328f2dda8">buckets_</a>[*bucket_idx].node != NULL) <span class="keywordflow">return</span> &<a class="code" href="classimpala_1_1OldHashTable.html#a887e78a6ac049d00163bf9e328f2dda8">buckets_</a>[*bucket_idx];</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  *bucket_idx = -1;</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> NULL;</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div> |
| <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a43d25c6703851873145af87d320d3bc9"> 72</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1OldHashTable.html#a43d25c6703851873145af87d320d3bc9">OldHashTable::InsertImpl</a>(<span class="keywordtype">void</span>* data) {</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  uint32_t <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a> = <a class="code" href="classimpala_1_1OldHashTable.html#a1c4efc4a084cdc4cd78c7117b2981064">HashCurrentRow</a>();</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  int64_t bucket_idx = hash & (<a class="code" href="classimpala_1_1OldHashTable.html#a4e6476b6787b537cc82062d63ed3d976">num_buckets_</a> - 1);</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1OldHashTable.html#a4c09c00fe722ba4f37235aa8a54b6b1c">node_remaining_current_page_</a> == 0) {</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a41c900f83424dfb6586389ef4933cea4">GrowNodeArray</a>();</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (<a class="code" href="compiler-util_8h.html#a9acc330d508b9a3b775cfdf7ce405e7d">UNLIKELY</a>(<a class="code" href="classimpala_1_1OldHashTable.html#a95494a89d4c694a503cd5b74a2c3a233">mem_limit_exceeded_</a>)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">next_node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a1aa9ad84fc2e19334f9bd711517df1d6">hash</a> = <a class="code" href="namespaceimpala.html#a50b59c9628eedf49aa82643ce601967d">hash</a>;</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">next_node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a7e1bf9518a30c38a349d69c86f15f4cf">data</a> = data;</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">next_node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6750dfb78ea7a6494fda453894073fdd">matched</a> = <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a15748803e25a94b72e16665d5ad8d609">AddToBucket</a>(&<a class="code" href="classimpala_1_1OldHashTable.html#a887e78a6ac049d00163bf9e328f2dda8">buckets_</a>[bucket_idx], <a class="code" href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">next_node_</a>);</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  DCHECK_GT(<a class="code" href="classimpala_1_1OldHashTable.html#a4c09c00fe722ba4f37235aa8a54b6b1c">node_remaining_current_page_</a>, 0);</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  --<a class="code" href="classimpala_1_1OldHashTable.html#a4c09c00fe722ba4f37235aa8a54b6b1c">node_remaining_current_page_</a>;</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  ++<a class="code" href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">next_node_</a>;</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ++<a class="code" href="classimpala_1_1OldHashTable.html#acbc80cd4eb1a7163055ced5a12f3bef9">num_nodes_</a>;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> |
| <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a15748803e25a94b72e16665d5ad8d609"> 90</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1OldHashTable.html#a15748803e25a94b72e16665d5ad8d609">OldHashTable::AddToBucket</a>(<a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket, <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* node) {</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a04e1f3ce808501a9a00d4f194e259d41">num_filled_buckets_</a> += (bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a> == NULL);</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a> = bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a>;</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a> = node;</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div> |
| <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#aae6f63d2ef72a16e9072263aeb927095"> 96</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1OldHashTable.html#aae6f63d2ef72a16e9072263aeb927095">OldHashTable::EvalAndHashBuild</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="l00097"></a><span class="lineno"> 97</span>  <span class="keywordtype">bool</span> has_null = <a class="code" href="classimpala_1_1OldHashTable.html#a3d8883d693e7a5035453965ce3fd0dd5">EvalBuildRow</a>(row);</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (!<a class="code" href="classimpala_1_1OldHashTable.html#adb8be846cac5cfcb72b71aca9a59508d">stores_nulls_</a> && has_null) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  *hash = <a class="code" href="classimpala_1_1OldHashTable.html#a1c4efc4a084cdc4cd78c7117b2981064">HashCurrentRow</a>();</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div> |
| <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#afbb141e9ecb7d66f79e903b9390da326"> 103</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1OldHashTable.html#afbb141e9ecb7d66f79e903b9390da326">OldHashTable::EvalAndHashProbe</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="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">bool</span> has_null = <a class="code" href="classimpala_1_1OldHashTable.html#a34a1a4cdbeabf53e7aacce27bcde3890">EvalProbeRow</a>(row);</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span> ((!<a class="code" href="classimpala_1_1OldHashTable.html#adb8be846cac5cfcb72b71aca9a59508d">stores_nulls_</a> || !<a class="code" href="classimpala_1_1OldHashTable.html#a7aadc722391111a506a51f645ad9aaac">finds_nulls_</a>) && has_null) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  *hash = <a class="code" href="classimpala_1_1OldHashTable.html#a1c4efc4a084cdc4cd78c7117b2981064">HashCurrentRow</a>();</div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> |
| <div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable.html#a82c6e6c881a973621ea74c6bd82b6c2d"> 110</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1OldHashTable.html#a82c6e6c881a973621ea74c6bd82b6c2d">OldHashTable::MoveNode</a>(<a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* from_bucket, <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* to_bucket,</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* node, <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* previous_node) {</div> |
| <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (previous_node != NULL) {</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  previous_node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a> = node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Update bucket directly</span></div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  from_bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a> = node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a04e1f3ce808501a9a00d4f194e259d41">num_filled_buckets_</a> -= (node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a> == NULL);</div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classimpala_1_1OldHashTable.html#a15748803e25a94b72e16665d5ad8d609">AddToBucket</a>(to_bucket, node);</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }</div> |
| <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> |
| <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span><<span class="keywordtype">bool</span> check_match></div> |
| <div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable_1_1Iterator.html#a91c5922c4fc45f8cec89710463ce3095"> 123</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a172454c4c6e375b8029a249839e6552e">OldHashTable::Iterator::Next</a>() {</div> |
| <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#ad99679b4d448f57f839415852e78f876">bucket_idx_</a> == -1) <span class="keywordflow">return</span>;</div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// TODO: this should prefetch the next tuplerow</span></div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// Iterator is not from a full table scan, evaluate equality now. Only the current</span></div> |
| <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// bucket needs to be scanned. 'expr_values_buffer_' contains the results</span></div> |
| <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// for the current probe row.</span></div> |
| <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (check_match) {</div> |
| <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// TODO: this should prefetch the next node</span></div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Node.html">Node</a>* node = <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">while</span> (node != NULL) {</div> |
| <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a1aa9ad84fc2e19334f9bd711517df1d6">hash</a> == <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a4ebc971b7200f8413e97339ce5900ef2">scan_hash_</a> && <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a0f8a6a5776020257bd68d6cdf8e415f8">table_</a>-><a class="code" href="classimpala_1_1OldHashTable.html#a9d19ab9277a7261b75dc77adcdfe822d">Equals</a>(<a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a0f8a6a5776020257bd68d6cdf8e415f8">table_</a>-><a class="code" href="classimpala_1_1OldHashTable.html#a9cf954b79777dcd73df31476b7b06e5d">GetRow</a>(node))) {</div> |
| <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a> = node;</div> |
| <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span>;</div> |
| <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> |
| <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  node = node-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  *<span class="keyword">this</span> = <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a0f8a6a5776020257bd68d6cdf8e415f8">table_</a>-><a class="code" href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">End</a>();</div> |
| <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// Move onto the next chained node</span></div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (<a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a> != NULL) {</div> |
| <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a> = <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a>-><a class="code" href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">next</a>;</div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span>;</div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// Move onto the next bucket</span></div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket = <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a0f8a6a5776020257bd68d6cdf8e415f8">table_</a>-><a class="code" href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">NextBucket</a>(&<a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#ad99679b4d448f57f839415852e78f876">bucket_idx_</a>);</div> |
| <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (bucket == NULL) {</div> |
| <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#ad99679b4d448f57f839415852e78f876">bucket_idx_</a> = -1;</div> |
| <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a> = NULL;</div> |
| <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">node_</a> = bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a>;</div> |
| <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div> |
| <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div> |
| <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> }</div> |
| <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div> |
| <div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classimpala_1_1OldHashTable_1_1Iterator.html#a768105fd2f5205c0d67c1b6678df8661"> 159</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classimpala_1_1OldHashTable_1_1Iterator.html#a768105fd2f5205c0d67c1b6678df8661">OldHashTable::Iterator::NextUnmatched</a>() {</div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (bucket_idx_ == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div> |
| <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">while</span> (node_->next != NULL && node_->next->matched) {</div> |
| <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  node_ = node_->next;</div> |
| <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div> |
| <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (node_->next == NULL) {</div> |
| <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// Move onto the next bucket.</span></div> |
| <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html">Bucket</a>* bucket = table_->NextBucket(&bucket_idx_);</div> |
| <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span> (bucket == NULL) {</div> |
| <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  bucket_idx_ = -1;</div> |
| <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  node_ = NULL;</div> |
| <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  node_ = bucket-><a class="code" href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">node</a>;</div> |
| <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> (node_ != NULL && !node_->matched) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div> |
| <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  DCHECK(!node_->next->matched);</div> |
| <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  node_ = node_->next;</div> |
| <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div> |
| <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div> |
| <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div> |
| <div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div> |
| <div class="line"><a name="l00184"></a><span class="lineno"> 184</span> }</div> |
| <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div> |
| <div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor">#endif</span></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html">impala::OldHashTable::Iterator</a></div><div class="ttdoc">stl-like iterator interface. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00247">old-hash-table.h:247</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a887e78a6ac049d00163bf9e328f2dda8"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a887e78a6ac049d00163bf9e328f2dda8">impala::OldHashTable::buckets_</a></div><div class="ttdeci">std::vector< Bucket > buckets_</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00467">old-hash-table.h:467</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a95494a89d4c694a503cd5b74a2c3a233"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a95494a89d4c694a503cd5b74a2c3a233">impala::OldHashTable::mem_limit_exceeded_</a></div><div class="ttdeci">bool mem_limit_exceeded_</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00465">old-hash-table.h:465</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html_a0f8a6a5776020257bd68d6cdf8e415f8"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#a0f8a6a5776020257bd68d6cdf8e415f8">impala::OldHashTable::Iterator::table_</a></div><div class="ttdeci">OldHashTable * table_</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00310">old-hash-table.h:310</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a1c4efc4a084cdc4cd78c7117b2981064"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a1c4efc4a084cdc4cd78c7117b2981064">impala::OldHashTable::HashCurrentRow</a></div><div class="ttdeci">uint32_t IR_NO_INLINE HashCurrentRow()</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00387">old-hash-table.h:387</a></div></div> |
| <div class="ttc" id="old-hash-table_8h_html"><div class="ttname"><a href="old-hash-table_8h.html">old-hash-table.h</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a04e1f3ce808501a9a00d4f194e259d41"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a04e1f3ce808501a9a00d4f194e259d41">impala::OldHashTable::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 grow and rehash. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00444">old-hash-table.h:444</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html_a505fe9a788e128b5d70ee873b615dc2b"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#a505fe9a788e128b5d70ee873b615dc2b">impala::OldHashTable::Iterator::node_</a></div><div class="ttdeci">Node * node_</div><div class="ttdoc">Current node idx (within current bucket) </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00316">old-hash-table.h:316</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_1OldHashTable_html_a9cf954b79777dcd73df31476b7b06e5d"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a9cf954b79777dcd73df31476b7b06e5d">impala::OldHashTable::GetRow</a></div><div class="ttdeci">TupleRow * GetRow(Node *node) const </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00397">old-hash-table.h:397</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html_a4ebc971b7200f8413e97339ce5900ef2"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#a4ebc971b7200f8413e97339ce5900ef2">impala::OldHashTable::Iterator::scan_hash_</a></div><div class="ttdeci">uint32_t scan_hash_</div><div class="ttdoc">Cached hash value for the row passed to Find() </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00319">old-hash-table.h:319</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Node_html"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Node.html">impala::OldHashTable::Node</a></div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00328">old-hash-table.h:328</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a34a1a4cdbeabf53e7aacce27bcde3890"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a34a1a4cdbeabf53e7aacce27bcde3890">impala::OldHashTable::EvalProbeRow</a></div><div class="ttdeci">bool IR_NO_INLINE EvalProbeRow(TupleRow *row)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00380">old-hash-table.h:380</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="classimpala_1_1OldHashTable_1_1Iterator_html_a768105fd2f5205c0d67c1b6678df8661"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#a768105fd2f5205c0d67c1b6678df8661">impala::OldHashTable::Iterator::NextUnmatched</a></div><div class="ttdeci">bool NextUnmatched()</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00159">old-hash-table.inline.h:159</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a92dd7df15d4a19000c78d44c0c58d181"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a92dd7df15d4a19000c78d44c0c58d181">impala::OldHashTable::NextBucket</a></div><div class="ttdeci">Bucket * NextBucket(int64_t *bucket_idx)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00063">old-hash-table.inline.h:63</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Node_html_a1aa9ad84fc2e19334f9bd711517df1d6"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Node.html#a1aa9ad84fc2e19334f9bd711517df1d6">impala::OldHashTable::Node::hash</a></div><div class="ttdeci">uint32_t hash</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00336">old-hash-table.h:336</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a84fb3f2096e01b0eec4c3d6c19a4df9f"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a84fb3f2096e01b0eec4c3d6c19a4df9f">impala::OldHashTable::FirstUnmatched</a></div><div class="ttdeci">Iterator FirstUnmatched()</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00045">old-hash-table.inline.h:45</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a3d8883d693e7a5035453965ce3fd0dd5"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a3d8883d693e7a5035453965ce3fd0dd5">impala::OldHashTable::EvalBuildRow</a></div><div class="ttdeci">bool IR_NO_INLINE EvalBuildRow(TupleRow *row)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00374">old-hash-table.h:374</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_afbb141e9ecb7d66f79e903b9390da326"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#afbb141e9ecb7d66f79e903b9390da326">impala::OldHashTable::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="old-hash-table_8inline_8h_source.html#l00103">old-hash-table.inline.h:103</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a4c09c00fe722ba4f37235aa8a54b6b1c"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a4c09c00fe722ba4f37235aa8a54b6b1c">impala::OldHashTable::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="old-hash-table_8h_source.html#l00459">old-hash-table.h:459</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Node_html_a6750dfb78ea7a6494fda453894073fdd"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Node.html#a6750dfb78ea7a6494fda453894073fdd">impala::OldHashTable::Node::matched</a></div><div class="ttdeci">bool matched</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00334">old-hash-table.h:334</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a7aadc722391111a506a51f645ad9aaac"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a7aadc722391111a506a51f645ad9aaac">impala::OldHashTable::finds_nulls_</a></div><div class="ttdeci">const bool finds_nulls_</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00438">old-hash-table.h:438</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a355272a6dbecb7f2cf6cdf8a05b4ab12"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a355272a6dbecb7f2cf6cdf8a05b4ab12">impala::OldHashTable::next_node_</a></div><div class="ttdeci">Node * next_node_</div><div class="ttdoc">Next node to insert. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00456">old-hash-table.h:456</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a43d25c6703851873145af87d320d3bc9"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a43d25c6703851873145af87d320d3bc9">impala::OldHashTable::InsertImpl</a></div><div class="ttdeci">bool IR_ALWAYS_INLINE InsertImpl(void *data)</div><div class="ttdoc">Insert row into the hash table. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00072">old-hash-table.inline.h:72</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Node_html_a6f9526391e3370677597c01530c895e5"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Node.html#a6f9526391e3370677597c01530c895e5">impala::OldHashTable::Node::next</a></div><div class="ttdeci">Node * next</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00337">old-hash-table.h:337</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a41c900f83424dfb6586389ef4933cea4"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a41c900f83424dfb6586389ef4933cea4">impala::OldHashTable::GrowNodeArray</a></div><div class="ttdeci">void GrowNodeArray()</div><div class="ttdoc">Grow the node array. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8cc_source.html#l00732">old-hash-table.cc:732</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Bucket_html_a6a9ccd2e536080c6abff76282d7c7216"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Bucket.html#a6a9ccd2e536080c6abff76282d7c7216">impala::OldHashTable::Bucket::node</a></div><div class="ttdeci">Node * node</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00342">old-hash-table.h:342</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Bucket_html"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Bucket.html">impala::OldHashTable::Bucket</a></div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00341">old-hash-table.h:341</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a4e6476b6787b537cc82062d63ed3d976"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a4e6476b6787b537cc82062d63ed3d976">impala::OldHashTable::num_buckets_</a></div><div class="ttdeci">int64_t num_buckets_</div><div class="ttdoc">equal to buckets_.size() but more efficient than the size function </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00470">old-hash-table.h:470</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a34fdf4c8a112114a64b9587dcb96fee8"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a34fdf4c8a112114a64b9587dcb96fee8">impala::OldHashTable::End</a></div><div class="ttdeci">Iterator End()</div><div class="ttdoc">Returns end marker. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00223">old-hash-table.h:223</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a15748803e25a94b72e16665d5ad8d609"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a15748803e25a94b72e16665d5ad8d609">impala::OldHashTable::AddToBucket</a></div><div class="ttdeci">void AddToBucket(Bucket *bucket, Node *node)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00090">old-hash-table.inline.h:90</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html_a172454c4c6e375b8029a249839e6552e"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#a172454c4c6e375b8029a249839e6552e">impala::OldHashTable::Iterator::Next</a></div><div class="ttdeci">void IR_ALWAYS_INLINE Next()</div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_adb8be846cac5cfcb72b71aca9a59508d"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#adb8be846cac5cfcb72b71aca9a59508d">impala::OldHashTable::stores_nulls_</a></div><div class="ttdeci">const bool stores_nulls_</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00437">old-hash-table.h:437</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a0dc2dc91abd3307e9d58b497a7473624"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a0dc2dc91abd3307e9d58b497a7473624">impala::OldHashTable::Find</a></div><div class="ttdeci">Iterator IR_ALWAYS_INLINE Find(TupleRow *probe_row)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00023">old-hash-table.inline.h:23</a></div></div> |
| <div class="ttc" id="compiler-util_8h_html_a9acc330d508b9a3b775cfdf7ce405e7d"><div class="ttname"><a href="compiler-util_8h.html#a9acc330d508b9a3b775cfdf7ce405e7d">UNLIKELY</a></div><div class="ttdeci">#define UNLIKELY(expr)</div><div class="ttdef"><b>Definition:</b> <a href="compiler-util_8h_source.html#l00033">compiler-util.h:33</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_aae6f63d2ef72a16e9072263aeb927095"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#aae6f63d2ef72a16e9072263aeb927095">impala::OldHashTable::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="old-hash-table_8inline_8h_source.html#l00096">old-hash-table.inline.h:96</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a9830fc407400559db7e7783cc10a9394"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a9830fc407400559db7e7783cc10a9394">impala::OldHashTable::Iterator</a></div><div class="ttdeci">friend class Iterator</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00323">old-hash-table.h:323</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a9d19ab9277a7261b75dc77adcdfe822d"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a9d19ab9277a7261b75dc77adcdfe822d">impala::OldHashTable::Equals</a></div><div class="ttdeci">bool Equals(TupleRow *build_row)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8cc_source.html#l00507">old-hash-table.cc:507</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a82c6e6c881a973621ea74c6bd82b6c2d"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a82c6e6c881a973621ea74c6bd82b6c2d">impala::OldHashTable::MoveNode</a></div><div class="ttdeci">void MoveNode(Bucket *from_bucket, Bucket *to_bucket, Node *node, Node *previous_node)</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00110">old-hash-table.inline.h:110</a></div></div> |
| <div class="ttc" id="structimpala_1_1OldHashTable_1_1Node_html_a7e1bf9518a30c38a349d69c86f15f4cf"><div class="ttname"><a href="structimpala_1_1OldHashTable_1_1Node.html#a7e1bf9518a30c38a349d69c86f15f4cf">impala::OldHashTable::Node::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00338">old-hash-table.h:338</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_acbc80cd4eb1a7163055ced5a12f3bef9"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#acbc80cd4eb1a7163055ced5a12f3bef9">impala::OldHashTable::num_nodes_</a></div><div class="ttdeci">int64_t num_nodes_</div><div class="ttdoc">number of nodes stored (i.e. size of hash table) </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00447">old-hash-table.h:447</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_html_a751cdb2e9561124603d773abd47fba58"><div class="ttname"><a href="classimpala_1_1OldHashTable.html#a751cdb2e9561124603d773abd47fba58">impala::OldHashTable::Begin</a></div><div class="ttdeci">Iterator Begin()</div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8inline_8h_source.html#l00038">old-hash-table.inline.h:38</a></div></div> |
| <div class="ttc" id="classimpala_1_1OldHashTable_1_1Iterator_html_ad99679b4d448f57f839415852e78f876"><div class="ttname"><a href="classimpala_1_1OldHashTable_1_1Iterator.html#ad99679b4d448f57f839415852e78f876">impala::OldHashTable::Iterator::bucket_idx_</a></div><div class="ttdeci">int64_t bucket_idx_</div><div class="ttdoc">Current bucket idx. </div><div class="ttdef"><b>Definition:</b> <a href="old-hash-table_8h_source.html#l00313">old-hash-table.h:313</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="old-hash-table_8inline_8h.html">old-hash-table.inline.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> |