blob: 77113f99cd920d44f2b285b968c9fdcc9047b57a [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::SlotRef 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_1SlotRef.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="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classimpala_1_1SlotRef-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">impala::SlotRef Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Reference to a single slot of a tuple.
<a href="classimpala_1_1SlotRef.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for impala::SlotRef:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1SlotRef__inherit__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Collaboration diagram for impala::SlotRef:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1SlotRef__coll__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></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:ae9f8ad9bf165e9ba009b6bc132f7e365"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#ae9f8ad9bf165e9ba009b6bc132f7e365">SlotRef</a> (const TExprNode &amp;node)</td></tr>
<tr class="separator:ae9f8ad9bf165e9ba009b6bc132f7e365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b299ae6a67307b90c9889e10dbc69d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a0b299ae6a67307b90c9889e10dbc69d0">SlotRef</a> (const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *desc)</td></tr>
<tr class="separator:a0b299ae6a67307b90c9889e10dbc69d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a455237934aa89a5cd07e3d74c3051c98"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a455237934aa89a5cd07e3d74c3051c98">SlotRef</a> (const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *desc, const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;<a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a>)</td></tr>
<tr class="separator:a455237934aa89a5cd07e3d74c3051c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fcdce7b6932e667db714ef1d6a569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a9fcdce7b6932e667db714ef1d6a569bd">SlotRef</a> (const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;<a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a>, int <a class="el" href="partitioning-throughput-test_8cc.html#ad172ecfd5c31c5df6282c2b4bc322bf7">offset</a>)</td></tr>
<tr class="memdesc:a9fcdce7b6932e667db714ef1d6a569bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for testing. GetValue will return tuple + offset interpreted as 'type'. <a href="#a9fcdce7b6932e667db714ef1d6a569bd">More...</a><br/></td></tr>
<tr class="separator:a9fcdce7b6932e667db714ef1d6a569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a368561ec9db81fdb73fb7becb17633"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a7a368561ec9db81fdb73fb7becb17633">Prepare</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, const <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a> &amp;<a class="el" href="namespaceimpala.html#aa98447566dd6700a2faaaaf3059f4d95">row_desc</a>, <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context)</td></tr>
<tr class="separator:a7a368561ec9db81fdb73fb7becb17633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26cf6f37a38afbfc641c38e327ef36c1"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a26cf6f37a38afbfc641c38e327ef36c1">DebugString</a> () const </td></tr>
<tr class="separator:a26cf6f37a38afbfc641c38e327ef36c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbf95b41575fd618c1aa10e2a3a03f47"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#adbf95b41575fd618c1aa10e2a3a03f47">IsConstant</a> () const </td></tr>
<tr class="separator:adbf95b41575fd618c1aa10e2a3a03f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a991ec02d94fe4f2b7639a889bbfaa317"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a991ec02d94fe4f2b7639a889bbfaa317">GetSlotIds</a> (std::vector&lt; <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a> &gt; *slot_ids) const </td></tr>
<tr class="separator:a991ec02d94fe4f2b7639a889bbfaa317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28ed3520a8b0029f82b1398a65c97cbb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a28ed3520a8b0029f82b1398a65c97cbb">slot_id</a> () const </td></tr>
<tr class="separator:a28ed3520a8b0029f82b1398a65c97cbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10db878dd3f67c6a8544f804a403c12d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a10db878dd3f67c6a8544f804a403c12d">GetCodegendComputeFn</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, llvm::Function **fn)</td></tr>
<tr class="separator:a10db878dd3f67c6a8544f804a403c12d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac54ec7aa0ef1477acc683112c5fd9c0c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1BooleanVal.html">impala_udf::BooleanVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#ac54ec7aa0ef1477acc683112c5fd9c0c">GetBooleanVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:ac54ec7aa0ef1477acc683112c5fd9c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a861f0fb9b850eb98fdbae472140cd33b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1TinyIntVal.html">impala_udf::TinyIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a861f0fb9b850eb98fdbae472140cd33b">GetTinyIntVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a861f0fb9b850eb98fdbae472140cd33b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8a6d9ade9266037c1b3a8025ffae55c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1SmallIntVal.html">impala_udf::SmallIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#ab8a6d9ade9266037c1b3a8025ffae55c">GetSmallIntVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:ab8a6d9ade9266037c1b3a8025ffae55c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83f6b40a075642517f565fd052e3230e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1IntVal.html">impala_udf::IntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a83f6b40a075642517f565fd052e3230e">GetIntVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a83f6b40a075642517f565fd052e3230e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a497ac862be4c304b9ac46e6b533d7347"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1BigIntVal.html">impala_udf::BigIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a497ac862be4c304b9ac46e6b533d7347">GetBigIntVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a497ac862be4c304b9ac46e6b533d7347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bce4dbfd709732c9feb3571b7a09cb1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1FloatVal.html">impala_udf::FloatVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a7bce4dbfd709732c9feb3571b7a09cb1">GetFloatVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a7bce4dbfd709732c9feb3571b7a09cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11b23bfab87ad7306e06824ec52065a5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1DoubleVal.html">impala_udf::DoubleVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a11b23bfab87ad7306e06824ec52065a5">GetDoubleVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a11b23bfab87ad7306e06824ec52065a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac75e6ea640e9de68300109d52b21b4b7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1StringVal.html">impala_udf::StringVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#ac75e6ea640e9de68300109d52b21b4b7">GetStringVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:ac75e6ea640e9de68300109d52b21b4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a972213b3be9d78c4e5915af5588e0d88"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1TimestampVal.html">impala_udf::TimestampVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a972213b3be9d78c4e5915af5588e0d88">GetTimestampVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a972213b3be9d78c4e5915af5588e0d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f74847aa5f16dad5312b9f152a49f23"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1DecimalVal.html">impala_udf::DecimalVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a3f74847aa5f16dad5312b9f152a49f23">GetDecimalVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *)</td></tr>
<tr class="separator:a3f74847aa5f16dad5312b9f152a49f23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ec759518bffbb9f389f5564f6006df"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#af6ec759518bffbb9f389f5564f6006df">output_scale</a> () const </td></tr>
<tr class="separator:af6ec759518bffbb9f389f5564f6006df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae54f46c956cfe802556dffa3426550c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ae54f46c956cfe802556dffa3426550c2">AddChild</a> (<a class="el" href="classimpala_1_1Expr.html">Expr</a> *expr)</td></tr>
<tr class="separator:ae54f46c956cfe802556dffa3426550c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76778c36a9cf309813b1623e0328eedf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala_1_1Expr.html">Expr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a76778c36a9cf309813b1623e0328eedf">GetChild</a> (int i) const </td></tr>
<tr class="separator:a76778c36a9cf309813b1623e0328eedf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb1cc69285dcdd91f4c17844b7307c9d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#adb1cc69285dcdd91f4c17844b7307c9d">GetNumChildren</a> () const </td></tr>
<tr class="separator:adb1cc69285dcdd91f4c17844b7307c9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a742827844080d45d514719742cb3e7f5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a> () const </td></tr>
<tr class="separator:a742827844080d45d514719742cb3e7f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4245192bbee7b1d9e3c50bddd922bb3b"><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_1Expr.html#a4245192bbee7b1d9e3c50bddd922bb3b">is_slotref</a> () const </td></tr>
<tr class="separator:a4245192bbee7b1d9e3c50bddd922bb3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c703ec4c54d0f4fa6f3e33c41233f50"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a9c703ec4c54d0f4fa6f3e33c41233f50">children</a> () const </td></tr>
<tr class="separator:a9c703ec4c54d0f4fa6f3e33c41233f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28f2b59990e3a90b1858710ace748f5c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1AnyVal.html">AnyVal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a28f2b59990e3a90b1858710ace748f5c">GetConstVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context)</td></tr>
<tr class="separator:a28f2b59990e3a90b1858710ace748f5c"><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:a7dcd872be8cd8e5969a428cf940eea3b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a7dcd872be8cd8e5969a428cf940eea3b">CreateExprTree</a> (<a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, const TExpr &amp;texpr, <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> **ctx)</td></tr>
<tr class="separator:a7dcd872be8cd8e5969a428cf940eea3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b9c01a432ae49b57482c9fc42a73681"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a6b9c01a432ae49b57482c9fc42a73681">CreateExprTrees</a> (<a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, const std::vector&lt; TExpr &gt; &amp;texprs, std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; *ctxs)</td></tr>
<tr class="separator:a6b9c01a432ae49b57482c9fc42a73681"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ae02e50debba50ac5c7b6dd9f8016e7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a3ae02e50debba50ac5c7b6dd9f8016e7">Prepare</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs, <a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, const <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a> &amp;<a class="el" href="namespaceimpala.html#aa98447566dd6700a2faaaaf3059f4d95">row_desc</a>, <a class="el" href="classimpala_1_1MemTracker.html">MemTracker</a> *<a class="el" href="expr-benchmark_8cc.html#ad327327fa716227ff7993880cbc4698f">tracker</a>)</td></tr>
<tr class="separator:a3ae02e50debba50ac5c7b6dd9f8016e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad1111f87951868de4d8f8b2dfe87c5f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#aad1111f87951868de4d8f8b2dfe87c5f">Open</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs, <a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state)</td></tr>
<tr class="memdesc:aad1111f87951868de4d8f8b2dfe87c5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function for opening multiple expr trees. <a href="#aad1111f87951868de4d8f8b2dfe87c5f">More...</a><br/></td></tr>
<tr class="separator:aad1111f87951868de4d8f8b2dfe87c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0704c1c17503f48ab89f0d05dc658a2d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a0704c1c17503f48ab89f0d05dc658a2d">Clone</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs, <a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; *new_ctxs)</td></tr>
<tr class="separator:a0704c1c17503f48ab89f0d05dc658a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70300b0ba7c91fddb9adfaeb0dfc09a5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a70300b0ba7c91fddb9adfaeb0dfc09a5">Close</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs, <a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state)</td></tr>
<tr class="memdesc:a70300b0ba7c91fddb9adfaeb0dfc09a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function for closing multiple expr trees. <a href="#a70300b0ba7c91fddb9adfaeb0dfc09a5">More...</a><br/></td></tr>
<tr class="separator:a70300b0ba7c91fddb9adfaeb0dfc09a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6d0f18b68cd71bd9f2c208163117529"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Expr.html">Expr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#af6d0f18b68cd71bd9f2c208163117529">CreateLiteral</a> (<a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;<a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a>, void *data)</td></tr>
<tr class="separator:af6d0f18b68cd71bd9f2c208163117529"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb64080075f454d596f0022d82642ab7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classimpala_1_1Expr.html">Expr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#adb64080075f454d596f0022d82642ab7">CreateLiteral</a> (<a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;<a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a>, const std::string &amp;)</td></tr>
<tr class="separator:adb64080075f454d596f0022d82642ab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a153fedc59ca9f5b5cf350b815381b999"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a153fedc59ca9f5b5cf350b815381b999">ComputeResultsLayout</a> (const std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt; &amp;exprs, std::vector&lt; int &gt; *offsets, int *var_result_begin)</td></tr>
<tr class="separator:a153fedc59ca9f5b5cf350b815381b999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d61d761811ce034ea129158fd5436dc"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a7d61d761811ce034ea129158fd5436dc">ComputeResultsLayout</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs, std::vector&lt; int &gt; *offsets, int *var_result_begin)</td></tr>
<tr class="separator:a7d61d761811ce034ea129158fd5436dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8add6d9e3cb760f6e76a7ec032085da9"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a8add6d9e3cb760f6e76a7ec032085da9">DebugString</a> (const std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt; &amp;exprs)</td></tr>
<tr class="separator:a8add6d9e3cb760f6e76a7ec032085da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a594418cfe74439ae4fb337ca910f78bc"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a594418cfe74439ae4fb337ca910f78bc">DebugString</a> (const std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; &amp;ctxs)</td></tr>
<tr class="separator:a594418cfe74439ae4fb337ca910f78bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb1c9ed033cb9b8ec3cd40557e840d11"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#adb1c9ed033cb9b8ec3cd40557e840d11">InitBuiltinsDummy</a> ()</td></tr>
<tr class="separator:adb1c9ed033cb9b8ec3cd40557e840d11"><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:ad290be216bb08202ca551b078e0cc6a7"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ad290be216bb08202ca551b078e0cc6a7">LLVM_CLASS_NAME</a> = &quot;class.impala::Expr&quot;</td></tr>
<tr class="separator:ad290be216bb08202ca551b078e0cc6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ac7bb5173962798d058546becc0d385e4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ac7bb5173962798d058546becc0d385e4">Open</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala__udf_1_1FunctionContext.html#a1e9662a1bbb78daa9923b47412347ffc">FunctionContext::FunctionStateScope</a> scope=FunctionContext::FRAGMENT_LOCAL)</td></tr>
<tr class="separator:ac7bb5173962798d058546becc0d385e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6842f44cb3b73ccbc86edc23a5b5e223"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a6842f44cb3b73ccbc86edc23a5b5e223">Close</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala__udf_1_1FunctionContext.html#a1e9662a1bbb78daa9923b47412347ffc">FunctionContext::FunctionStateScope</a> scope=FunctionContext::FRAGMENT_LOCAL)</td></tr>
<tr class="memdesc:a6842f44cb3b73ccbc86edc23a5b5e223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclasses overriding this function should call <a class="el" href="classimpala_1_1Expr.html#a70300b0ba7c91fddb9adfaeb0dfc09a5" title="Convenience function for closing multiple expr trees. ">Expr::Close()</a>. <a href="#a6842f44cb3b73ccbc86edc23a5b5e223">More...</a><br/></td></tr>
<tr class="separator:a6842f44cb3b73ccbc86edc23a5b5e223"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e94656d87498fce476dc90e260568fe"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a4e94656d87498fce476dc90e260568fe">DebugString</a> (const std::string &amp;expr_name) const </td></tr>
<tr class="memdesc:a4e94656d87498fce476dc90e260568fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple debug string that provides no expr subclass-specific information. <a href="#a4e94656d87498fce476dc90e260568fe">More...</a><br/></td></tr>
<tr class="separator:a4e94656d87498fce476dc90e260568fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace97c478e9b659f3fcd20d38cf67bc05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ace97c478e9b659f3fcd20d38cf67bc05">RegisterFunctionContext</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *ctx, <a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, int varargs_buffer_size=0)</td></tr>
<tr class="separator:ace97c478e9b659f3fcd20d38cf67bc05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3e45d82c48ae9711ae980c414db414e"><td class="memItemLeft" align="right" valign="top">llvm::Function *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#af3e45d82c48ae9711ae980c414db414e">CreateIrFunctionPrototype</a> (<a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> *codegen, const std::string &amp;<a class="el" href="namespaceimpala.html#aaebb9aadfa9e5aec064bc26565df06d3">name</a>, llvm::Value *(*args)[2])</td></tr>
<tr class="separator:af3e45d82c48ae9711ae980c414db414e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6fe3332793fe61ef3566f87b4e34744"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ac6fe3332793fe61ef3566f87b4e34744">GetCodegendComputeFnWrapper</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, llvm::Function **fn)</td></tr>
<tr class="separator:ac6fe3332793fe61ef3566f87b4e34744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc26ca9c44c3caaff2cd7d7e4f66752e"><td class="memItemLeft" align="right" valign="top">llvm::Function *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#adc26ca9c44c3caaff2cd7d7e4f66752e">GetStaticGetValWrapper</a> (<a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> <a class="el" href="classimpala_1_1Expr.html#a742827844080d45d514719742cb3e7f5">type</a>, <a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> *codegen)</td></tr>
<tr class="separator:adc26ca9c44c3caaff2cd7d7e4f66752e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a9addb94bec8720bbfb09af9a07256f99"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a9addb94bec8720bbfb09af9a07256f99">tuple_idx_</a></td></tr>
<tr class="separator:a9addb94bec8720bbfb09af9a07256f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa757b04302a50aaa5dc88c203f7ce046"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#aa757b04302a50aaa5dc88c203f7ce046">slot_offset_</a></td></tr>
<tr class="separator:aa757b04302a50aaa5dc88c203f7ce046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1402eaf84972d448bbb71565209b17b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structimpala_1_1NullIndicatorOffset.html">NullIndicatorOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a1402eaf84972d448bbb71565209b17b5">null_indicator_offset_</a></td></tr>
<tr class="separator:a1402eaf84972d448bbb71565209b17b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46fa1a1e16a6ecbc1c8f2aebc954c718"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1SlotRef.html#a46fa1a1e16a6ecbc1c8f2aebc954c718">slot_id_</a></td></tr>
<tr class="separator:a46fa1a1e16a6ecbc1c8f2aebc954c718"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae695e7552705927e5446823170d9ba98"><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_1SlotRef.html#ae695e7552705927e5446823170d9ba98">tuple_is_nullable_</a></td></tr>
<tr class="separator:ae695e7552705927e5446823170d9ba98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee18bd1a0006e802df30b9c960d36cb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structLibCache_1_1LibCacheEntry.html">LibCache::LibCacheEntry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#aee18bd1a0006e802df30b9c960d36cb3">cache_entry_</a></td></tr>
<tr class="memdesc:aee18bd1a0006e802df30b9c960d36cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cache entry for the library implementing this function. <a href="#aee18bd1a0006e802df30b9c960d36cb3">More...</a><br/></td></tr>
<tr class="separator:aee18bd1a0006e802df30b9c960d36cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51d9f91210952a0ae23dcbbdc2700dcc"><td class="memItemLeft" align="right" valign="top">TFunction&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a51d9f91210952a0ae23dcbbdc2700dcc">fn_</a></td></tr>
<tr class="memdesc:a51d9f91210952a0ae23dcbbdc2700dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function description. <a href="#a51d9f91210952a0ae23dcbbdc2700dcc">More...</a><br/></td></tr>
<tr class="separator:a51d9f91210952a0ae23dcbbdc2700dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9b41baf7878f4ec552ae68cb3a60be0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#af9b41baf7878f4ec552ae68cb3a60be0">is_slotref_</a></td></tr>
<tr class="memdesc:af9b41baf7878f4ec552ae68cb3a60be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">recognize if this node is a slotref in order to speed up GetValue() <a href="#af9b41baf7878f4ec552ae68cb3a60be0">More...</a><br/></td></tr>
<tr class="separator:af9b41baf7878f4ec552ae68cb3a60be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a704e9ee9339f503f27b0af463f6c97cf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a704e9ee9339f503f27b0af463f6c97cf">type_</a></td></tr>
<tr class="memdesc:a704e9ee9339f503f27b0af463f6c97cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">analysis is done, types are fixed at this point <a href="#a704e9ee9339f503f27b0af463f6c97cf">More...</a><br/></td></tr>
<tr class="separator:a704e9ee9339f503f27b0af463f6c97cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e7e99daf641ad9ee2881bb673f62a3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a84e7e99daf641ad9ee2881bb673f62a3">children_</a></td></tr>
<tr class="separator:a84e7e99daf641ad9ee2881bb673f62a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58166a4b77bf9f3834c5380630496a17"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a58166a4b77bf9f3834c5380630496a17">output_scale_</a></td></tr>
<tr class="separator:a58166a4b77bf9f3834c5380630496a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e97382f249d8a076454dca5eedc441b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a0e97382f249d8a076454dca5eedc441b">context_index_</a></td></tr>
<tr class="separator:a0e97382f249d8a076454dca5eedc441b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b323bdf9af6616080d30d4fbabc6fc"><td class="memItemLeft" align="right" valign="top">llvm::Function *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#ac1b323bdf9af6616080d30d4fbabc6fc">ir_compute_fn_</a></td></tr>
<tr class="memdesc:ac1b323bdf9af6616080d30d4fbabc6fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cached codegened compute function. Exprs should set this in <a class="el" href="classimpala_1_1Expr.html#a3f3fde78dfcf00d2d68bc93d52ef8b11">GetCodegendComputeFn()</a>. <a href="#ac1b323bdf9af6616080d30d4fbabc6fc">More...</a><br/></td></tr>
<tr class="separator:ac1b323bdf9af6616080d30d4fbabc6fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed93f651b667662d8f359de18cd883a6"><td class="memItemLeft" align="right" valign="top">boost::scoped_ptr&lt; <a class="el" href="structimpala__udf_1_1AnyVal.html">AnyVal</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#aed93f651b667662d8f359de18cd883a6">constant_val_</a></td></tr>
<tr class="separator:aed93f651b667662d8f359de18cd883a6"><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>Reference to a single slot of a tuple. </p>
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00023">23</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae9f8ad9bf165e9ba009b6bc132f7e365"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">impala::SlotRef::SlotRef </td>
<td>(</td>
<td class="paramtype">const TExprNode &amp;&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00031">31</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
</div>
</div>
<a class="anchor" id="a0b299ae6a67307b90c9889e10dbc69d0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">impala::SlotRef::SlotRef </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00039">39</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
</div>
</div>
<a class="anchor" id="a455237934aa89a5cd07e3d74c3051c98"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">impala::SlotRef::SlotRef </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;&#160;</td>
<td class="paramname"><em>type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>TODO: this is a hack to allow aggregation nodes to work around NULL slot descriptors. Ideally the FE would dictate the type of the intermediate SlotRefs. </p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00047">47</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
</div>
</div>
<a class="anchor" id="a9fcdce7b6932e667db714ef1d6a569bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">impala::SlotRef::SlotRef </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Used for testing. GetValue will return tuple + offset interpreted as 'type'. </p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00055">55</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ae54f46c956cfe802556dffa3426550c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void impala::Expr::AddChild </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1Expr.html">Expr</a> *&#160;</td>
<td class="paramname"><em>expr</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00141">141</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00160">impala::Expr::CreateTreeFromThrift()</a>.</p>
</div>
</div>
<a class="anchor" id="a9c703ec4c54d0f4fa6f3e33c41233f50"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;<a class="el" href="classimpala_1_1Expr.html">Expr</a>*&gt;&amp; impala::Expr::children </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00148">148</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00290">impala::CaseExpr::GetChildVal()</a>, and <a class="el" href="case-expr_8cc_source.html#l00179">impala::CaseExpr::GetCodegendComputeFn()</a>.</p>
</div>
</div>
<a class="anchor" id="a0704c1c17503f48ab89f0d05dc658a2d"></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="classimpala_1_1Status.html">Status</a> Expr::Clone </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>ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; *&#160;</td>
<td class="paramname"><em>new_ctxs</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clones each <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> for multiple expr trees. 'new_ctxs' should be an empty vector, and a clone of each context in 'ctxs' will be added to it. The new ExprContexts are created in state-&gt;<a class="el" href="namespaceimpala.html#a6bf80cb1d633d79570ccf617684439b1" title="Returns a local object pool. ">obj_pool()</a>. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00374">374</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, and <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>.</p>
<p>Referenced by <a class="el" href="hdfs-scan-node_8cc_source.html#l00692">impala::HdfsScanNode::GetConjunctCtxs()</a>, and <a class="el" href="sort-exec-exprs_8cc_source.html#l00053">impala::SortExecExprs::Open()</a>.</p>
</div>
</div>
<a class="anchor" id="a70300b0ba7c91fddb9adfaeb0dfc09a5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void impala::Expr::Close </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>ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience function for closing multiple expr trees. </p>
<p>Referenced by <a class="el" href="union-node_8cc_source.html#l00186">impala::UnionNode::Close()</a>, <a class="el" href="sort-exec-exprs_8cc_source.html#l00062">impala::SortExecExprs::Close()</a>, <a class="el" href="case-expr_8cc_source.html#l00070">impala::CaseExpr::Close()</a>, <a class="el" href="hash-join-node_8cc_source.html#l00145">impala::HashJoinNode::Close()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00278">impala::AggregationNode::Close()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00198">impala::ScalarFnCall::Close()</a>, <a class="el" href="expr-context_8cc_source.html#l00067">impala::ExprContext::Close()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00232">impala::HiveUdfCall::Close()</a>, <a class="el" href="partitioned-hash-join-node_8cc_source.html#l00192">impala::PartitionedHashJoinNode::Close()</a>, <a class="el" href="data-stream-sender_8cc_source.html#l00450">impala::DataStreamSender::Close()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00380">impala::PartitionedAggregationNode::Close()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00227">impala::AggFnEvaluator::Close()</a>, <a class="el" href="hdfs-scanner_8cc_source.html#l00082">impala::HdfsScanner::Close()</a>, <a class="el" href="exec-node_8cc_source.html#l00166">impala::ExecNode::Close()</a>, <a class="el" href="hdfs-scan-node_8cc_source.html#l00622">impala::HdfsScanNode::Close()</a>, <a class="el" href="hdfs-table-sink_8cc_source.html#l00602">impala::HdfsTableSink::Close()</a>, <a class="el" href="descriptors_8cc_source.html#l00151">impala::HdfsPartitionDescriptor::CloseExprs()</a>, <a class="el" href="query-exec-state_8cc_source.html#l00489">impala::ImpalaServer::QueryExecState::Done()</a>, <a class="el" href="old-hash-table-test_8cc_source.html#l00071">impala::OldHashTableTest::TearDown()</a>, and <a class="el" href="hash-table-test_8cc_source.html#l00071">impala::HashTableTest::TearDown()</a>.</p>
</div>
</div>
<a class="anchor" id="a6842f44cb3b73ccbc86edc23a5b5e223"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Expr::Close </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1FunctionContext.html#a1e9662a1bbb78daa9923b47412347ffc">FunctionContext::FunctionStateScope</a>&#160;</td>
<td class="paramname"><em>scope</em> = <code>FunctionContext::FRAGMENT_LOCAL</code>&#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">protected</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subclasses overriding this function should call <a class="el" href="classimpala_1_1Expr.html#a70300b0ba7c91fddb9adfaeb0dfc09a5" title="Convenience function for closing multiple expr trees. ">Expr::Close()</a>. </p>
<p>If scope if FRAGMENT_LOCAL, both fragment- and thread-local state should be torn down. Otherwise, if scope is THREAD_LOCAL, only thread-local state should be torn down. </p>
<p>Reimplemented in <a class="el" href="classimpala_1_1HiveUdfCall.html#a7f383ec898db11eef3dbd83aad1d63b5">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#a0fc584c43f8a682c3ce79afa0ffa11f9">impala::ScalarFnCall</a>, and <a class="el" href="classimpala_1_1CaseExpr.html#a05a522b5a62a2d42a9a94c81123afcaa">impala::CaseExpr</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00114">114</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="expr_8h_source.html#l00281">impala::Expr::cache_entry_</a>, <a class="el" href="expr_8h_source.html#l00290">impala::Expr::children_</a>, <a class="el" href="lib-cache_8cc_source.html#l00170">impala::LibCache::DecrementUseCount()</a>, and <a class="el" href="lib-cache_8h_source.html#l00063">impala::LibCache::instance()</a>.</p>
</div>
</div>
<a class="anchor" id="a153fedc59ca9f5b5cf350b815381b999"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int impala::Expr::ComputeResultsLayout </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>exprs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>offsets</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>var_result_begin</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes a memory efficient layout for storing the results of evaluating 'exprs' Returns the number of bytes necessary to store all the results and offsets where the result for each expr should be stored. Variable length types are guaranteed to be at the end and 'var_result_begin' will be set the beginning byte offset where variable length results begin. 'var_result_begin' will be set to -1 if there are no variable len types. </p>
<p>Referenced by <a class="el" href="hash-table_8cc_source.html#l00083">impala::HashTableCtx::HashTableCtx()</a>, and <a class="el" href="old-hash-table_8cc_source.html#l00054">impala::OldHashTable::OldHashTable()</a>.</p>
</div>
</div>
<a class="anchor" id="a7d61d761811ce034ea129158fd5436dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int impala::Expr::ComputeResultsLayout </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>ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>offsets</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>var_result_begin</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7dcd872be8cd8e5969a428cf940eea3b"></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="classimpala_1_1Status.html">Status</a> Expr::CreateExprTree </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TExpr &amp;&#160;</td>
<td class="paramname"><em>texpr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> **&#160;</td>
<td class="paramname"><em>ctx</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create expression tree from the list of nodes contained in texpr within 'pool'. Returns the root of expression tree in 'expr' and the corresponding <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> in 'ctx'. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00129">129</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="expr_8cc_source.html#l00160">impala::Expr::CreateTreeFromThrift()</a>, <a class="el" href="status_8cc_source.html#l00184">impala::Status::GetDetail()</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, and <a class="el" href="status_8h_source.html#l00172">impala::Status::ok()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00149">impala::Expr::CreateExprTrees()</a>, <a class="el" href="descriptors_8cc_source.html#l00109">impala::HdfsPartitionDescriptor::HdfsPartitionDescriptor()</a>, <a class="el" href="hash-join-node_8cc_source.html#l00062">impala::HashJoinNode::Init()</a>, <a class="el" href="analytic-eval-node_8cc_source.html#l00094">impala::AnalyticEvalNode::Init()</a>, <a class="el" href="partitioned-hash-join-node_8cc_source.html#l00066">impala::PartitionedHashJoinNode::Init()</a>, and <a class="el" href="fe-support_8cc_source.html#l00072">Java_com_cloudera_impala_service_FeSupport_NativeEvalConstExprs()</a>.</p>
</div>
</div>
<a class="anchor" id="a6b9c01a432ae49b57482c9fc42a73681"></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="classimpala_1_1Status.html">Status</a> Expr::CreateExprTrees </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; TExpr &gt; &amp;&#160;</td>
<td class="paramname"><em>texprs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> * &gt; *&#160;</td>
<td class="paramname"><em>ctxs</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates vector of ExprContexts containing exprs from the given vector of TExprs within 'pool'. Returns an error if any of the individual conversions caused an error, otherwise OK. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00149">149</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="expr_8cc_source.html#l00129">impala::Expr::CreateExprTree()</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, and <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>.</p>
<p>Referenced by <a class="el" href="data-stream-sender_8cc_source.html#l00310">impala::DataStreamSender::DataStreamSender()</a>, <a class="el" href="union-node_8cc_source.html#l00038">impala::UnionNode::Init()</a>, <a class="el" href="hash-join-node_8cc_source.html#l00062">impala::HashJoinNode::Init()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00072">impala::AggregationNode::Init()</a>, <a class="el" href="exec-node_8cc_source.html#l00124">impala::ExecNode::Init()</a>, <a class="el" href="partitioned-hash-join-node_8cc_source.html#l00066">impala::PartitionedHashJoinNode::Init()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00082">impala::PartitionedAggregationNode::Init()</a>, <a class="el" href="hdfs-scan-node_8cc_source.html#l00304">impala::HdfsScanNode::Prepare()</a>, and <a class="el" href="hdfs-table-sink_8cc_source.html#l00107">impala::HdfsTableSink::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="af3e45d82c48ae9711ae980c414db414e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Function * Expr::CreateIrFunctionPrototype </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> *&#160;</td>
<td class="paramname"><em>codegen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">llvm::Value *(*)&#160;</td>
<td class="paramname"><em>args</em>[2]&#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">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function to create an empty Function* with the appropriate signature to be returned by <a class="el" href="classimpala_1_1Expr.html#a3f3fde78dfcf00d2d68bc93d52ef8b11">GetCodegendComputeFn()</a>. 'name' is the name of the returned Function*. The arguments to the function are returned in 'args'. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00456">456</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="llvm-codegen_8h_source.html#l00171">impala::LlvmCodeGen::FnPrototype::AddArgument()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00460">impala::LlvmCodeGen::FnPrototype::GeneratePrototype()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00034">impala::CodegenAnyVal::GetLoweredType()</a>, <a class="el" href="classimpala_1_1LlvmCodeGen.html#a5766c2be69b2d39dbcdbbd5669ab3310">impala::LlvmCodeGen::GetPtrType()</a>, <a class="el" href="tuple-row_8h_source.html#l00076">impala::TupleRow::LLVM_CLASS_NAME</a>, <a class="el" href="expr-context_8h_source.html#l00126">impala::ExprContext::LLVM_CLASS_NAME</a>, and <a class="el" href="expr_8h_source.html#l00145">impala::Expr::type()</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00179">impala::CaseExpr::GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="literal_8cc_source.html#l00356">impala::Literal::GetCodegendComputeFn()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, and <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</a>.</p>
</div>
</div>
<a class="anchor" id="af6d0f18b68cd71bd9f2c208163117529"></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_1Expr.html">Expr</a>* impala::Expr::CreateLiteral </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new literal expr of 'type' with initial 'data'. data should match the <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> (i.e. type == TYPE_INT, data is a int*) The new <a class="el" href="classimpala_1_1Expr.html" title="This is the superclass of all expr evaluation nodes. ">Expr</a> will be allocated from the pool. </p>
</div>
</div>
<a class="anchor" id="adb64080075f454d596f0022d82642ab7"></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_1Expr.html">Expr</a>* impala::Expr::CreateLiteral </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> &amp;&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname">&#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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new literal expr of 'type' by parsing the string. NULL will be returned if the string and type are not compatible. The new <a class="el" href="classimpala_1_1Expr.html" title="This is the superclass of all expr evaluation nodes. ">Expr</a> will be allocated from the pool. </p>
</div>
</div>
<a class="anchor" id="a26cf6f37a38afbfc641c38e327ef36c1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">string impala::SlotRef::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#ab8ae88546f4ce923b4d187e0d7d96fa8">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00104">104</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="expr_8cc_source.html#l00385">impala::Expr::DebugString()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00059">slot_id_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, and <a class="el" href="slot-ref_8h_source.html#l00060">tuple_is_nullable_</a>.</p>
</div>
</div>
<a class="anchor" id="a8add6d9e3cb760f6e76a7ec032085da9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::string impala::Expr::DebugString </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classimpala_1_1Expr.html">Expr</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>exprs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a594418cfe74439ae4fb337ca910f78bc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::string impala::Expr::DebugString </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>ctxs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4e94656d87498fce476dc90e260568fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string impala::Expr::DebugString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>expr_name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Simple debug string that provides no expr subclass-specific information. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00332">332</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>References <a class="el" href="udf-debug_8h_source.html#l00027">impala_udf::DebugString()</a>.</p>
</div>
</div>
<a class="anchor" id="a497ac862be4c304b9ac46e6b533d7347"></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__udf_1_1BigIntVal.html">BigIntVal</a> impala::SlotRef::GetBigIntVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#abcfd8c3c50142f4b03ebea0a4589530f">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00399">399</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>.</p>
</div>
</div>
<a class="anchor" id="ac54ec7aa0ef1477acc683112c5fd9c0c"></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__udf_1_1BooleanVal.html">BooleanVal</a> impala::SlotRef::GetBooleanVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Virtual compute functions for each *Val type. Each <a class="el" href="classimpala_1_1Expr.html" title="This is the superclass of all expr evaluation nodes. ">Expr</a> subclass should implement the functions for the return type(s) it supports. For example, a boolean function will only implement <a class="el" href="classimpala_1_1SlotRef.html#ac54ec7aa0ef1477acc683112c5fd9c0c">GetBooleanVal()</a>. Some Exprs, like <a class="el" href="classimpala_1_1Literal.html">Literal</a>, have many possible return types and will implement multiple Get*Val() functions. </p>
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a89a9dd55e95db53685a7bb6dfd4a8dbb">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00371">371</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00030">impala::TYPE_BOOLEAN</a>.</p>
</div>
</div>
<a class="anchor" id="a76778c36a9cf309813b1623e0328eedf"></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="classimpala_1_1Expr.html">Expr</a>* impala::Expr::GetChild </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00142">142</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, and <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a10db878dd3f67c6a8544f804a403c12d"></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="classimpala_1_1Status.html">Status</a> impala::SlotRef::GetCodegendComputeFn </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">llvm::Function **&#160;</td>
<td class="paramname"><em>fn</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an llvm::Function* with signature: &lt;subclass of="" anyval&gt;=""&gt; ComputeFn(ExprContext* context, TupleRow* row) The function should evaluate this expr over 'row' and return the result as the appropriate type of AnyVal. </p>
<p>Implements <a class="el" href="classimpala_1_1Expr.html#a3f3fde78dfcf00d2d68bc93d52ef8b11">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00155">155</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="descriptors_8h_source.html#l00063">impala::NullIndicatorOffset::bit_mask</a>, <a class="el" href="descriptors_8h_source.html#l00062">impala::NullIndicatorOffset::byte_offset</a>, <a class="el" href="llvm-codegen_8h_source.html#l00214">impala::LlvmCodeGen::context()</a>, <a class="el" href="expr_8cc_source.html#l00456">impala::Expr::CreateIrFunctionPrototype()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00596">impala::LlvmCodeGen::FinalizeFunction()</a>, <a class="el" href="runtime-state_8cc_source.html#l00312">impala::RuntimeState::GetCodegen()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00674">impala::CodegenAnyVal::GetNonNullVal()</a>, <a class="el" href="expr_8h_source.html#l00143">impala::Expr::GetNumChildren()</a>, <a class="el" href="classimpala_1_1LlvmCodeGen.html#a5766c2be69b2d39dbcdbbd5669ab3310">impala::LlvmCodeGen::GetPtrType()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00231">impala::LlvmCodeGen::GetRegisteredExprFn()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00312">impala::LlvmCodeGen::GetType()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00388">impala::LlvmCodeGen::int_type()</a>, <a class="el" href="expr_8h_source.html#l00299">impala::Expr::ir_compute_fn_</a>, <a class="el" href="types_8h_source.html#l00168">impala::ColumnType::IsStringType()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="llvm-codegen_8h_source.html#l00393">impala::LlvmCodeGen::ptr_type()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00224">impala::LlvmCodeGen::RegisterExprFn()</a>, <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00437">impala::CodegenAnyVal::SetDate()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00209">impala::CodegenAnyVal::SetIsNull()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00410">impala::CodegenAnyVal::SetLen()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00404">impala::CodegenAnyVal::SetPtr()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00431">impala::CodegenAnyVal::SetTimeOfDay()</a>, <a class="el" href="classimpala_1_1CodegenAnyVal.html#ad3ac66befb2e60c50c1e0e006f5ae2bc">impala::CodegenAnyVal::SetVal()</a>, <a class="el" href="slot-ref_8h_source.html#l00059">slot_id_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="llvm-codegen_8h_source.html#l00386">impala::LlvmCodeGen::tinyint_type()</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="slot-ref_8h_source.html#l00060">tuple_is_nullable_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00145">impala::Expr::type()</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>, <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>, <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>, <a class="el" href="types_8h_source.html#l00037">impala::TYPE_TIMESTAMP</a>, <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>, and <a class="el" href="codegen-anyval_8h_source.html#l00135">impala::CodegenAnyVal::value()</a>.</p>
</div>
</div>
<a class="anchor" id="ac6fe3332793fe61ef3566f87b4e34744"></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="classimpala_1_1Status.html">Status</a> Expr::GetCodegendComputeFnWrapper </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">llvm::Function **&#160;</td>
<td class="paramname"><em>fn</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">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates an IR compute function that calls the appropriate interpreted Get*Val() compute function. This is useful for builtins that can't be implemented with the UDF interface (e.g. functions that need short-circuiting) and that don't have custom codegen functions that use the IRBuilder. It doesn't provide any performance benefit over the interpreted path. TODO: this should be replaced with fancier xcompiling infrastructure </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00546">546</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="llvm-codegen_8cc_source.html#l00366">impala::LlvmCodeGen::CastPtrToLlvmPtr()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00214">impala::LlvmCodeGen::context()</a>, <a class="el" href="codegen-anyval_8cc_source.html#l00116">impala::CodegenAnyVal::CreateCall()</a>, <a class="el" href="expr_8cc_source.html#l00456">impala::Expr::CreateIrFunctionPrototype()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00596">impala::LlvmCodeGen::FinalizeFunction()</a>, <a class="el" href="runtime-state_8cc_source.html#l00312">impala::RuntimeState::GetCodegen()</a>, <a class="el" href="classimpala_1_1LlvmCodeGen.html#a5766c2be69b2d39dbcdbbd5669ab3310">impala::LlvmCodeGen::GetPtrType()</a>, <a class="el" href="expr_8cc_source.html#l00426">impala::Expr::GetStaticGetValWrapper()</a>, <a class="el" href="expr_8h_source.html#l00299">impala::Expr::ir_compute_fn_</a>, <a class="el" href="expr_8h_source.html#l00232">impala::Expr::LLVM_CLASS_NAME</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>, and <a class="el" href="expr_8h_source.html#l00145">impala::Expr::type()</a>.</p>
<p>Referenced by <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00060">impala::TupleIsNullPredicate::GetCodegendComputeFn()</a>, and <a class="el" href="hive-udf-call_8cc_source.html#l00271">impala::HiveUdfCall::GetCodegendComputeFn()</a>.</p>
</div>
</div>
<a class="anchor" id="a28f2b59990e3a90b1858710ace748f5c"></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__udf_1_1AnyVal.html">AnyVal</a> * Expr::GetConstVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If this expr is constant, evaluates the expr with no input row argument and returns the output. Returns NULL if the argument is not constant. The returned AnyVal* is owned by this expr. This should only be called after <a class="el" href="classimpala_1_1Expr.html#aad1111f87951868de4d8f8b2dfe87c5f" title="Convenience function for opening multiple expr trees. ">Open()</a> has been called on this expr. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00491">491</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="expr_8h_source.html#l00303">impala::Expr::constant_val_</a>, <a class="el" href="expr_8cc_source.html#l00589">impala::Expr::GetBigIntVal()</a>, <a class="el" href="expr_8cc_source.html#l00573">impala::Expr::GetBooleanVal()</a>, <a class="el" href="expr_8cc_source.html#l00609">impala::Expr::GetDecimalVal()</a>, <a class="el" href="expr_8cc_source.html#l00597">impala::Expr::GetDoubleVal()</a>, <a class="el" href="expr_8cc_source.html#l00593">impala::Expr::GetFloatVal()</a>, <a class="el" href="expr_8cc_source.html#l00585">impala::Expr::GetIntVal()</a>, <a class="el" href="expr_8cc_source.html#l00581">impala::Expr::GetSmallIntVal()</a>, <a class="el" href="expr_8cc_source.html#l00601">impala::Expr::GetStringVal()</a>, <a class="el" href="expr_8cc_source.html#l00605">impala::Expr::GetTimestampVal()</a>, <a class="el" href="expr_8cc_source.html#l00577">impala::Expr::GetTinyIntVal()</a>, <a class="el" href="expr_8cc_source.html#l00411">impala::Expr::IsConstant()</a>, <a class="el" href="expr-context_8h_source.html#l00156">impala::ExprContext::opened_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00145">impala::Expr::type()</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>, <a class="el" href="types_8h_source.html#l00030">impala::TYPE_BOOLEAN</a>, <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>, <a class="el" href="types_8h_source.html#l00042">impala::TYPE_DECIMAL</a>, <a class="el" href="types_8h_source.html#l00036">impala::TYPE_DOUBLE</a>, <a class="el" href="types_8h_source.html#l00035">impala::TYPE_FLOAT</a>, <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>, <a class="el" href="types_8h_source.html#l00032">impala::TYPE_SMALLINT</a>, <a class="el" href="types_8h_source.html#l00038">impala::TYPE_STRING</a>, <a class="el" href="types_8h_source.html#l00037">impala::TYPE_TIMESTAMP</a>, <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>, and <a class="el" href="types_8h_source.html#l00048">impala::TYPE_VARCHAR</a>.</p>
<p>Referenced by <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>.</p>
</div>
</div>
<a class="anchor" id="a3f74847aa5f16dad5312b9f152a49f23"></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__udf_1_1DecimalVal.html">DecimalVal</a> impala::SlotRef::GetDecimalVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a973505caac0fffab99e25ee73cd87ae2">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00446">446</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="types_8h_source.html#l00178">impala::ColumnType::GetByteSize()</a>, <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00042">impala::TYPE_DECIMAL</a>.</p>
</div>
</div>
<a class="anchor" id="a11b23bfab87ad7306e06824ec52065a5"></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__udf_1_1DoubleVal.html">DoubleVal</a> impala::SlotRef::GetDoubleVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a996c4f504867963b8a461cd2c713e3c2">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00413">413</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00036">impala::TYPE_DOUBLE</a>.</p>
</div>
</div>
<a class="anchor" id="a7bce4dbfd709732c9feb3571b7a09cb1"></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__udf_1_1FloatVal.html">FloatVal</a> impala::SlotRef::GetFloatVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a80811ee6389ccb243eef2356c15c1206">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00406">406</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00035">impala::TYPE_FLOAT</a>.</p>
</div>
</div>
<a class="anchor" id="a83f6b40a075642517f565fd052e3230e"></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__udf_1_1IntVal.html">IntVal</a> impala::SlotRef::GetIntVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#afe35445295d8cad09b0fd56bc3016e7f">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00392">392</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>.</p>
</div>
</div>
<a class="anchor" id="adb1cc69285dcdd91f4c17844b7307c9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::Expr::GetNumChildren </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00143">143</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, <a class="el" href="case-expr_8cc_source.html#l00179">impala::CaseExpr::GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="literal_8cc_source.html#l00356">impala::Literal::GetCodegendComputeFn()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, and <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a991ec02d94fe4f2b7639a889bbfaa317"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::SlotRef::GetSlotIds </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a> &gt; *&#160;</td>
<td class="paramname"><em>slot_ids</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the slots that are referenced by this expr tree in 'slot_ids'. Returns the number of slots added to the vector </p>
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a6f42f36538e523852367b29eea5b4e68">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00099">99</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="slot-ref_8h_source.html#l00059">slot_id_</a>.</p>
</div>
</div>
<a class="anchor" id="ab8a6d9ade9266037c1b3a8025ffae55c"></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__udf_1_1SmallIntVal.html">SmallIntVal</a> impala::SlotRef::GetSmallIntVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a4d8dd3e1e7a9b05cd94ef7d52bbd4ac2">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00385">385</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00032">impala::TYPE_SMALLINT</a>.</p>
</div>
</div>
<a class="anchor" id="adc26ca9c44c3caaff2cd7d7e4f66752e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Function * Expr::GetStaticGetValWrapper </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a>&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> *&#160;</td>
<td class="paramname"><em>codegen</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">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the IR version of the static Get*Val() wrapper function corresponding to 'type'. This is used for calling interpreted Get*Val() functions from codegen'd functions (e.g. in <a class="el" href="classimpala_1_1Expr.html#a0c56d835d5fc23e983bd00ce38c8d616">ScalarFnCall()</a> when codegen is disabled). </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00426">426</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="types_8cc_source.html#l00194">impala::ColumnType::DebugString()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00421">impala::LlvmCodeGen::GetFunction()</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>, <a class="el" href="types_8h_source.html#l00030">impala::TYPE_BOOLEAN</a>, <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>, <a class="el" href="types_8h_source.html#l00042">impala::TYPE_DECIMAL</a>, <a class="el" href="types_8h_source.html#l00036">impala::TYPE_DOUBLE</a>, <a class="el" href="types_8h_source.html#l00035">impala::TYPE_FLOAT</a>, <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>, <a class="el" href="types_8h_source.html#l00032">impala::TYPE_SMALLINT</a>, <a class="el" href="types_8h_source.html#l00038">impala::TYPE_STRING</a>, <a class="el" href="types_8h_source.html#l00037">impala::TYPE_TIMESTAMP</a>, <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>, and <a class="el" href="types_8h_source.html#l00048">impala::TYPE_VARCHAR</a>.</p>
<p>Referenced by <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, and <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</a>.</p>
</div>
</div>
<a class="anchor" id="ac75e6ea640e9de68300109d52b21b4b7"></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__udf_1_1StringVal.html">StringVal</a> impala::SlotRef::GetStringVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a31f637ae00364a6e542eba1f8d371cae">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00420">420</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="string-value_8inline_8h_source.html#l00115">impala::StringValue::CharSlotToPtr()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="types_8h_source.html#l00168">impala::ColumnType::IsStringType()</a>, <a class="el" href="types_8h_source.html#l00062">impala::ColumnType::len</a>, <a class="el" href="udf_8h_source.html#l00522">impala_udf::StringVal::len</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="udf_8h_source.html#l00523">impala_udf::StringVal::ptr</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="string-value_8h_source.html#l00099">impala::StringValue::ToStringVal()</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>.</p>
</div>
</div>
<a class="anchor" id="a972213b3be9d78c4e5915af5588e0d88"></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__udf_1_1TimestampVal.html">TimestampVal</a> impala::SlotRef::GetTimestampVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a653cc2c0d6f05cb1476e902f6d001434">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00436">436</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="timestamp-value_8h_source.html#l00121">impala::TimestampValue::ToTimestampVal()</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00037">impala::TYPE_TIMESTAMP</a>.</p>
</div>
</div>
<a class="anchor" id="a861f0fb9b850eb98fdbae472140cd33b"></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__udf_1_1TinyIntVal.html">TinyIntVal</a> impala::SlotRef::GetTinyIntVal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *&#160;</td>
<td class="paramname"><em>row</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#abaedc9ac7dc252d497d9179f6322bf80">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00378">378</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, <a class="el" href="tuple_8h_source.html#l00112">impala::Tuple::IsNull()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="expr_8h_source.html#l00289">impala::Expr::type_</a>, and <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>.</p>
</div>
</div>
<a class="anchor" id="adb1c9ed033cb9b8ec3cd40557e840d11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Expr::InitBuiltinsDummy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The builtin functions are not called from anywhere in the code and the symbols are therefore not included in the binary. We call these functions by using dlsym. The compiler must think this function is callable to not strip these symbols. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00470">470</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="classimpala_1_1Operators.html#a997b116f595806fd4848985b932d25e2">impala::Operators::Add_IntVal_IntVal()</a>, <a class="el" href="classimpala_1_1CastFunctions.html#a9fda2a445acfda7b4c0ad9434e5e685e">impala::CastFunctions::CastToBooleanVal()</a>, <a class="el" href="decimal-operators_8cc_source.html#l00435">impala::DecimalOperators::CastToDecimalVal()</a>, <a class="el" href="classimpala_1_1InPredicate.html#a0ca17d8f6a824bd72adb660923536b5a">impala::InPredicate::InIterate()</a>, <a class="el" href="aggregate-functions_8cc_source.html#l00062">impala::AggregateFunctions::InitNull()</a>, <a class="el" href="is-null-predicate_8cc_source.html#l00023">impala::IsNullPredicate::IsNull()</a>, <a class="el" href="string-functions_8cc_source.html#l00143">impala::StringFunctions::Length()</a>, <a class="el" href="like-predicate_8cc_source.html#l00095">impala::LikePredicate::Like()</a>, <a class="el" href="compound-predicates-ir_8cc_source.html#l00020">impala::CompoundPredicate::Not()</a>, <a class="el" href="classimpala_1_1ConditionalFunctions.html#a535eefb6cc2bc8c9875085e5d00959c6">impala::ConditionalFunctions::NullIfZero()</a>, <a class="el" href="udf-builtins_8cc_source.html#l00042">impala::UdfBuiltins::Pi()</a>, <a class="el" href="math-functions_8cc_source.html#l00038">impala::MathFunctions::Pi()</a>, <a class="el" href="utility-functions_8cc_source.html#l00086">impala::UtilityFunctions::Pid()</a>, <a class="el" href="decimal-functions_8cc_source.html#l00027">impala::DecimalFunctions::Precision()</a>, and <a class="el" href="timestamp-functions_8cc_source.html#l00211">impala::TimestampFunctions::Year()</a>.</p>
</div>
</div>
<a class="anchor" id="a4245192bbee7b1d9e3c50bddd922bb3b"></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::Expr::is_slotref </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00146">146</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
</div>
</div>
<a class="anchor" id="adbf95b41575fd618c1aa10e2a3a03f47"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classbool.html">bool</a> impala::SlotRef::IsConstant </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if GetValue(NULL) can be called on this expr and always returns the same result (e.g., exprs that don't contain slotrefs). The default implementation returns true if all children are constant. </p>
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#a5708ce372f185021857e6b87a9b99f04">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00038">38</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
</div>
</div>
<a class="anchor" id="aad1111f87951868de4d8f8b2dfe87c5f"></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_1Status.html">Status</a> impala::Expr::Open </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>ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience function for opening multiple expr trees. </p>
<p>Referenced by <a class="el" href="expr-context_8cc_source.html#l00091">impala::ExprContext::Clone()</a>, <a class="el" href="hash-join-node_8cc_source.html#l00154">impala::HashJoinNode::ConstructBuildSide()</a>, <a class="el" href="partitioned-hash-join-node_8cc_source.html#l00485">impala::PartitionedHashJoinNode::ConstructBuildSide()</a>, <a class="el" href="union-node_8cc_source.html#l00088">impala::UnionNode::Open()</a>, <a class="el" href="sort-exec-exprs_8cc_source.html#l00053">impala::SortExecExprs::Open()</a>, <a class="el" href="expr-context_8cc_source.html#l00056">impala::ExprContext::Open()</a>, <a class="el" href="case-expr_8cc_source.html#l00053">impala::CaseExpr::Open()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00174">impala::AggregationNode::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="data-stream-sender_8cc_source.html#l00397">impala::DataStreamSender::Open()</a>, <a class="el" href="exec-node_8cc_source.html#l00154">impala::ExecNode::Open()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00209">impala::PartitionedAggregationNode::Open()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00214">impala::AggFnEvaluator::Open()</a>, <a class="el" href="hdfs-scan-node_8cc_source.html#l00511">impala::HdfsScanNode::Open()</a>, <a class="el" href="hdfs-table-sink_8cc_source.html#l00160">impala::HdfsTableSink::Open()</a>, <a class="el" href="expr_8cc_source.html#l00366">impala::Expr::Open()</a>, <a class="el" href="descriptors_8cc_source.html#l00145">impala::HdfsPartitionDescriptor::OpenExprs()</a>, <a class="el" href="old-hash-table-test_8cc_source.html#l00049">impala::OldHashTableTest::SetUp()</a>, <a class="el" href="hash-table-test_8cc_source.html#l00049">impala::HashTableTest::SetUp()</a>, and <a class="el" href="query-exec-state_8cc_source.html#l00555">impala::ImpalaServer::QueryExecState::WaitInternal()</a>.</p>
</div>
</div>
<a class="anchor" id="ac7bb5173962798d058546becc0d385e4"></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="classimpala_1_1Status.html">Status</a> Expr::Open </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1FunctionContext.html#a1e9662a1bbb78daa9923b47412347ffc">FunctionContext::FunctionStateScope</a>&#160;</td>
<td class="paramname"><em>scope</em> = <code>FunctionContext::FRAGMENT_LOCAL</code>&#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">protected</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes 'context' for execution. If scope if FRAGMENT_LOCAL, both fragment- and thread-local state should be initialized. Otherwise, if scope is THREAD_LOCAL, only thread-local state should be initialized. Subclasses overriding this function should call <a class="el" href="classimpala_1_1Expr.html#aad1111f87951868de4d8f8b2dfe87c5f" title="Convenience function for opening multiple expr trees. ">Expr::Open()</a> to recursively call <a class="el" href="classimpala_1_1Expr.html#aad1111f87951868de4d8f8b2dfe87c5f" title="Convenience function for opening multiple expr trees. ">Open()</a> on the expr tree. </p>
<p>Reimplemented in <a class="el" href="classimpala_1_1HiveUdfCall.html#aef267163f9ed7b898b438f577bd9e1fa">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#aeba3afbca2c0579a79622ea1ebb2aee7">impala::ScalarFnCall</a>, and <a class="el" href="classimpala_1_1CaseExpr.html#ac0b9c2b90fe47c856a6f0520cff04071">impala::CaseExpr</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00366">366</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="expr_8h_source.html#l00290">impala::Expr::children_</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="classimpala_1_1Expr.html#aad1111f87951868de4d8f8b2dfe87c5f">impala::Expr::Open()</a>, and <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>.</p>
</div>
</div>
<a class="anchor" id="af6ec759518bffbb9f389f5564f6006df"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::Expr::output_scale </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of digits after the decimal that should be displayed for this value. Returns -1 if no scale has been specified (currently the scale is only set for doubles set by RoundUpTo). GetValue() must have already been called. TODO: is this still necessary? </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00139">139</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7a368561ec9db81fdb73fb7becb17633"></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="classimpala_1_1Status.html">Status</a> impala::SlotRef::Prepare </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>row_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>context</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes this expr instance for execution. This does not include initializing state in the <a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a>; 'context' should only be used to register a FunctionContext via <a class="el" href="classimpala_1_1Expr.html#ace97c478e9b659f3fcd20d38cf67bc05">RegisterFunctionContext()</a>. Any IR functions must be generated here. Subclasses overriding this function should call <a class="el" href="classimpala_1_1Expr.html#a3ae02e50debba50ac5c7b6dd9f8016e7">Expr::Prepare()</a> to recursively call <a class="el" href="classimpala_1_1SlotRef.html#a7a368561ec9db81fdb73fb7becb17633">Prepare()</a> on the expr tree. </p>
<p>Reimplemented from <a class="el" href="classimpala_1_1Expr.html#af1bff470a7f8858237dbc9322fa54f2e">impala::Expr</a>.</p>
<p>Definition at line <a class="el" href="slot-ref_8cc_source.html#l00063">63</a> of file <a class="el" href="slot-ref_8cc_source.html">slot-ref.cc</a>.</p>
<p>References <a class="el" href="expr_8h_source.html#l00290">impala::Expr::children_</a>, <a class="el" href="descriptors_8cc_source.html#l00075">impala::SlotDescriptor::DebugString()</a>, <a class="el" href="descriptors_8cc_source.html#l00250">impala::TupleDescriptor::DebugString()</a>, <a class="el" href="descriptors_8cc_source.html#l00370">impala::RowDescriptor::DebugString()</a>, <a class="el" href="runtime-state_8h_source.html#l00093">impala::RuntimeState::desc_tbl()</a>, <a class="el" href="descriptors_8cc_source.html#l00447">impala::DescriptorTbl::GetSlotDescriptor()</a>, <a class="el" href="descriptors_8cc_source.html#l00437">impala::DescriptorTbl::GetTupleDescriptor()</a>, <a class="el" href="descriptors_8cc_source.html#l00328">impala::RowDescriptor::GetTupleIdx()</a>, <a class="el" href="descriptors_8h_source.html#l00400">impala::RowDescriptor::INVALID_IDX</a>, <a class="el" href="descriptors_8h_source.html#l00092">impala::SlotDescriptor::is_materialized()</a>, <a class="el" href="descriptors_8h_source.html#l00089">impala::SlotDescriptor::null_indicator_offset()</a>, <a class="el" href="slot-ref_8h_source.html#l00058">null_indicator_offset_</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="descriptors_8h_source.html#l00079">impala::SlotDescriptor::parent()</a>, <a class="el" href="slot-ref_8h_source.html#l00059">slot_id_</a>, <a class="el" href="slot-ref_8h_source.html#l00057">slot_offset_</a>, <a class="el" href="slot-ref_8h_source.html#l00056">tuple_idx_</a>, <a class="el" href="slot-ref_8h_source.html#l00060">tuple_is_nullable_</a>, <a class="el" href="descriptors_8h_source.html#l00088">impala::SlotDescriptor::tuple_offset()</a>, and <a class="el" href="descriptors_8cc_source.html#l00333">impala::RowDescriptor::TupleIsNullable()</a>.</p>
</div>
</div>
<a class="anchor" id="a3ae02e50debba50ac5c7b6dd9f8016e7"></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_1Status.html">Status</a> impala::Expr::Prepare </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>ctxs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a> &amp;&#160;</td>
<td class="paramname"><em>row_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1MemTracker.html">MemTracker</a> *&#160;</td>
<td class="paramname"><em>tracker</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience function for preparing multiple expr trees. Allocations from 'ctxs' will be counted against 'tracker'. </p>
<p>Referenced by <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00042">impala::TupleIsNullPredicate::Prepare()</a>, <a class="el" href="union-node_8cc_source.html#l00058">impala::UnionNode::Prepare()</a>, <a class="el" href="sort-exec-exprs_8cc_source.html#l00042">impala::SortExecExprs::Prepare()</a>, <a class="el" href="expr-context_8cc_source.html#l00047">impala::ExprContext::Prepare()</a>, <a class="el" href="case-expr_8cc_source.html#l00046">impala::CaseExpr::Prepare()</a>, <a class="el" href="hash-join-node_8cc_source.html#l00080">impala::HashJoinNode::Prepare()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00085">impala::AggregationNode::Prepare()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>, <a class="el" href="partitioned-hash-join-node_8cc_source.html#l00094">impala::PartitionedHashJoinNode::Prepare()</a>, <a class="el" href="data-stream-sender_8cc_source.html#l00362">impala::DataStreamSender::Prepare()</a>, <a class="el" href="exec-node_8cc_source.html#l00130">impala::ExecNode::Prepare()</a>, <a class="el" href="agg-fn-evaluator_8cc_source.html#l00124">impala::AggFnEvaluator::Prepare()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l00095">impala::PartitionedAggregationNode::Prepare()</a>, <a class="el" href="hdfs-scan-node_8cc_source.html#l00304">impala::HdfsScanNode::Prepare()</a>, <a class="el" href="expr_8cc_source.html#l00350">impala::Expr::Prepare()</a>, <a class="el" href="hdfs-table-sink_8cc_source.html#l00072">impala::HdfsTableSink::PrepareExprs()</a>, <a class="el" href="descriptors_8cc_source.html#l00134">impala::HdfsPartitionDescriptor::PrepareExprs()</a>, <a class="el" href="hash-table-test_8cc_source.html#l00049">impala::HashTableTest::SetUp()</a>, and <a class="el" href="old-hash-table-test_8cc_source.html#l00049">impala::OldHashTableTest::SetUp()</a>.</p>
</div>
</div>
<a class="anchor" id="ace97c478e9b659f3fcd20d38cf67bc05"></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="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> * Expr::RegisterFunctionContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *&#160;</td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>varargs_buffer_size</em> = <code>0</code>&#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">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function that calls ctx-&gt;Register(), sets context_index_, and returns the registered FunctionContext. </p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00080">80</a> of file <a class="el" href="expr_8cc_source.html">expr.cc</a>.</p>
<p>References <a class="el" href="anyval-util_8cc_source.html#l00052">impala::AnyValUtil::ColumnTypeToTypeDesc()</a>, <a class="el" href="expr-context_8h_source.html#l00100">impala::ExprContext::fn_context()</a>, and <a class="el" href="expr-context_8cc_source.html#l00081">impala::ExprContext::Register()</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00046">impala::CaseExpr::Prepare()</a>, and <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a28ed3520a8b0029f82b1398a65c97cbb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a>&amp; impala::SlotRef::slot_id </td>
<td>(</td>
<td class="paramname"></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="slot-ref_8h_source.html#l00040">40</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>References <a class="el" href="slot-ref_8h_source.html#l00059">slot_id_</a>.</p>
</div>
</div>
<a class="anchor" id="a742827844080d45d514719742cb3e7f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a>&amp; impala::Expr::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00145">145</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00329">impala::CaseExpr::AnyValEq()</a>, <a class="el" href="hdfs-parquet-table-writer_8cc_source.html#l00337">impala::HdfsParquetTableWriter::BoolColumnWriter::BoolColumnWriter()</a>, <a class="el" href="aggregation-node_8cc_source.html#l00506">impala::AggregationNode::CodegenUpdateSlot()</a>, <a class="el" href="partitioned-aggregation-node_8cc_source.html#l01055">impala::PartitionedAggregationNode::CodegenUpdateSlot()</a>, <a class="el" href="hdfs-parquet-table-writer_8cc_source.html#l00240">impala::HdfsParquetTableWriter::ColumnWriter&lt; T &gt;::ColumnWriter()</a>, <a class="el" href="expr_8cc_source.html#l00456">impala::Expr::CreateIrFunctionPrototype()</a>, <a class="el" href="literal_8cc_source.html#l00300">impala::Literal::DebugString()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00493">impala::ScalarFnCall::EvaluateChildren()</a>, <a class="el" href="case-expr_8cc_source.html#l00290">impala::CaseExpr::GetChildVal()</a>, <a class="el" href="case-expr_8cc_source.html#l00179">impala::CaseExpr::GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="literal_8cc_source.html#l00356">impala::Literal::GetCodegendComputeFn()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</a>, <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="literal_8cc_source.html#l00284">impala::Literal::GetDecimalVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00377">impala::ScalarFnCall::GetUdf()</a>, <a class="el" href="literal_8cc_source.html#l00031">impala::Literal::Literal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>, and <a class="el" href="data-stream-sender_8cc_source.html#l00401">impala::DataStreamSender::Send()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aee18bd1a0006e802df30b9c960d36cb3"></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="structLibCache_1_1LibCacheEntry.html">LibCache::LibCacheEntry</a>* impala::Expr::cache_entry_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Cache entry for the library implementing this function. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00281">281</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00114">impala::Expr::Close()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00472">impala::ScalarFnCall::GetFunction()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00377">impala::ScalarFnCall::GetUdf()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, and <a class="el" href="expr_8cc_source.html#l00110">impala::Expr::~Expr()</a>.</p>
</div>
</div>
<a class="anchor" id="a84e7e99daf641ad9ee2881bb673f62a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classimpala_1_1Expr.html">Expr</a>*&gt; impala::Expr::children_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00290">290</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00114">impala::Expr::Close()</a>, <a class="el" href="expr_8cc_source.html#l00385">impala::Expr::DebugString()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00493">impala::ScalarFnCall::EvaluateChildren()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, <a class="el" href="expr_8cc_source.html#l00418">impala::Expr::GetSlotIds()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00377">impala::ScalarFnCall::GetUdf()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00512">impala::ScalarFnCall::InterpretEval()</a>, <a class="el" href="expr_8cc_source.html#l00411">impala::Expr::IsConstant()</a>, <a class="el" href="case-expr_8cc_source.html#l00053">impala::CaseExpr::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="expr_8cc_source.html#l00366">impala::Expr::Open()</a>, <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>, <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00042">impala::TupleIsNullPredicate::Prepare()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, and <a class="el" href="expr_8cc_source.html#l00350">impala::Expr::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="aed93f651b667662d8f359de18cd883a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::scoped_ptr&lt;<a class="el" href="structimpala__udf_1_1AnyVal.html">AnyVal</a>&gt; impala::Expr::constant_val_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If this expr is constant, this will store and cache the value generated by <a class="el" href="classimpala_1_1Expr.html#a28f2b59990e3a90b1858710ace748f5c">GetConstVal()</a>. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00303">303</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>.</p>
</div>
</div>
<a class="anchor" id="a0e97382f249d8a076454dca5eedc441b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::Expr::context_index_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Index to pass to <a class="el" href="classimpala_1_1ExprContext.html#aab28f00b80f65b1302abd7a6c33f2df7">ExprContext::fn_context()</a> to retrieve this expr's FunctionContext. Set in <a class="el" href="classimpala_1_1Expr.html#ace97c478e9b659f3fcd20d38cf67bc05">RegisterFunctionContext()</a>. -1 if this expr does not need a FunctionContext and doesn't call <a class="el" href="classimpala_1_1Expr.html#ace97c478e9b659f3fcd20d38cf67bc05">RegisterFunctionContext()</a>. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00296">296</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00070">impala::CaseExpr::Close()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00198">impala::ScalarFnCall::Close()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00232">impala::HiveUdfCall::Close()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00493">impala::ScalarFnCall::EvaluateChildren()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00512">impala::ScalarFnCall::InterpretEval()</a>, <a class="el" href="case-expr_8cc_source.html#l00053">impala::CaseExpr::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, and <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a51d9f91210952a0ae23dcbbdc2700dcc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TFunction impala::Expr::fn_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Function description. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00284">284</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="scalar-fn-call_8cc_source.html#l00733">impala::ScalarFnCall::DebugString()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00275">impala::HiveUdfCall::DebugString()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00074">impala::HiveUdfCall::Evaluate()</a>, <a class="el" href="expr_8cc_source.html#l00100">impala::Expr::Expr()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00472">impala::ScalarFnCall::GetFunction()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00377">impala::ScalarFnCall::GetUdf()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00211">impala::ScalarFnCall::IsConstant()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00153">impala::HiveUdfCall::Prepare()</a>, and <a class="el" href="scalar-fn-call_8cc_source.html#l00041">impala::ScalarFnCall::ScalarFnCall()</a>.</p>
</div>
</div>
<a class="anchor" id="ac1b323bdf9af6616080d30d4fbabc6fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">llvm::Function* impala::Expr::ir_compute_fn_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Cached codegened compute function. Exprs should set this in <a class="el" href="classimpala_1_1Expr.html#a3f3fde78dfcf00d2d68bc93d52ef8b11">GetCodegendComputeFn()</a>. </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00299">299</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="case-expr_8cc_source.html#l00179">impala::CaseExpr::GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="literal_8cc_source.html#l00356">impala::Literal::GetCodegendComputeFn()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, and <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</a>.</p>
</div>
</div>
<a class="anchor" id="af9b41baf7878f4ec552ae68cb3a60be0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classbool.html">bool</a> impala::Expr::is_slotref_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>recognize if this node is a slotref in order to speed up GetValue() </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00287">287</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad290be216bb08202ca551b078e0cc6a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char * Expr::LLVM_CLASS_NAME = &quot;class.impala::Expr&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00232">232</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="scalar-fn-call_8cc_source.html#l00243">impala::ScalarFnCall::GetCodegendComputeFn()</a>, and <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</a>.</p>
</div>
</div>
<a class="anchor" id="a1402eaf84972d448bbb71565209b17b5"></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_1NullIndicatorOffset.html">NullIndicatorOffset</a> impala::SlotRef::null_indicator_offset_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00058">58</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>Referenced by <a class="el" href="slot-ref_8cc_source.html#l00104">DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">GetIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00420">GetStringVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">GetTinyIntVal()</a>, and <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a58166a4b77bf9f3834c5380630496a17"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::Expr::output_scale_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="expr_8h_source.html#l00291">291</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="expr-context_8cc_source.html#l00126">impala::ExprContext::GetValue()</a>, and <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>.</p>
</div>
</div>
<a class="anchor" id="a46fa1a1e16a6ecbc1c8f2aebc954c718"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a> impala::SlotRef::slot_id_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00059">59</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>Referenced by <a class="el" href="slot-ref_8cc_source.html#l00104">DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00099">GetSlotIds()</a>, <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>, and <a class="el" href="slot-ref_8h_source.html#l00040">slot_id()</a>.</p>
</div>
</div>
<a class="anchor" id="aa757b04302a50aaa5dc88c203f7ce046"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::SlotRef::slot_offset_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00057">57</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>Referenced by <a class="el" href="slot-ref_8cc_source.html#l00104">DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">GetIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00420">GetStringVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">GetTinyIntVal()</a>, and <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a9addb94bec8720bbfb09af9a07256f99"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int impala::SlotRef::tuple_idx_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00056">56</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>Referenced by <a class="el" href="slot-ref_8cc_source.html#l00104">DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">GetIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00420">GetStringVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">GetTinyIntVal()</a>, and <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="ae695e7552705927e5446823170d9ba98"></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::SlotRef::tuple_is_nullable_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="slot-ref_8h_source.html#l00060">60</a> of file <a class="el" href="slot-ref_8h_source.html">slot-ref.h</a>.</p>
<p>Referenced by <a class="el" href="slot-ref_8cc_source.html#l00104">DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, and <a class="el" href="slot-ref_8cc_source.html#l00063">Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a704e9ee9339f503f27b0af463f6c97cf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structimpala_1_1ColumnType.html">ColumnType</a> impala::Expr::type_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>analysis is done, types are fixed at this point </p>
<p>Definition at line <a class="el" href="expr_8h_source.html#l00289">289</a> of file <a class="el" href="expr_8h_source.html">expr.h</a>.</p>
<p>Referenced by <a class="el" href="literal_8cc_source.html#l00300">impala::Literal::DebugString()</a>, <a class="el" href="expr_8cc_source.html#l00385">impala::Expr::DebugString()</a>, <a class="el" href="slot-ref_8cc_source.html#l00399">GetBigIntVal()</a>, <a class="el" href="literal_8cc_source.html#l00262">impala::Literal::GetBigIntVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00685">impala::ScalarFnCall::GetBigIntVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00303">impala::HiveUdfCall::GetBigIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00371">GetBooleanVal()</a>, <a class="el" href="literal_8cc_source.html#l00242">impala::Literal::GetBooleanVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00283">impala::HiveUdfCall::GetBooleanVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00653">impala::ScalarFnCall::GetBooleanVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00155">GetCodegendComputeFn()</a>, <a class="el" href="literal_8cc_source.html#l00356">impala::Literal::GetCodegendComputeFn()</a>, <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00446">GetDecimalVal()</a>, <a class="el" href="literal_8cc_source.html#l00284">impala::Literal::GetDecimalVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00725">impala::ScalarFnCall::GetDecimalVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00328">impala::HiveUdfCall::GetDecimalVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00413">GetDoubleVal()</a>, <a class="el" href="literal_8cc_source.html#l00272">impala::Literal::GetDoubleVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00701">impala::ScalarFnCall::GetDoubleVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00313">impala::HiveUdfCall::GetDoubleVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00406">GetFloatVal()</a>, <a class="el" href="literal_8cc_source.html#l00267">impala::Literal::GetFloatVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00693">impala::ScalarFnCall::GetFloatVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00308">impala::HiveUdfCall::GetFloatVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00392">GetIntVal()</a>, <a class="el" href="literal_8cc_source.html#l00257">impala::Literal::GetIntVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00677">impala::ScalarFnCall::GetIntVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00298">impala::HiveUdfCall::GetIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00385">GetSmallIntVal()</a>, <a class="el" href="literal_8cc_source.html#l00252">impala::Literal::GetSmallIntVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00669">impala::ScalarFnCall::GetSmallIntVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00293">impala::HiveUdfCall::GetSmallIntVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00420">GetStringVal()</a>, <a class="el" href="literal_8cc_source.html#l00277">impala::Literal::GetStringVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00318">impala::HiveUdfCall::GetStringVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00709">impala::ScalarFnCall::GetStringVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00436">GetTimestampVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00717">impala::ScalarFnCall::GetTimestampVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00323">impala::HiveUdfCall::GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">GetTinyIntVal()</a>, <a class="el" href="literal_8cc_source.html#l00247">impala::Literal::GetTinyIntVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00288">impala::HiveUdfCall::GetTinyIntVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00661">impala::ScalarFnCall::GetTinyIntVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00126">impala::ExprContext::GetValue()</a>, <a class="el" href="literal_8cc_source.html#l00031">impala::Literal::Literal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00148">impala::ScalarFnCall::Open()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00176">impala::HiveUdfCall::Open()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00052">impala::ScalarFnCall::Prepare()</a>, and <a class="el" href="expr_8cc_source.html#l00350">impala::Expr::Prepare()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>be/src/exprs/<a class="el" href="slot-ref_8h_source.html">slot-ref.h</a></li>
<li>be/src/exprs/<a class="el" href="slot-ref_8cc_source.html">slot-ref.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_1SlotRef.html">SlotRef</a></li>
<li class="footer">Generated on Thu May 7 2015 16:10:49 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>