blob: 87517d12f0e15106c9cc8a16368282dfc085f14e [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_udf::UdaTestHarness3&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt; Class Template 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__udf_1_1UdaTestHarness3.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-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</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="classimpala__udf_1_1UdaTestHarness3-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">impala_udf::UdaTestHarness3&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for impala_udf::UdaTestHarness3&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classimpala__udf_1_1UdaTestHarness3__inherit__graph.svg" width="248" height="582"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for impala_udf::UdaTestHarness3&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala__udf_1_1UdaTestHarness3__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-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a9f869dd97cf49f0e6bccb406cb072a06"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a9f869dd97cf49f0e6bccb406cb072a06">UpdateFn</a> )(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INPUT1 &amp;input1, const INPUT2 &amp;input2, const INPUT3 &amp;input3, INTERMEDIATE *result)</td></tr>
<tr class="separator:a9f869dd97cf49f0e6bccb406cb072a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6374e03eeb1cf267f672848d07fd866d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">UdaTestHarnessBase</a><br class="typebreak"/>
&lt; RESULT, INTERMEDIATE &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a6374e03eeb1cf267f672848d07fd866d">BaseClass</a></td></tr>
<tr class="separator:a6374e03eeb1cf267f672848d07fd866d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65723abfa32ed4349b3a74d14a47c67c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a65723abfa32ed4349b3a74d14a47c67c">InitFn</a> )(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, INTERMEDIATE *result)</td></tr>
<tr class="separator:a65723abfa32ed4349b3a74d14a47c67c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc749d94ac316d4d0331a143892c7a9b"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#acc749d94ac316d4d0331a143892c7a9b">MergeFn</a> )(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;src, INTERMEDIATE *dst)</td></tr>
<tr class="separator:acc749d94ac316d4d0331a143892c7a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea57002224fa561be0efd9d2d0923d6c"><td class="memItemLeft" align="right" valign="top">typedef const INTERMEDIATE(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aea57002224fa561be0efd9d2d0923d6c">SerializeFn</a> )(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;type)</td></tr>
<tr class="separator:aea57002224fa561be0efd9d2d0923d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d5bd1f35c8a67dffc5bd5b533843ca"><td class="memItemLeft" align="right" valign="top">typedef RESULT(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ab1d5bd1f35c8a67dffc5bd5b533843ca">FinalizeFn</a> )(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;value)</td></tr>
<tr class="separator:ab1d5bd1f35c8a67dffc5bd5b533843ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac93b73e66fac22e219e2938338535ae4"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classbool.html">bool</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ac93b73e66fac22e219e2938338535ae4">ResultComparator</a> )(const RESULT &amp;x, const RESULT &amp;y)</td></tr>
<tr class="separator:ac93b73e66fac22e219e2938338535ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a031fdfb9e8b57b1b9628fbb70e48dea4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a031fdfb9e8b57b1b9628fbb70e48dea4">UdaTestHarness3</a> (typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a65723abfa32ed4349b3a74d14a47c67c">BaseClass::InitFn</a> init_fn, <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a9f869dd97cf49f0e6bccb406cb072a06">UpdateFn</a> update_fn, typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#acc749d94ac316d4d0331a143892c7a9b">BaseClass::MergeFn</a> merge_fn, typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aea57002224fa561be0efd9d2d0923d6c">BaseClass::SerializeFn</a> serialize_fn, typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ab1d5bd1f35c8a67dffc5bd5b533843ca">BaseClass::FinalizeFn</a> finalize_fn)</td></tr>
<tr class="separator:a031fdfb9e8b57b1b9628fbb70e48dea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae966911b67ad3646eb1dd01a3e508be1"><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__udf_1_1UdaTestHarness3.html#ae966911b67ad3646eb1dd01a3e508be1">Execute</a> (const std::vector&lt; INPUT1 &gt; &amp;values1, const std::vector&lt; INPUT2 &gt; &amp;values2, const std::vector&lt; INPUT3 &gt; &amp;values3, const RESULT &amp;expected, <a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4a">UdaExecutionMode</a> mode=<a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4aa32f9ddb062393a118b7dd138f71a3ff0">ALL</a>)</td></tr>
<tr class="memdesc:ae966911b67ad3646eb1dd01a3e508be1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the UDA in all the modes, validating the result is 'expected' each time. <a href="#ae966911b67ad3646eb1dd01a3e508be1">More...</a><br/></td></tr>
<tr class="separator:ae966911b67ad3646eb1dd01a3e508be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6db12bf6e1790c486800bcfd10a7e7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aa6db12bf6e1790c486800bcfd10a7e7b">SetResultComparator</a> (<a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ac93b73e66fac22e219e2938338535ae4">ResultComparator</a> fn)</td></tr>
<tr class="separator:aa6db12bf6e1790c486800bcfd10a7e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b37227a3ff36c97bb077607e4e594ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a9b37227a3ff36c97bb077607e4e594ac">SetIntermediateSize</a> (int byte_size)</td></tr>
<tr class="memdesc:a9b37227a3ff36c97bb077607e4e594ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">This must be called if the INTERMEDIATE is TYPE_FIXED_BUFFER. <a href="#a9b37227a3ff36c97bb077607e4e594ac">More...</a><br/></td></tr>
<tr class="separator:a9b37227a3ff36c97bb077607e4e594ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7419462c0f53dd357c4280fac4cbea"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a3a7419462c0f53dd357c4280fac4cbea">GetErrorMsg</a> () const </td></tr>
<tr class="memdesc:a3a7419462c0f53dd357c4280fac4cbea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the failure string if any. <a href="#a3a7419462c0f53dd357c4280fac4cbea">More...</a><br/></td></tr>
<tr class="separator:a3a7419462c0f53dd357c4280fac4cbea"><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:a2cc5d7663f04b1a355c427a6c7f5c3c1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a2cc5d7663f04b1a355c427a6c7f5c3c1">Update</a> (int idx, <a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, INTERMEDIATE *dst)</td></tr>
<tr class="separator:a2cc5d7663f04b1a355c427a6c7f5c3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72c45200de4d364e2f2023448ddf839b"><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__udf_1_1UdaTestHarnessBase.html#a72c45200de4d364e2f2023448ddf839b">Execute</a> (const RESULT &amp;expected, <a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4a">UdaExecutionMode</a> mode)</td></tr>
<tr class="memdesc:a72c45200de4d364e2f2023448ddf839b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the UDA in all the modes, validating the result is 'expected' each time. <a href="#a72c45200de4d364e2f2023448ddf839b">More...</a><br/></td></tr>
<tr class="separator:a72c45200de4d364e2f2023448ddf839b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13e2dbb27ee60ca9283c592ba054107d"><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__udf_1_1UdaTestHarnessBase.html#a13e2dbb27ee60ca9283c592ba054107d">CheckContext</a> (<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context)</td></tr>
<tr class="memdesc:a13e2dbb27ee60ca9283c592ba054107d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if there is an error set in the context. <a href="#a13e2dbb27ee60ca9283c592ba054107d">More...</a><br/></td></tr>
<tr class="separator:a13e2dbb27ee60ca9283c592ba054107d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd55131363f9fa7b635bbc44792a88b"><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__udf_1_1UdaTestHarnessBase.html#a9fd55131363f9fa7b635bbc44792a88b">CheckResult</a> (const RESULT &amp;x, const RESULT &amp;y)</td></tr>
<tr class="memdesc:a9fd55131363f9fa7b635bbc44792a88b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies x == y, using the custom comparator if set. <a href="#a9fd55131363f9fa7b635bbc44792a88b">More...</a><br/></td></tr>
<tr class="separator:a9fd55131363f9fa7b635bbc44792a88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3607746f3b8c2b82b293e656bc5e2171"><td class="memItemLeft" align="right" valign="top">RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a3607746f3b8c2b82b293e656bc5e2171">ExecuteSingleNode</a> (<a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *result_context)</td></tr>
<tr class="separator:a3607746f3b8c2b82b293e656bc5e2171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacca961b9d694c86785e189d7309ebed"><td class="memItemLeft" align="right" valign="top">RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aacca961b9d694c86785e189d7309ebed">ExecuteOneLevel</a> (int num_nodes, <a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *result_context)</td></tr>
<tr class="separator:aacca961b9d694c86785e189d7309ebed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7727a842cfbbde947239432adfc98a9"><td class="memItemLeft" align="right" valign="top">RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aa7727a842cfbbde947239432adfc98a9">ExecuteTwoLevel</a> (int num1, int num2, <a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *result_context)</td></tr>
<tr class="separator:aa7727a842cfbbde947239432adfc98a9"><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:a285855c6e9e998bdb42d2220082dd618"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a65723abfa32ed4349b3a74d14a47c67c">InitFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a285855c6e9e998bdb42d2220082dd618">init_fn_</a></td></tr>
<tr class="memdesc:a285855c6e9e998bdb42d2220082dd618"><td class="mdescLeft">&#160;</td><td class="mdescRight">UDA functions. <a href="#a285855c6e9e998bdb42d2220082dd618">More...</a><br/></td></tr>
<tr class="separator:a285855c6e9e998bdb42d2220082dd618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e090c6ed8cc4b60175c7c7c10e1157"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#acc749d94ac316d4d0331a143892c7a9b">MergeFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ae3e090c6ed8cc4b60175c7c7c10e1157">merge_fn_</a></td></tr>
<tr class="separator:ae3e090c6ed8cc4b60175c7c7c10e1157"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45c13cace473230bd9480a9b014f76df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aea57002224fa561be0efd9d2d0923d6c">SerializeFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a45c13cace473230bd9480a9b014f76df">serialize_fn_</a></td></tr>
<tr class="separator:a45c13cace473230bd9480a9b014f76df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f08cf9cd55b637eeecc4aab102ce80c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ab1d5bd1f35c8a67dffc5bd5b533843ca">FinalizeFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a0f08cf9cd55b637eeecc4aab102ce80c">finalize_fn_</a></td></tr>
<tr class="separator:a0f08cf9cd55b637eeecc4aab102ce80c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebc7d4e0c45007fec20da2688ecb598b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ac93b73e66fac22e219e2938338535ae4">ResultComparator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aebc7d4e0c45007fec20da2688ecb598b">result_comparator_fn_</a></td></tr>
<tr class="memdesc:aebc7d4e0c45007fec20da2688ecb598b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Customer comparator, NULL if default == should be used. <a href="#aebc7d4e0c45007fec20da2688ecb598b">More...</a><br/></td></tr>
<tr class="separator:aebc7d4e0c45007fec20da2688ecb598b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc79c2385a54f0c3c0c7c298669355e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#abc79c2385a54f0c3c0c7c298669355e6">num_input_values_</a></td></tr>
<tr class="memdesc:abc79c2385a54f0c3c0c7c298669355e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set during <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a72c45200de4d364e2f2023448ddf839b" title="Runs the UDA in all the modes, validating the result is &#39;expected&#39; each time. ">Execute()</a> by subclass. <a href="#abc79c2385a54f0c3c0c7c298669355e6">More...</a><br/></td></tr>
<tr class="separator:abc79c2385a54f0c3c0c7c298669355e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ea1b893506725e1db69d7321aef1ab1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a3ea1b893506725e1db69d7321aef1ab1">fixed_buffer_byte_size_</a></td></tr>
<tr class="memdesc:a3ea1b893506725e1db69d7321aef1ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer len for intermediate results if the type is TYPE_FIXED_BUFFER. <a href="#a3ea1b893506725e1db69d7321aef1ab1">More...</a><br/></td></tr>
<tr class="separator:a3ea1b893506725e1db69d7321aef1ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af984fe38278b0f581e08e39471354a1d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#af984fe38278b0f581e08e39471354a1d">error_msg_</a></td></tr>
<tr class="memdesc:af984fe38278b0f581e08e39471354a1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error message if anything went wrong during the execution. <a href="#af984fe38278b0f581e08e39471354a1d">More...</a><br/></td></tr>
<tr class="separator:af984fe38278b0f581e08e39471354a1d"><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:ad72b2ce901f5c25d5a66ecd05e837d62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a9f869dd97cf49f0e6bccb406cb072a06">UpdateFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#ad72b2ce901f5c25d5a66ecd05e837d62">update_fn_</a></td></tr>
<tr class="separator:ad72b2ce901f5c25d5a66ecd05e837d62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1902b5e5a15a13d55d712fee9f250e81"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; INPUT1 &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a1902b5e5a15a13d55d712fee9f250e81">input1_</a></td></tr>
<tr class="separator:a1902b5e5a15a13d55d712fee9f250e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20aa5af9bcaccca2a3b090a7b7ec5eec"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; INPUT2 &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a20aa5af9bcaccca2a3b090a7b7ec5eec">input2_</a></td></tr>
<tr class="separator:a20aa5af9bcaccca2a3b090a7b7ec5eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a456140e74ee392cfb45e84afa284f880"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; INPUT3 &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a456140e74ee392cfb45e84afa284f880">input3_</a></td></tr>
<tr class="separator:a456140e74ee392cfb45e84afa284f880"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename RESULT, typename INTERMEDIATE, typename INPUT1, typename INPUT2, typename INPUT3&gt;<br/>
class impala_udf::UdaTestHarness3&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;</h3>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00217">217</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a6374e03eeb1cf267f672848d07fd866d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">UdaTestHarnessBase</a>&lt;RESULT, INTERMEDIATE&gt; <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::<a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a6374e03eeb1cf267f672848d07fd866d">BaseClass</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00222">222</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab1d5bd1f35c8a67dffc5bd5b533843ca"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef RESULT(* <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::FinalizeFn)(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;value)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00050">50</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a65723abfa32ed4349b3a74d14a47c67c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::InitFn)(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, INTERMEDIATE *result)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00042">42</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="acc749d94ac316d4d0331a143892c7a9b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::MergeFn)(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;src, INTERMEDIATE *dst)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00044">44</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac93b73e66fac22e219e2938338535ae4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classbool.html">bool</a>(* <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::ResultComparator)(const RESULT &amp;x, const RESULT &amp;y)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>UDA test harness allows for custom comparator to validate results. UDAs can specify a custom comparator to, for example, tolerate numerical imprecision. Returns true if x and y should be treated as equal. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00055">55</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="aea57002224fa561be0efd9d2d0923d6c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef const INTERMEDIATE(* <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::SerializeFn)(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INTERMEDIATE &amp;type)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00047">47</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9f869dd97cf49f0e6bccb406cb072a06"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::UpdateFn)(<a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *context, const INPUT1 &amp;input1, const INPUT2 &amp;input2, const INPUT3 &amp;input3, INTERMEDIATE *result)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00219">219</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a031fdfb9e8b57b1b9628fbb70e48dea4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::<a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">UdaTestHarness3</a> </td>
<td>(</td>
<td class="paramtype">typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a65723abfa32ed4349b3a74d14a47c67c">BaseClass::InitFn</a>&#160;</td>
<td class="paramname"><em>init_fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a9f869dd97cf49f0e6bccb406cb072a06">UpdateFn</a>&#160;</td>
<td class="paramname"><em>update_fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#acc749d94ac316d4d0331a143892c7a9b">BaseClass::MergeFn</a>&#160;</td>
<td class="paramname"><em>merge_fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aea57002224fa561be0efd9d2d0923d6c">BaseClass::SerializeFn</a>&#160;</td>
<td class="paramname"><em>serialize_fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ab1d5bd1f35c8a67dffc5bd5b533843ca">BaseClass::FinalizeFn</a>&#160;</td>
<td class="paramname"><em>finalize_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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00224">224</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a13e2dbb27ee60ca9283c592ba054107d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbool.html">bool</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::CheckContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</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">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns false if there is an error set in the context. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00075">75</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
<p>References <a class="el" href="udf_8cc_source.html#l00257">impala_udf::FunctionContext::error_msg()</a>, and <a class="el" href="udf_8cc_source.html#l00253">impala_udf::FunctionContext::has_error()</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00084">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::ScopedFunctionContext::~ScopedFunctionContext()</a>.</p>
</div>
</div>
<a class="anchor" id="a9fd55131363f9fa7b635bbc44792a88b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbool.html">bool</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::CheckResult </td>
<td>(</td>
<td class="paramtype">const RESULT &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const RESULT &amp;&#160;</td>
<td class="paramname"><em>y</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>Verifies x == y, using the custom comparator if set. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00086">86</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
</div>
</div>
<a class="anchor" id="a72c45200de4d364e2f2023448ddf839b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbool.html">bool</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::Execute </td>
<td>(</td>
<td class="paramtype">const RESULT &amp;&#160;</td>
<td class="paramname"><em>expected</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4a">UdaExecutionMode</a>&#160;</td>
<td class="paramname"><em>mode</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>Runs the UDA in all the modes, validating the result is 'expected' each time. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00094">94</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
<p>References <a class="el" href="uda-test-harness_8h_source.html#l00033">impala_udf::ALL</a>, <a class="el" href="udf-test-harness_8cc_source.html#l00025">impala_udf::UdfTestHarness::CreateTestContext()</a>, <a class="el" href="udf-debug_8h_source.html#l00027">impala_udf::DebugString()</a>, <a class="el" href="uda-test-harness_8h_source.html#l00035">impala_udf::ONE_LEVEL</a>, <a class="el" href="uda-test-harness_8h_source.html#l00034">impala_udf::SINGLE_NODE</a>, and <a class="el" href="uda-test-harness_8h_source.html#l00036">impala_udf::TWO_LEVEL</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00165">impala_udf::UdaTestHarness&lt; RESULT, INTERMEDIATE, INPUT &gt;::Execute()</a>.</p>
</div>
</div>
<a class="anchor" id="ae966911b67ad3646eb1dd01a3e508be1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbool.html">bool</a> <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::Execute </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; INPUT1 &gt; &amp;&#160;</td>
<td class="paramname"><em>values1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; INPUT2 &gt; &amp;&#160;</td>
<td class="paramname"><em>values2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; INPUT3 &gt; &amp;&#160;</td>
<td class="paramname"><em>values3</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const RESULT &amp;&#160;</td>
<td class="paramname"><em>expected</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4a">UdaExecutionMode</a>&#160;</td>
<td class="paramname"><em>mode</em> = <code><a class="el" href="namespaceimpala__udf.html#a790d3383266c2a2ac837719b434b6d4aa32f9ddb062393a118b7dd138f71a3ff0">ALL</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the UDA in all the modes, validating the result is 'expected' each time. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00372">372</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
</div>
</div>
<a class="anchor" id="aacca961b9d694c86785e189d7309ebed"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">RESULT <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::ExecuteOneLevel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *&#160;</td>
<td class="paramname"><em>result_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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the UDA, simulating a single level aggregation. The values are processed on num_nodes + 1 contexts. There are num_nodes that do update and serialize. There is a final context that does merge and finalize. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00182">182</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
<p>References <a class="el" href="udf-test-harness_8cc_source.html#l00025">impala_udf::UdfTestHarness::CreateTestContext()</a>, and <a class="el" href="uda-test-harness_8h_source.html#l00090">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::ScopedFunctionContext::get()</a>.</p>
</div>
</div>
<a class="anchor" id="a3607746f3b8c2b82b293e656bc5e2171"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">RESULT <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::ExecuteSingleNode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *&#160;</td>
<td class="paramname"><em>result_context</em></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>Runs the UDA on a single node. The entire execution happens in 1 context. The UDA does a update on all the input values and then a finalize. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00160">160</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
<p>References <a class="el" href="uda-test-harness_8h_source.html#l00090">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::ScopedFunctionContext::get()</a>.</p>
</div>
</div>
<a class="anchor" id="aa7727a842cfbbde947239432adfc98a9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">RESULT <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::ExecuteTwoLevel </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structimpala__udf_1_1UdaTestHarnessBase_1_1ScopedFunctionContext.html">ScopedFunctionContext</a> *&#160;</td>
<td class="paramname"><em>result_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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the UDA, simulating a two level aggregation with num1 in the first level and num2 in the second. The values are processed in num1 + num2 contexts. </p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00238">238</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
<p>References <a class="el" href="udf-test-harness_8cc_source.html#l00025">impala_udf::UdfTestHarness::CreateTestContext()</a>, and <a class="el" href="uda-test-harness_8h_source.html#l00090">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::ScopedFunctionContext::get()</a>.</p>
</div>
</div>
<a class="anchor" id="a3a7419462c0f53dd357c4280fac4cbea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::GetErrorMsg </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>Returns the failure string if any. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00067">67</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>References <a class="el" href="uda-test-harness_8h_source.html#l00137">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::error_msg_</a>.</p>
<p>Referenced by <a class="el" href="aggregate-functions-test_8cc_source.html#l00068">TEST()</a>, <a class="el" href="uda-sample-test_8cc_source.html#l00054">TestAvg()</a>, <a class="el" href="uda-sample-test_8cc_source.html#l00025">TestCount()</a>, and <a class="el" href="uda-sample-test_8cc_source.html#l00070">TestStringConcat()</a>.</p>
</div>
</div>
<a class="anchor" id="a9b37227a3ff36c97bb077607e4e594ac"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::SetIntermediateSize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>byte_size</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>This must be called if the INTERMEDIATE is TYPE_FIXED_BUFFER. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00062">62</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>References <a class="el" href="uda-test-harness_8h_source.html#l00134">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::fixed_buffer_byte_size_</a>.</p>
<p>Referenced by <a class="el" href="uda-test_8cc_source.html#l00270">TEST()</a>, and <a class="el" href="uda-sample-test_8cc_source.html#l00054">TestAvg()</a>.</p>
</div>
</div>
<a class="anchor" id="aa6db12bf6e1790c486800bcfd10a7e7b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::SetResultComparator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ac93b73e66fac22e219e2938338535ae4">ResultComparator</a>&#160;</td>
<td class="paramname"><em>fn</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="uda-test-harness_8h_source.html#l00057">57</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>References <a class="el" href="uda-test-harness_8h_source.html#l00128">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::result_comparator_fn_</a>.</p>
<p>Referenced by <a class="el" href="aggregate-functions-test_8cc_source.html#l00068">TEST()</a>.</p>
</div>
</div>
<a class="anchor" id="a2cc5d7663f04b1a355c427a6c7f5c3c1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::Update </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classimpala__udf_1_1FunctionContext.html">FunctionContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INTERMEDIATE *&#160;</td>
<td class="paramname"><em>dst</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>Implements <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ae4ef4560b1f5c6a10597ec2d9a905e42">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;</a>.</p>
<p>Definition at line <a class="el" href="uda-test-harness-impl_8h_source.html#l00389">389</a> of file <a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="af984fe38278b0f581e08e39471354a1d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::error_msg_</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>Error message if anything went wrong during the execution. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00137">137</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00067">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::GetErrorMsg()</a>.</p>
</div>
</div>
<a class="anchor" id="a0f08cf9cd55b637eeecc4aab102ce80c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ab1d5bd1f35c8a67dffc5bd5b533843ca">FinalizeFn</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::finalize_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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00125">125</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3ea1b893506725e1db69d7321aef1ab1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::fixed_buffer_byte_size_</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>Buffer len for intermediate results if the type is TYPE_FIXED_BUFFER. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00134">134</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00062">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::SetIntermediateSize()</a>.</p>
</div>
</div>
<a class="anchor" id="a285855c6e9e998bdb42d2220082dd618"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a65723abfa32ed4349b3a74d14a47c67c">InitFn</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::init_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>UDA functions. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00122">122</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1902b5e5a15a13d55d712fee9f250e81"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;INPUT1&gt;* <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::input1_</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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00244">244</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a20aa5af9bcaccca2a3b090a7b7ec5eec"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;INPUT2&gt;* <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::input2_</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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00245">245</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="a456140e74ee392cfb45e84afa284f880"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;INPUT3&gt;* <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::input3_</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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00246">246</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae3e090c6ed8cc4b60175c7c7c10e1157"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#acc749d94ac316d4d0331a143892c7a9b">MergeFn</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::merge_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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00123">123</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="abc79c2385a54f0c3c0c7c298669355e6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::num_input_values_</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>Set during <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#a72c45200de4d364e2f2023448ddf839b" title="Runs the UDA in all the modes, validating the result is &#39;expected&#39; each time. ">Execute()</a> by subclass. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00131">131</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00165">impala_udf::UdaTestHarness&lt; RESULT, INTERMEDIATE, INPUT &gt;::Execute()</a>.</p>
</div>
</div>
<a class="anchor" id="aebc7d4e0c45007fec20da2688ecb598b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#ac93b73e66fac22e219e2938338535ae4">ResultComparator</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::result_comparator_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>Customer comparator, NULL if default == should be used. </p>
<p>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00128">128</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
<p>Referenced by <a class="el" href="uda-test-harness_8h_source.html#l00057">impala_udf::UdaTestHarnessBase&lt; RESULT, INTERMEDIATE &gt;::SetResultComparator()</a>.</p>
</div>
</div>
<a class="anchor" id="a45c13cace473230bd9480a9b014f76df"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html#aea57002224fa561be0efd9d2d0923d6c">SerializeFn</a> <a class="el" href="classimpala__udf_1_1UdaTestHarnessBase.html">impala_udf::UdaTestHarnessBase</a>&lt; RESULT, INTERMEDIATE &gt;::serialize_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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00124">124</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad72b2ce901f5c25d5a66ecd05e837d62"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULT , typename INTERMEDIATE , typename INPUT1 , typename INPUT2 , typename INPUT3 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html#a9f869dd97cf49f0e6bccb406cb072a06">UpdateFn</a> <a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">impala_udf::UdaTestHarness3</a>&lt; RESULT, INTERMEDIATE, INPUT1, INPUT2, INPUT3 &gt;::update_fn_</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>Definition at line <a class="el" href="uda-test-harness_8h_source.html#l00243">243</a> of file <a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>be/src/udf/<a class="el" href="uda-test-harness_8h_source.html">uda-test-harness.h</a></li>
<li>be/src/udf/<a class="el" href="uda-test-harness-impl_8h_source.html">uda-test-harness-impl.h</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__udf.html">impala_udf</a></li><li class="navelem"><a class="el" href="classimpala__udf_1_1UdaTestHarness3.html">UdaTestHarness3</a></li>
<li class="footer">Generated on Thu May 7 2015 16:10:51 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>