blob: e481309f2f317faf9acc39d712e25108500e5849 [file] [log] [blame]
<!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: impala::Tuple Class Reference</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&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;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('classimpala_1_1Tuple.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</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="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="classimpala_1_1Tuple-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">impala::Tuple Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A tuple with 0 materialised slots is represented as NULL.
<a href="classimpala_1_1Tuple.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="tuple_8h_source.html">tuple.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for impala::Tuple:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classimpala_1_1Tuple__coll__graph.svg" width="278" height="422"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3681bb1a70f95a8271719be3018a11ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a3681bb1a70f95a8271719be3018a11ea">Init</a> (int size)</td></tr>
<tr class="separator:a3681bb1a70f95a8271719be3018a11ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bd61a6c3fe36dc122b94d5f1f2ecac4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a7bd61a6c3fe36dc122b94d5f1f2ecac4">DeepCopy</a> (const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;desc, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, <a class="el" href="classbool.html">bool</a> convert_ptrs=false)</td></tr>
<tr class="separator:a7bd61a6c3fe36dc122b94d5f1f2ecac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b2c4b193a2645bcaf0934bd48e3417"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a65b2c4b193a2645bcaf0934bd48e3417">DeepCopy</a> (<a class="el" href="classimpala_1_1Tuple.html">Tuple</a> *dst, const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;desc, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, <a class="el" href="classbool.html">bool</a> convert_ptrs=false)</td></tr>
<tr class="separator:a65b2c4b193a2645bcaf0934bd48e3417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2e93d6bd2304d2ae2126f75e36ae31f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#ac2e93d6bd2304d2ae2126f75e36ae31f">DeepCopy</a> (const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;desc, char **data, int *<a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>, <a class="el" href="classbool.html">bool</a> convert_ptrs=false)</td></tr>
<tr class="separator:ac2e93d6bd2304d2ae2126f75e36ae31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9986fe7443a1614ed80c2693a723ee25"><td class="memTemplParams" colspan="2">template&lt;bool collect_string_vals&gt; </td></tr>
<tr class="memitem:a9986fe7443a1614ed80c2693a723ee25"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a9986fe7443a1614ed80c2693a723ee25">MaterializeExprs</a> (<a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *row, const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;desc, const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;materialize_expr_ctxs, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, std::vector&lt; <a class="el" href="structimpala_1_1StringValue.html">StringValue</a> * &gt; *non_null_var_len_values=NULL, int *total_var_len=NULL)</td></tr>
<tr class="separator:a9986fe7443a1614ed80c2693a723ee25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5999414f1f330079b012884aea77b62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#ac5999414f1f330079b012884aea77b62">SetNull</a> (const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;<a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>)</td></tr>
<tr class="separator:ac5999414f1f330079b012884aea77b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27259fe8e062cb021105c7d0cc5c8522"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a27259fe8e062cb021105c7d0cc5c8522">SetNotNull</a> (const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;<a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>)</td></tr>
<tr class="memdesc:a27259fe8e062cb021105c7d0cc5c8522"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn null indicator bit off. <a href="#a27259fe8e062cb021105c7d0cc5c8522">More...</a><br/></td></tr>
<tr class="separator:a27259fe8e062cb021105c7d0cc5c8522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace4b7ea4cc159a2d2686e2a61c406413"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#ace4b7ea4cc159a2d2686e2a61c406413">IsNull</a> (const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;<a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>) const </td></tr>
<tr class="separator:ace4b7ea4cc159a2d2686e2a61c406413"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c9d7d0ca31caed74224c97bf55a1a5c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a5c9d7d0ca31caed74224c97bf55a1a5c">GetSlot</a> (int <a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>)</td></tr>
<tr class="separator:a5c9d7d0ca31caed74224c97bf55a1a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91523920542fedbb668c677e0ae9b702"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a91523920542fedbb668c677e0ae9b702">GetSlot</a> (int <a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>) const </td></tr>
<tr class="separator:a91523920542fedbb668c677e0ae9b702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0d1cf8a3eca6b49fe7bd4d337758f56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structimpala_1_1StringValue.html">StringValue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#ad0d1cf8a3eca6b49fe7bd4d337758f56">GetStringSlot</a> (int <a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>)</td></tr>
<tr class="separator:ad0d1cf8a3eca6b49fe7bd4d337758f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7d4b7990aeaf469e0f0b09d9d9b9faf"><td class="memTemplParams" colspan="2">template&lt;bool collect_string_vals&gt; </td></tr>
<tr class="memitem:ac7d4b7990aeaf469e0f0b09d9d9b9faf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#ac7d4b7990aeaf469e0f0b09d9d9b9faf">MaterializeExprs</a> (<a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *row, const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;desc, const vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;materialize_expr_ctxs, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, vector&lt; <a class="el" href="structimpala_1_1StringValue.html">StringValue</a> * &gt; *non_null_var_len_values, int *total_var_len)</td></tr>
<tr class="separator:ac7d4b7990aeaf469e0f0b09d9d9b9faf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a88ae319676583858a991e011de6c48ec"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Tuple.html">Tuple</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a88ae319676583858a991e011de6c48ec">Create</a> (int size, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>)</td></tr>
<tr class="memdesc:a88ae319676583858a991e011de6c48ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize individual tuple with data residing in mem pool <a href="#a88ae319676583858a991e011de6c48ec">More...</a><br/></td></tr>
<tr class="separator:a88ae319676583858a991e011de6c48ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a62f7eca5df058762b9e426570599909b"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a62f7eca5df058762b9e426570599909b">LLVM_CLASS_NAME</a> = &quot;class.impala::Tuple&quot;</td></tr>
<tr class="memdesc:a62f7eca5df058762b9e426570599909b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For C++/IR interop, we need to be able to look up types by name. <a href="#a62f7eca5df058762b9e426570599909b">More...</a><br/></td></tr>
<tr class="separator:a62f7eca5df058762b9e426570599909b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a0ac723f901afa3d1e31505b2b07ff2fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Tuple.html#a0ac723f901afa3d1e31505b2b07ff2fe">DISALLOW_COPY_AND_ASSIGN</a> (<a class="el" href="classimpala_1_1Tuple.html">Tuple</a>)</td></tr>
<tr class="separator:a0ac723f901afa3d1e31505b2b07ff2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A tuple with 0 materialised slots is represented as NULL. </p>
<p>A tuple is stored as a contiguous sequence of bytes containing a fixed number of fixed-size slots. The slots are arranged in order of increasing byte length; the tuple might contain padding between slots in order to align them according to their type. The contents of a tuple: 1) a number of bytes holding a bitvector of null indicators 2) bool slots 3) tinyint slots 4) smallint slots 5) int slots 6) float slots 7) bigint slots 8) double slots 9) string slots </p>
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00048">48</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a88ae319676583858a991e011de6c48ec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classimpala_1_1Tuple.html">Tuple</a>* impala::Tuple::Create </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>initialize individual tuple with data residing in mem pool </p>
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00051">51</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>References <a class="el" href="mem-pool_8h_source.html#l00092">impala::MemPool::Allocate()</a>, and <a class="el" href="tuple_8h_source.html#l00058">Init()</a>.</p>
<p>Referenced by <a class="el" href="analytic-eval-node_8cc_source.html#l00337">impala::AnalyticEvalNode::AddResultTuple()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00352">impala::PartitionedAggregationNode::CleanupHashTbl()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00278">impala::AggregationNode::Close()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00314">impala::AggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00591">impala::PartitionedAggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="old-hash-table-test_8cc_source.html#l00076">impala::OldHashTableTest::CreateTupleRow()</a>, <a class="el" href="hash-table-test_8cc_source.html#l00076">impala::HashTableTest::CreateTupleRow()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00374">impala::AggregationNode::FinalizeTuple()</a>, <a class="el" href="union-node_8cc_source.html#l00119">impala::UnionNode::GetNext()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00147">impala::HBaseScanNode::GetNext()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00688">impala::PartitionedAggregationNode::GetOutputTuple()</a>, <a class="el" href="hdfs-scan-node_8cc_source.html#l00289">impala::HdfsScanNode::InitEmptyTemplateTuple()</a>, <a class="el" href="analytic-eval-node_8cc_source.html#l00166">impala::AnalyticEvalNode::Open()</a>, and <a class="el" href="hdfs-text-scanner_8cc_source.html#l00228">impala::HdfsTextScanner::ResetScanner()</a>.</p>
</div>
</div>
<a class="anchor" id="a7bd61a6c3fe36dc122b94d5f1f2ecac4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a> * impala::Tuple::DeepCopy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
<td class="paramname"><em>convert_ptrs</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a copy of 'this', including all of its referenced string data, using pool to allocate memory. Returns the copy. If 'convert_ptrs' is true, converts pointers that are part of the tuple into offsets in 'pool'. </p>
<p>Definition at line <a class="el" href="tuple_8cc_source.html#l00034">34</a> of file <a class="el" href="tuple_8cc_source.html">tuple.cc</a>.</p>
<p>References <a class="el" href="mem-pool_8h_source.html#l00092">impala::MemPool::Allocate()</a>, and <a class="el" href="descriptors_8h_source.html#l00300">impala::TupleDescriptor::byte_size()</a>.</p>
<p>Referenced by <a class="el" href="data-stream-sender_8cc_source.html#l00227">impala::DataStreamSender::Channel::AddRow()</a>, <a class="el" href="analytic-eval-node_8cc_source.html#l00306">impala::AnalyticEvalNode::AddRow()</a>, <a class="el" href="tuple-row_8h_source.html#l00052">impala::TupleRow::DeepCopy()</a>, <a class="el" href="topn-node_8cc_source.html#l00144">impala::TopNNode::InsertTupleRow()</a>, and <a class="el" href="row-batch_8cc_source.html#l00147">impala::RowBatch::Serialize()</a>.</p>
</div>
</div>
<a class="anchor" id="a65b2c4b193a2645bcaf0934bd48e3417"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::DeepCopy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a> *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
<td class="paramname"><em>convert_ptrs</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a copy of 'this', including all its referenced string data. This version does not allocate a tuple, instead copying 'dst'. dst must already be allocated to the correct size (desc.byte_size()) If 'convert_ptrs' is true, converts pointers that are part of the tuple into offsets in 'pool'. </p>
<p>Definition at line <a class="el" href="tuple_8cc_source.html#l00040">40</a> of file <a class="el" href="tuple_8cc_source.html">tuple.cc</a>.</p>
<p>References <a class="el" href="mem-pool_8h_source.html#l00092">impala::MemPool::Allocate()</a>, <a class="el" href="descriptors_8h_source.html#l00300">impala::TupleDescriptor::byte_size()</a>, <a class="el" href="mem-pool_8h_source.html#l00163">impala::MemPool::GetCurrentOffset()</a>, <a class="el" href="tuple_8h_source.html#l00128">GetStringSlot()</a>, <a class="el" href="tuple_8h_source.html#l00112">IsNull()</a>, <a class="el" href="string-value_8h_source.html#l00038">impala::StringValue::len</a>, <a class="el" href="partitioning-throughput-test_8cc_source.html#l00037">offset</a>, <a class="el" href="string-value_8h_source.html#l00037">impala::StringValue::ptr</a>, and <a class="el" href="descriptors_8h_source.html#l00303">impala::TupleDescriptor::string_slots()</a>.</p>
</div>
</div>
<a class="anchor" id="ac2e93d6bd2304d2ae2126f75e36ae31f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::DeepCopy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
<td class="paramname"><em>convert_ptrs</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a copy of 'this', including all referenced string data, into data. The tuple is written first, followed by any strings. data and offset will be incremented by the total number of bytes written. data must already be allocated to the correct size. If 'convert_ptrs' is true, converts pointers that are part of the tuple into offsets in data, based on the provided offset. Otherwise they will be pointers directly into data. </p>
<p>Definition at line <a class="el" href="tuple_8cc_source.html#l00057">57</a> of file <a class="el" href="tuple_8cc_source.html">tuple.cc</a>.</p>
<p>References <a class="el" href="descriptors_8h_source.html#l00300">impala::TupleDescriptor::byte_size()</a>, <a class="el" href="tuple_8h_source.html#l00128">GetStringSlot()</a>, <a class="el" href="tuple_8h_source.html#l00112">IsNull()</a>, <a class="el" href="string-value_8h_source.html#l00038">impala::StringValue::len</a>, <a class="el" href="string-value_8h_source.html#l00037">impala::StringValue::ptr</a>, and <a class="el" href="descriptors_8h_source.html#l00303">impala::TupleDescriptor::string_slots()</a>.</p>
</div>
</div>
<a class="anchor" id="a0ac723f901afa3d1e31505b2b07ff2fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">impala::Tuple::DISALLOW_COPY_AND_ASSIGN </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a>&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5c9d7d0ca31caed74224c97bf55a1a5c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void* impala::Tuple::GetSlot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00118">118</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>Referenced by <a class="el" href="sorter_8cc_source.html#l00702">impala::Sorter::Run::CollectNonNullVarSlots()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00314">impala::AggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00591">impala::PartitionedAggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00374">impala::AggregationNode::FinalizeTuple()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">impala::SlotRef::GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">impala::SlotRef::GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">impala::SlotRef::GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">impala::SlotRef::GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">impala::SlotRef::GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">impala::SlotRef::GetIntVal()</a>, <a class="el" href="sorter_8cc_source.html#l00609">impala::Sorter::Run::GetNext()</a>, <a class="el" href="data-stream-test_8cc_source.html#l00306">impala::DataStreamTest::GetNextBatch()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00688">impala::PartitionedAggregationNode::GetOutputTuple()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">impala::SlotRef::GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">impala::SlotRef::GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">impala::SlotRef::GetTinyIntVal()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00314">impala::AggFnEvaluator::Init()</a>, <a class="el" href="tuple_8cc_source.html#l00077">MaterializeExprs()</a>, <a class="el" href="data-source-scan-node_8cc_source.html#l00193">impala::DataSourceScanNode::MaterializeNextRow()</a>, <a class="el" href="hdfs-avro-scanner_8cc_source.html#l00585">impala::HdfsAvroScanner::MaterializeTuple()</a>, <a class="el" href="tuple-row-compare_8h_source.html#l00113">impala::TupleEqualityChecker::operator()()</a>, <a class="el" href="debug-util_8cc_source.html#l00166">impala::PrintTuple()</a>, <a class="el" href="data-stream-test_8cc_source.html#l00346">impala::DataStreamTest::ReadStream()</a>, <a class="el" href="data-stream-test_8cc_source.html#l00362">impala::DataStreamTest::ReadStreamMerging()</a>, <a class="el" href="hdfs-parquet-scanner_8cc_source.html#l00744">impala::HdfsParquetScanner::BaseColumnReader::ReadValue()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00421">impala::AggFnEvaluator::SerializeOrFinalize()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00332">SetAnyVal()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00236">impala::AggFnEvaluator::SetDstSlot()</a>, <a class="el" href="raw-value_8cc_source.html#l00303">impala::RawValue::Write()</a>, <a class="el" href="text-converter_8inline_8h_source.html#l00037">impala::TextConverter::WriteSlot()</a>, and <a class="el" href="hbase-table-scanner_8cc_source.html#l00572">impala::HBaseTableScanner::WriteTupleSlot()</a>.</p>
</div>
</div>
<a class="anchor" id="a91523920542fedbb668c677e0ae9b702"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const void* impala::Tuple::GetSlot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00123">123</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad0d1cf8a3eca6b49fe7bd4d337758f56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structimpala_1_1StringValue.html">StringValue</a>* impala::Tuple::GetStringSlot </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00128">128</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>Referenced by <a class="el" href="buffered-tuple-stream_8cc_source.html#l00595">impala::BufferedTupleStream::ComputeRowSize()</a>, <a class="el" href="tuple_8cc_source.html#l00040">DeepCopy()</a>, <a class="el" href="buffered-tuple-stream-ir_8cc_source.html#l00032">impala::BufferedTupleStream::DeepCopyInternal()</a>, <a class="el" href="buffered-tuple-stream_8cc_source.html#l00457">impala::BufferedTupleStream::GetNextInternal()</a>, <a class="el" href="row-batch_8cc_source.html#l00057">impala::RowBatch::RowBatch()</a>, and <a class="el" href="row-batch_8cc_source.html#l00303">impala::RowBatch::TotalByteSize()</a>.</p>
</div>
</div>
<a class="anchor" id="a3681bb1a70f95a8271719be3018a11ea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::Init </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00058">58</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>Referenced by <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00591">impala::PartitionedAggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="tuple_8h_source.html#l00051">Create()</a>, <a class="el" href="union-node_8cc_source.html#l00198">impala::UnionNode::EvalAndMaterializeExprs()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00147">impala::HBaseScanNode::GetNext()</a>, <a class="el" href="analytic-eval-node_8cc_source.html#l00435">impala::AnalyticEvalNode::InitNextPartition()</a>, and <a class="el" href="data-source-scan-node_8cc_source.html#l00193">impala::DataSourceScanNode::MaterializeNextRow()</a>.</p>
</div>
</div>
<a class="anchor" id="ace4b7ea4cc159a2d2686e2a61c406413"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbool.html">bool</a> impala::Tuple::IsNull </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00112">112</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>References <a class="el" href="descriptors_8h_source.html#l00063">impala::NullIndicatorOffset::bit_mask</a>, and <a class="el" href="descriptors_8h_source.html#l00062">impala::NullIndicatorOffset::byte_offset</a>.</p>
<p>Referenced by <a class="el" href="sorter_8cc_source.html#l00702">impala::Sorter::Run::CollectNonNullVarSlots()</a>, <a class="el" href="buffered-tuple-stream_8cc_source.html#l00595">impala::BufferedTupleStream::ComputeRowSize()</a>, <a class="el" href="tuple_8cc_source.html#l00040">DeepCopy()</a>, <a class="el" href="buffered-tuple-stream-ir_8cc_source.html#l00032">impala::BufferedTupleStream::DeepCopyInternal()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00374">impala::AggregationNode::FinalizeTuple()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">impala::SlotRef::GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">impala::SlotRef::GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">impala::SlotRef::GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">impala::SlotRef::GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">impala::SlotRef::GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">impala::SlotRef::GetIntVal()</a>, <a class="el" href="sorter_8cc_source.html#l00609">impala::Sorter::Run::GetNext()</a>, <a class="el" href="buffered-tuple-stream_8cc_source.html#l00457">impala::BufferedTupleStream::GetNextInternal()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00688">impala::PartitionedAggregationNode::GetOutputTuple()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">impala::SlotRef::GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">impala::SlotRef::GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">impala::SlotRef::GetTinyIntVal()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00314">impala::AggFnEvaluator::Init()</a>, <a class="el" href="tuple-row-compare_8h_source.html#l00113">impala::TupleEqualityChecker::operator()()</a>, <a class="el" href="debug-util_8cc_source.html#l00166">impala::PrintTuple()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00421">impala::AggFnEvaluator::SerializeOrFinalize()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00332">SetAnyVal()</a>, and <a class="el" href="row-batch_8cc_source.html#l00303">impala::RowBatch::TotalByteSize()</a>.</p>
</div>
</div>
<a class="anchor" id="ac7d4b7990aeaf469e0f0b09d9d9b9faf"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool collect_string_vals&gt; </div>
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::MaterializeExprs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>materialize_expr_ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vector&lt; <a class="el" href="structimpala_1_1StringValue.html">StringValue</a> * &gt; *&#160;</td>
<td class="paramname"><em>non_null_var_len_values</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>total_var_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple_8cc_source.html#l00077">77</a> of file <a class="el" href="tuple_8cc_source.html">tuple.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">GetSlot()</a>, <a class="el" href="descriptors_8h_source.html#l00092">impala::SlotDescriptor::is_materialized()</a>, <a class="el" href="types_8h_source.html#l00172">impala::ColumnType::IsVarLen()</a>, <a class="el" href="string-value_8h_source.html#l00038">impala::StringValue::len</a>, <a class="el" href="descriptors_8h_source.html#l00089">impala::SlotDescriptor::null_indicator_offset()</a>, <a class="el" href="descriptors_8h_source.html#l00301">impala::TupleDescriptor::num_null_bytes()</a>, <a class="el" href="expr-benchmark_8cc_source.html#l00089">pool</a>, <a class="el" href="tuple_8h_source.html#l00101">SetNull()</a>, <a class="el" href="descriptors_8h_source.html#l00302">impala::TupleDescriptor::slots()</a>, <a class="el" href="descriptors_8h_source.html#l00088">impala::SlotDescriptor::tuple_offset()</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="descriptors_8h_source.html#l00078">impala::SlotDescriptor::type()</a>, <a class="el" href="types_8h_source.html#l00029">impala::TYPE_NULL</a>, and <a class="el" href="raw-value_8cc_source.html#l00303">impala::RawValue::Write()</a>.</p>
</div>
</div>
<a class="anchor" id="a9986fe7443a1614ed80c2693a723ee25"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool collect_string_vals&gt; </div>
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::MaterializeExprs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>materialize_expr_ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="structimpala_1_1StringValue.html">StringValue</a> * &gt; *&#160;</td>
<td class="paramname"><em>non_null_var_len_values</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>total_var_len</em> = <code>NULL</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Materialize this by evaluating the expressions in materialize_exprs over the specified 'row'. 'pool' is used to allocate var-length data. (Memory for this tuple itself must already be allocated.) If collect_string_vals is true, the materialized non-NULL string value slots and the total length of the string slots are returned in var_values and total_var_len. </p>
<p>Referenced by <a class="el" href="sorter_8cc_source.html#l00372">impala::Sorter::Run::AddBatch()</a>, and <a class="el" href="topn-node_8cc_source.html#l00144">impala::TopNNode::InsertTupleRow()</a>.</p>
</div>
</div>
<a class="anchor" id="a27259fe8e062cb021105c7d0cc5c8522"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::SetNotNull </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Turn null indicator bit off. </p>
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00107">107</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>References <a class="el" href="descriptors_8h_source.html#l00063">impala::NullIndicatorOffset::bit_mask</a>, and <a class="el" href="descriptors_8h_source.html#l00062">impala::NullIndicatorOffset::byte_offset</a>.</p>
<p>Referenced by <a class="el" href="agg-fn-evaluator_8cc_source.html#l00236">impala::AggFnEvaluator::SetDstSlot()</a>.</p>
</div>
</div>
<a class="anchor" id="ac5999414f1f330079b012884aea77b62"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void impala::Tuple::SetNull </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a> &amp;&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Turn null indicator bit on. For non-nullable slots, the mask will be 0 and this is a no-op (but we don't have to branch to check is slots are nulalble). </p>
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00101">101</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>References <a class="el" href="descriptors_8h_source.html#l00063">impala::NullIndicatorOffset::bit_mask</a>, and <a class="el" href="descriptors_8h_source.html#l00062">impala::NullIndicatorOffset::byte_offset</a>.</p>
<p>Referenced by <a class="el" href="aggregation-node_8cc_source.html#l00314">impala::AggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00591">impala::PartitionedAggregationNode::ConstructIntermediateTuple()</a>, <a class="el" href="hdfs-parquet-scanner_8cc_source.html#l01050">impala::HdfsParquetScanner::CreateColumnReaders()</a>, <a class="el" href="hbase-scan-node_8cc_source.html#l00147">impala::HBaseScanNode::GetNext()</a>, <a class="el" href="tuple_8cc_source.html#l00077">MaterializeExprs()</a>, <a class="el" href="data-source-scan-node_8cc_source.html#l00193">impala::DataSourceScanNode::MaterializeNextRow()</a>, <a class="el" href="hdfs-avro-scanner_8cc_source.html#l00585">impala::HdfsAvroScanner::MaterializeTuple()</a>, <a class="el" href="hdfs-rcfile-scanner_8cc_source.html#l00451">impala::HdfsRCFileScanner::ProcessRange()</a>, <a class="el" href="hdfs-parquet-scanner_8cc_source.html#l00744">impala::HdfsParquetScanner::BaseColumnReader::ReadValue()</a>, <a class="el" href="hdfs-avro-scanner_8cc_source.html#l00220">impala::HdfsAvroScanner::ResolveSchemas()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00236">impala::AggFnEvaluator::SetDstSlot()</a>, <a class="el" href="raw-value_8cc_source.html#l00303">impala::RawValue::Write()</a>, and <a class="el" href="text-converter_8inline_8h_source.html#l00037">impala::TextConverter::WriteSlot()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a62f7eca5df058762b9e426570599909b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char * impala::Tuple::LLVM_CLASS_NAME = &quot;class.impala::Tuple&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>For C++/IR interop, we need to be able to look up types by name. </p>
<p>Definition at line <a class="el" href="tuple_8h_source.html#l00134">134</a> of file <a class="el" href="tuple_8h_source.html">tuple.h</a>.</p>
<p>Referenced by <a class="el" href="hdfs-avro-scanner_8cc_source.html#l00691">impala::HdfsAvroScanner::CodegenMaterializeTuple()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00678">impala::AggregationNode::CodegenUpdateTuple()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l01241">impala::PartitionedAggregationNode::CodegenUpdateTuple()</a>, and <a class="el" href="hdfs-scanner_8cc_source.html#l00296">impala::HdfsScanner::CodegenWriteCompleteTuple()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>be/src/runtime/<a class="el" href="tuple_8h_source.html">tuple.h</a></li>
<li>be/src/runtime/<a class="el" href="tuple_8cc_source.html">tuple.cc</a></li>
</ul>
</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="namespaceimpala.html">impala</a></li><li class="navelem"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a></li>
<li class="footer">Generated on Thu May 7 2015 16:10:50 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>