blob: c6a02adb43c4a0cb5ae799f86cebf62bfef5b6b3 [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::TupleIsNullPredicate 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_1TupleIsNullPredicate.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="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classimpala_1_1TupleIsNullPredicate-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">impala::TupleIsNullPredicate Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for impala::TupleIsNullPredicate:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1TupleIsNullPredicate__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::TupleIsNullPredicate:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1TupleIsNullPredicate__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:abaedc9ac7dc252d497d9179f6322bf80"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1TinyIntVal.html">TinyIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#abaedc9ac7dc252d497d9179f6322bf80">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:abaedc9ac7dc252d497d9179f6322bf80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d8dd3e1e7a9b05cd94ef7d52bbd4ac2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1SmallIntVal.html">SmallIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a4d8dd3e1e7a9b05cd94ef7d52bbd4ac2">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:a4d8dd3e1e7a9b05cd94ef7d52bbd4ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe35445295d8cad09b0fd56bc3016e7f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1IntVal.html">IntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#afe35445295d8cad09b0fd56bc3016e7f">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:afe35445295d8cad09b0fd56bc3016e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcfd8c3c50142f4b03ebea0a4589530f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1BigIntVal.html">BigIntVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#abcfd8c3c50142f4b03ebea0a4589530f">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:abcfd8c3c50142f4b03ebea0a4589530f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80811ee6389ccb243eef2356c15c1206"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1FloatVal.html">FloatVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a80811ee6389ccb243eef2356c15c1206">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:a80811ee6389ccb243eef2356c15c1206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a996c4f504867963b8a461cd2c713e3c2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1DoubleVal.html">DoubleVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a996c4f504867963b8a461cd2c713e3c2">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:a996c4f504867963b8a461cd2c713e3c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31f637ae00364a6e542eba1f8d371cae"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1StringVal.html">StringVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a31f637ae00364a6e542eba1f8d371cae">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:a31f637ae00364a6e542eba1f8d371cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a653cc2c0d6f05cb1476e902f6d001434"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1TimestampVal.html">TimestampVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a653cc2c0d6f05cb1476e902f6d001434">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:a653cc2c0d6f05cb1476e902f6d001434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a973505caac0fffab99e25ee73cd87ae2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1DecimalVal.html">DecimalVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a973505caac0fffab99e25ee73cd87ae2">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:a973505caac0fffab99e25ee73cd87ae2"><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:a6f42f36538e523852367b29eea5b4e68"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1Expr.html#a6f42f36538e523852367b29eea5b4e68">GetSlotIds</a> (std::vector&lt; <a class="el" href="namespaceimpala.html#a4e802b9fa9086eb686d8688df634a2b2">SlotId</a> &gt; *slot_ids) const </td></tr>
<tr class="separator:a6f42f36538e523852367b29eea5b4e68"><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:a15f526bae99b78728a707af51727a31d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#a15f526bae99b78728a707af51727a31d">TupleIsNullPredicate</a> (const TExprNode &amp;node)</td></tr>
<tr class="separator:a15f526bae99b78728a707af51727a31d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79cfd7a6da0a8b76d4e852ae158f3e71"><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_1TupleIsNullPredicate.html#a79cfd7a6da0a8b76d4e852ae158f3e71">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> *ctx)</td></tr>
<tr class="separator:a79cfd7a6da0a8b76d4e852ae158f3e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4088ab151b126e1082359b5e20264339"><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_1TupleIsNullPredicate.html#a4088ab151b126e1082359b5e20264339">GetCodegendComputeFn</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, llvm::Function **fn)</td></tr>
<tr class="separator:a4088ab151b126e1082359b5e20264339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a865ad68f60f1ab8d12456a7321b91b88"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#a865ad68f60f1ab8d12456a7321b91b88">DebugString</a> () const </td></tr>
<tr class="separator:a865ad68f60f1ab8d12456a7321b91b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d32cc746e13bf86617efc9688f272c6"><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_1TupleIsNullPredicate.html#a7d32cc746e13bf86617efc9688f272c6">IsConstant</a> () const </td></tr>
<tr class="separator:a7d32cc746e13bf86617efc9688f272c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb82763d9f9a0d58a9f4983cdd8387c6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structimpala__udf_1_1BooleanVal.html">BooleanVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#afb82763d9f9a0d58a9f4983cdd8387c6">GetBooleanVal</a> (<a class="el" href="classimpala_1_1ExprContext.html">ExprContext</a> *context, <a class="el" href="classimpala_1_1TupleRow.html">TupleRow</a> *row)</td></tr>
<tr class="separator:afb82763d9f9a0d58a9f4983cdd8387c6"><td class="memSeparator" colspan="2">&#160;</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: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><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:aa8503abb6423d3fd7cb8da38f5ef5405"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespaceimpala.html#ae794620bedabff2a726194c228af75ce">TupleId</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#aa8503abb6423d3fd7cb8da38f5ef5405">tuple_ids_</a></td></tr>
<tr class="memdesc:aa8503abb6423d3fd7cb8da38f5ef5405"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classimpala_1_1Tuple.html" title="A tuple with 0 materialised slots is represented as NULL. ">Tuple</a> ids to check for NULL. May contain ids of nullable and non-nullable tuples. <a href="#aa8503abb6423d3fd7cb8da38f5ef5405">More...</a><br/></td></tr>
<tr class="separator:aa8503abb6423d3fd7cb8da38f5ef5405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b3292794f117658f9018e82eb268d7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#a23b3292794f117658f9018e82eb268d7">tuple_idxs_</a></td></tr>
<tr class="memdesc:a23b3292794f117658f9018e82eb268d7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classimpala_1_1Tuple.html" title="A tuple with 0 materialised slots is represented as NULL. ">Tuple</a> indexes into the <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a>. Only contains indexes of nullable tuples. <a href="#a23b3292794f117658f9018e82eb268d7">More...</a><br/></td></tr>
<tr class="separator:a23b3292794f117658f9018e82eb268d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:aa33520359f6cc0f51b476790d39ed869"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TupleIsNullPredicate.html#aa33520359f6cc0f51b476790d39ed869">Expr</a></td></tr>
<tr class="separator:aa33520359f6cc0f51b476790d39ed869"><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>Returns true if all of the given tuples are NULL, false otherwise. It is important that this predicate not require the given tuples to be nullable, because the FE may sometimes wrap expressions in this predicate that contain SlotRefs on non-nullable tuples (see IMPALA-904). TODO: Implement codegen to eliminate overhead on non-nullable tuples. </p>
<p>Definition at line <a class="el" href="tuple-is-null-predicate_8h_source.html#l00030">30</a> of file <a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a15f526bae99b78728a707af51727a31d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">impala::TupleIsNullPredicate::TupleIsNullPredicate </td>
<td>(</td>
<td class="paramtype">const TExprNode &amp;&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td></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="tuple-is-null-predicate_8cc_source.html#l00036">36</a> of file <a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.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">impala::SlotRef::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="a865ad68f60f1ab8d12456a7321b91b88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">string impala::TupleIsNullPredicate::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">protected</span><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="tuple-is-null-predicate_8cc_source.html#l00065">65</a> of file <a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.cc</a>.</p>
<p>References <a class="el" href="tuple-is-null-predicate_8h_source.html#l00047">tuple_ids_</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="abcfd8c3c50142f4b03ebea0a4589530f"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#a66a0a2f811c3831d7df0975b9e8e9e7d">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#a761049a74e04ba5b523d1b1cda45fced">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#a53940543102832b1c1a37a264c02220a">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a353454927250b76e4029410b1dc33e55">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#a67eed1f417545746ce77f739327bcff0">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a03fd1d94a735814ebe30d104b91a0c05">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#a3292c02316967ed8348037e674a1ce38">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a497ac862be4c304b9ac46e6b533d7347">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#aaf14862092d90a05fc3bf1a1bc018804">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#afa68026403ae11dff6e8723aaac5fa39">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00589">589</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr-context_8cc_source.html#l00322">impala::ExprContext::GetBigIntVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00054">impala::Expr::GetBigIntVal()</a>, <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="afb82763d9f9a0d58a9f4983cdd8387c6"></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::TupleIsNullPredicate::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">protected</span><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_1TupleIsNullPredicate.html#afb82763d9f9a0d58a9f4983cdd8387c6">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="tuple-is-null-predicate_8cc_source.html#l00025">25</a> of file <a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.cc</a>.</p>
<p>References <a class="el" href="tuple-row_8h_source.html#l00030">impala::TupleRow::GetTuple()</a>, and <a class="el" href="tuple-is-null-predicate_8h_source.html#l00050">tuple_idxs_</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="a4088ab151b126e1082359b5e20264339"></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::TupleIsNullPredicate::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">protected</span><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="tuple-is-null-predicate_8cc_source.html#l00060">60</a> of file <a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.cc</a>.</p>
<p>References <a class="el" href="expr_8cc_source.html#l00546">impala::Expr::GetCodegendComputeFnWrapper()</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">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="a973505caac0fffab99e25ee73cd87ae2"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#a48c5b25fc82ce8564cffd8c644f56914">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#a14590963220bd00159dfad3e3e7742ac">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#ab70e106b07b50f888044208274eaba31">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a98581ce4dfbe4939aeddc3e718d961f7">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#a749b5a1a8da3ea7f08b0db7a8e051cac">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a4ca23bce47c7beeb989418af6dba288e">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#acca0ffbe51a99eaf2b89b0c3888fbdc8">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a3f74847aa5f16dad5312b9f152a49f23">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a8622c39a71bf926a10dbe15680e7d818">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#a5bbc97300a37ed5641e93e9bb162544a">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00609">609</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00337">impala::ExprContext::GetDecimalVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00069">impala::Expr::GetDecimalVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="a996c4f504867963b8a461cd2c713e3c2"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#ae625bf57d4852d61cea5296e46284840">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#af0e74877e62fb3debfc9782a1179716d">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#a4628a5ef1b38410401d78a190b57404c">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a269d29755a1ad1d15cb3116ca857c01e">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#ab40cb3c3479889e44948fa14b42f20c7">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#aa9d86ed45e21ec8ee6cd1da246269962">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#ac8f800cfdf3db38dedc175ceb119c003">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a11b23bfab87ad7306e06824ec52065a5">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a08f9d2250dafe050b2780e3b6d66744a">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#a0809586790a4e5409c9c81279fab39a8">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00597">597</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00328">impala::ExprContext::GetDoubleVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00060">impala::Expr::GetDoubleVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="a80811ee6389ccb243eef2356c15c1206"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#adedc956d73f1ced3d9731111afdf93ac">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#ad26ecf50b745efd7b0519459970cc3ba">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#afdcc4a325f491273d90948b9ce910120">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#aeb1bdc20ccf74599e880f7e831512ab5">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#ae4718a98109eda55a145fee2f537bc4a">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a699a22a1215696ad5c100c51b00838f6">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#ab20b636276b3cb0968c5e89f78f2510e">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a7bce4dbfd709732c9feb3571b7a09cb1">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a09b0f052ec11d3e88797187145d81a6a">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#ada31a0cb1e9ec6a3de602b1dfc55fcda">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00593">593</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00325">impala::ExprContext::GetFloatVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00057">impala::Expr::GetFloatVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="afe35445295d8cad09b0fd56bc3016e7f"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#abf60e5d73b6bb02ac1c35a9c90da01ea">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#a7cb8b15c2be6e882258cbe4216c617d2">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#a250f903838873f9cbc3bede9218c5e18">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#ac660153833dd5a98702a7213903b7c83">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#a23aaae77361245028d3301ffdbf56d34">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a2d850c270e38165fa4f5fdc217d3c85d">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#ae2710f0878a459b48ba6d932703e3f67">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a83f6b40a075642517f565fd052e3230e">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#af05176eb83b1f623dd88091b7022dd76">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#af4cba402ccf32c6e205c093cf648c307">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00585">585</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00319">impala::ExprContext::GetIntVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00051">impala::Expr::GetIntVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</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">impala::SlotRef::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="a6f42f36538e523852367b29eea5b4e68"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int Expr::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 class="mlabel">inherited</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 in <a class="el" href="classimpala_1_1SlotRef.html#a991ec02d94fe4f2b7639a889bbfaa317">impala::SlotRef</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00418">418</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>.</p>
</div>
</div>
<a class="anchor" id="a4d8dd3e1e7a9b05cd94ef7d52bbd4ac2"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#a0ab70534f6099924be1baed31aae9b94">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#a7f78eaca06b3be9148edc8a1269c0a70">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#a9b79906210c14ce52cd36b3c862384a9">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a9e9dadfc17b840be34a38a8d924c4e11">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#ad2c573909299c80e12d8fdcf64d2c046">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a98aa339dc6e40fdbb3153027ca518b3a">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#a523f558aca4e292d9b19ee45bebd7728">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#ab8a6d9ade9266037c1b3a8025ffae55c">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#acd3281d78b91f0c8c29de8951f03abcd">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#a4c381cf03eb4496478c18aa20606da56">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00581">581</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00316">impala::ExprContext::GetSmallIntVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00048">impala::Expr::GetSmallIntVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</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="a31f637ae00364a6e542eba1f8d371cae"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#aab669ff0725a94d89f94385e27a80c48">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#a18801212c9edce89f42922ffae1e12f1">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#a5a5f54c4f393a933e2d27c20f7797d52">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a978705b8df2a72b335568178e7f4bbe9">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#ab1436269bf495e2c51ea62bf258f9017">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a3f8325c10365d2b13cf8c391407812dc">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#a2494612958833e6c5e91740ad2dfd3eb">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#ac75e6ea640e9de68300109d52b21b4b7">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a2c09e0ff2b4b10b30e42da61feb46dd6">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#adfe10a9bb4454e2e88087a20aa398fcb">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00601">601</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00331">impala::ExprContext::GetStringVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00063">impala::Expr::GetStringVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="a653cc2c0d6f05cb1476e902f6d001434"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#ab5c8ef692452602773fa238364d3cea0">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#af8d748608b2009cb0fb573296e6643d9">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#ae03ed6e4f145097a28673cb4ae55a2f0">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#a26731426e770da9327155db57e6e9477">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#ad047feebc323cf49c341b81d055d927f">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#ab6c44ef59ef9c8a4b50901abfabe6823">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1SlotRef.html#a972213b3be9d78c4e5915af5588e0d88">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a343023f11045b11758ab3361913195e0">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#a73de323d78bd455822fa0170717705ce">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00605">605</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00334">impala::ExprContext::GetTimestampVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00066">impala::Expr::GetTimestampVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</a>.</p>
</div>
</div>
<a class="anchor" id="abaedc9ac7dc252d497d9179f6322bf80"></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> Expr::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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classimpala_1_1CoalesceExpr.html#a1b0cc4b1facf4ace274590c3136075b5">impala::CoalesceExpr</a>, <a class="el" href="classimpala_1_1IfExpr.html#ab119af940cfcf73deed0776af55349c4">impala::IfExpr</a>, <a class="el" href="classimpala_1_1NullIfExpr.html#aa2125f8674c50488720af49971bf4372">impala::NullIfExpr</a>, <a class="el" href="classimpala_1_1HiveUdfCall.html#affe7cd86337f6ca4b60856e407f6a877">impala::HiveUdfCall</a>, <a class="el" href="classimpala_1_1ScalarFnCall.html#a3dd2fdd2ad78fbbb93cd9cb2575cfebf">impala::ScalarFnCall</a>, <a class="el" href="classimpala_1_1IsNullExpr.html#a6ef243aa005a96225a8d86e039ce65d2">impala::IsNullExpr</a>, <a class="el" href="classimpala_1_1Literal.html#a548071b9e7c0084f4dc67a2a73c53b8f">impala::Literal</a>, <a class="el" href="classimpala_1_1SlotRef.html#a861f0fb9b850eb98fdbae472140cd33b">impala::SlotRef</a>, <a class="el" href="classimpala_1_1CaseExpr.html#a22e95bbc8ad31306712651462461e95a">impala::CaseExpr</a>, and <a class="el" href="classimpala_1_1NullLiteral.html#aa87d6f04e14a7f7840448a40485a4e22">impala::NullLiteral</a>.</p>
<p>Definition at line <a class="el" href="expr_8cc_source.html#l00577">577</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#l00385">impala::Expr::DebugString()</a>.</p>
<p>Referenced by <a class="el" href="expr_8cc_source.html#l00491">impala::Expr::GetConstVal()</a>, <a class="el" href="expr-context_8cc_source.html#l00313">impala::ExprContext::GetTinyIntVal()</a>, <a class="el" href="expr-ir_8cc_source.html#l00045">impala::Expr::GetTinyIntVal()</a>, and <a class="el" href="expr-context_8cc_source.html#l00204">impala::ExprContext::GetValue()</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="a7d32cc746e13bf86617efc9688f272c6"></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::TupleIsNullPredicate::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">protected</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="tuple-is-null-predicate_8h_source.html#l00041">41</a> of file <a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.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="hash-table-test_8cc_source.html#l00049">impala::HashTableTest::SetUp()</a>, <a class="el" href="old-hash-table-test_8cc_source.html#l00049">impala::OldHashTableTest::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="a79cfd7a6da0a8b76d4e852ae158f3e71"></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::TupleIsNullPredicate::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">protected</span><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_1TupleIsNullPredicate.html#a79cfd7a6da0a8b76d4e852ae158f3e71">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="tuple-is-null-predicate_8cc_source.html#l00042">42</a> of file <a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.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#l00328">impala::RowDescriptor::GetTupleIdx()</a>, <a class="el" href="descriptors_8h_source.html#l00400">impala::RowDescriptor::INVALID_IDX</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="classimpala_1_1Expr.html#a3ae02e50debba50ac5c7b6dd9f8016e7">impala::Expr::Prepare()</a>, <a class="el" href="status_8h_source.html#l00242">RETURN_IF_ERROR</a>, <a class="el" href="tuple-is-null-predicate_8h_source.html#l00047">tuple_ids_</a>, <a class="el" href="tuple-is-null-predicate_8h_source.html#l00050">tuple_idxs_</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">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="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">impala::SlotRef::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">Friends And Related Function Documentation</h2>
<a class="anchor" id="aa33520359f6cc0f51b476790d39ed869"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classimpala_1_1Expr.html">Expr</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="tuple-is-null-predicate_8h_source.html#l00032">32</a> of file <a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</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">impala::SlotRef::Prepare()</a>, <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00042">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">impala::SlotRef::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="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="aa8503abb6423d3fd7cb8da38f5ef5405"></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="namespaceimpala.html#ae794620bedabff2a726194c228af75ce">TupleId</a>&gt; impala::TupleIsNullPredicate::tuple_ids_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classimpala_1_1Tuple.html" title="A tuple with 0 materialised slots is represented as NULL. ">Tuple</a> ids to check for NULL. May contain ids of nullable and non-nullable tuples. </p>
<p>Definition at line <a class="el" href="tuple-is-null-predicate_8h_source.html#l00047">47</a> of file <a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</a>.</p>
<p>Referenced by <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00065">DebugString()</a>, and <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00042">Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="a23b3292794f117658f9018e82eb268d7"></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;int32_t&gt; impala::TupleIsNullPredicate::tuple_idxs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classimpala_1_1Tuple.html" title="A tuple with 0 materialised slots is represented as NULL. ">Tuple</a> indexes into the <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a>. Only contains indexes of nullable tuples. </p>
<p>Definition at line <a class="el" href="tuple-is-null-predicate_8h_source.html#l00050">50</a> of file <a class="el" href="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</a>.</p>
<p>Referenced by <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00025">GetBooleanVal()</a>, and <a class="el" href="tuple-is-null-predicate_8cc_source.html#l00042">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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::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">impala::SlotRef::GetTimestampVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00323">impala::HiveUdfCall::GetTimestampVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00717">impala::ScalarFnCall::GetTimestampVal()</a>, <a class="el" href="slot-ref_8cc_source.html#l00378">impala::SlotRef::GetTinyIntVal()</a>, <a class="el" href="literal_8cc_source.html#l00247">impala::Literal::GetTinyIntVal()</a>, <a class="el" href="scalar-fn-call_8cc_source.html#l00661">impala::ScalarFnCall::GetTinyIntVal()</a>, <a class="el" href="hive-udf-call_8cc_source.html#l00288">impala::HiveUdfCall::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="tuple-is-null-predicate_8h_source.html">tuple-is-null-predicate.h</a></li>
<li>be/src/exprs/<a class="el" href="tuple-is-null-predicate_8cc_source.html">tuple-is-null-predicate.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_1TupleIsNullPredicate.html">TupleIsNullPredicate</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>