blob: 759e8440133ef31031ecc72953eb7713b4fba6f8 [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::DataSink 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_1DataSink.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="#pro-attribs">Protected Attributes</a> &#124;
<a href="classimpala_1_1DataSink-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">impala::DataSink Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Superclass of all data sinks.
<a href="classimpala_1_1DataSink.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="data-sink_8h_source.html">data-sink.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for impala::DataSink:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1DataSink__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::DataSink:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classimpala_1_1DataSink__coll__graph.svg" width="270" height="379"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a616dd2c7c5db006539d924890f161ec7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#a616dd2c7c5db006539d924890f161ec7">DataSink</a> ()</td></tr>
<tr class="separator:a616dd2c7c5db006539d924890f161ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ac73946a07b12a5def2c385f21dbd5b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#a0ac73946a07b12a5def2c385f21dbd5b">~DataSink</a> ()</td></tr>
<tr class="separator:a0ac73946a07b12a5def2c385f21dbd5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1d8007e6e079be3695d5db545ecc446"><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_1DataSink.html#ad1d8007e6e079be3695d5db545ecc446">Prepare</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state)</td></tr>
<tr class="separator:ad1d8007e6e079be3695d5db545ecc446"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a945b469ea9707748efd39273535952c0"><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_1DataSink.html#a945b469ea9707748efd39273535952c0">Open</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state)=0</td></tr>
<tr class="memdesc:a945b469ea9707748efd39273535952c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call before <a class="el" href="classimpala_1_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send()</a> or <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a>. <a href="#a945b469ea9707748efd39273535952c0">More...</a><br/></td></tr>
<tr class="separator:a945b469ea9707748efd39273535952c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab73b647642f7623ceb2ba4457292d276"><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_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state, <a class="el" href="classimpala_1_1RowBatch.html">RowBatch</a> *batch, <a class="el" href="classbool.html">bool</a> eos)=0</td></tr>
<tr class="separator:ab73b647642f7623ceb2ba4457292d276"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a969d37af186687d51ef7c3a369882e3b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close</a> (<a class="el" href="classimpala_1_1RuntimeState.html">RuntimeState</a> *state)=0</td></tr>
<tr class="separator:a969d37af186687d51ef7c3a369882e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af916d5b1c2071e0b1a1101e36e912ddb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#af916d5b1c2071e0b1a1101e36e912ddb">profile</a> ()=0</td></tr>
<tr class="memdesc:af916d5b1c2071e0b1a1101e36e912ddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the runtime profile for the sink. <a href="#af916d5b1c2071e0b1a1101e36e912ddb">More...</a><br/></td></tr>
<tr class="separator:af916d5b1c2071e0b1a1101e36e912ddb"><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:a21b9c84435c65a4f0870fb5055c990e6"><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_1DataSink.html#a21b9c84435c65a4f0870fb5055c990e6">CreateDataSink</a> (<a class="el" href="classimpala_1_1ObjectPool.html">ObjectPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>, const TDataSink &amp;thrift_sink, const std::vector&lt; TExpr &gt; &amp;output_exprs, const TPlanFragmentExecParams &amp;params, const <a class="el" href="classimpala_1_1RowDescriptor.html">RowDescriptor</a> &amp;<a class="el" href="namespaceimpala.html#aa98447566dd6700a2faaaaf3059f4d95">row_desc</a>, boost::scoped_ptr&lt; <a class="el" href="classimpala_1_1DataSink.html">DataSink</a> &gt; *sink)</td></tr>
<tr class="separator:a21b9c84435c65a4f0870fb5055c990e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab95c1680a2c851bed71977e502139b32"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#ab95c1680a2c851bed71977e502139b32">MergeInsertStats</a> (const TInsertStats &amp;src_stats, TInsertStats *dst_stats)</td></tr>
<tr class="separator:ab95c1680a2c851bed71977e502139b32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb54f550a23683ce30805c392d24ebc7"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#acb54f550a23683ce30805c392d24ebc7">OutputInsertStats</a> (const <a class="el" href="namespaceimpala.html#a38c499092e6bf592abe6b171cce4eb15">PartitionStatusMap</a> &amp;stats, const std::string &amp;prefix=&quot;&quot;)</td></tr>
<tr class="memdesc:acb54f550a23683ce30805c392d24ebc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the insert stats contained in the map of insert partition updates to a string. <a href="#acb54f550a23683ce30805c392d24ebc7">More...</a><br/></td></tr>
<tr class="separator:acb54f550a23683ce30805c392d24ebc7"><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:ae28cb708ca3252c487c446c5d6d683d4"><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_1DataSink.html#ae28cb708ca3252c487c446c5d6d683d4">closed_</a></td></tr>
<tr class="separator:ae28cb708ca3252c487c446c5d6d683d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a447d23b1d3b6df7b2720439f3e486d"><td class="memItemLeft" align="right" valign="top">boost::scoped_ptr&lt; <a class="el" href="classimpala_1_1MemTracker.html">MemTracker</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1DataSink.html#a0a447d23b1d3b6df7b2720439f3e486d">expr_mem_tracker_</a></td></tr>
<tr class="separator:a0a447d23b1d3b6df7b2720439f3e486d"><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>Superclass of all data sinks. </p>
<p>Definition at line <a class="el" href="data-sink_8h_source.html#l00039">39</a> of file <a class="el" href="data-sink_8h_source.html">data-sink.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a616dd2c7c5db006539d924890f161ec7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">impala::DataSink::DataSink </td>
<td>(</td>
<td class="paramname"></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="data-sink_8h_source.html#l00041">41</a> of file <a class="el" href="data-sink_8h_source.html">data-sink.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0ac73946a07b12a5def2c385f21dbd5b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual impala::DataSink::~DataSink </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="data-sink_8h_source.html#l00042">42</a> of file <a class="el" href="data-sink_8h_source.html">data-sink.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a969d37af186687d51ef7c3a369882e3b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void impala::DataSink::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><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases all resources that were allocated in <a class="el" href="classimpala_1_1DataSink.html#ad1d8007e6e079be3695d5db545ecc446">Prepare()</a>/Send(). Further <a class="el" href="classimpala_1_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send()</a> calls are illegal after calling <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a>. It must be okay to call this multiple times. Subsequent calls should be ignored. </p>
<p>Implemented in <a class="el" href="classimpala_1_1HdfsTableSink.html#a2ca4efce0b0f420ca113819620f023c7">impala::HdfsTableSink</a>, <a class="el" href="classimpala_1_1DataStreamSender.html#a54b74afd5299ec9465d49cc748485d00">impala::DataStreamSender</a>, and <a class="el" href="classimpala_1_1HBaseTableSink.html#a04680d8d62c9853bb7f4b73d3d2f4ce3">impala::HBaseTableSink</a>.</p>
</div>
</div>
<a class="anchor" id="a21b9c84435c65a4f0870fb5055c990e6"></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::DataSink::CreateDataSink </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 TDataSink &amp;&#160;</td>
<td class="paramname"><em>thrift_sink</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>output_exprs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TPlanFragmentExecParams &amp;&#160;</td>
<td class="paramname"><em>params</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">boost::scoped_ptr&lt; <a class="el" href="classimpala_1_1DataSink.html">DataSink</a> &gt; *&#160;</td>
<td class="paramname"><em>sink</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new data sink from thrift_sink. A pointer to the new sink is written to *sink, and is owned by the caller. </p>
<p>Definition at line <a class="el" href="data-sink_8cc_source.html#l00034">34</a> of file <a class="el" href="data-sink_8cc_source.html">data-sink.cc</a>.</p>
<p>References <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>.</p>
<p>Referenced by <a class="el" href="plan-fragment-executor_8cc_source.html#l00080">impala::PlanFragmentExecutor::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="ab95c1680a2c851bed71977e502139b32"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void impala::DataSink::MergeInsertStats </td>
<td>(</td>
<td class="paramtype">const TInsertStats &amp;&#160;</td>
<td class="paramname"><em>src_stats</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TInsertStats *&#160;</td>
<td class="paramname"><em>dst_stats</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Merges one update to the insert stats for a partition. dst_stats will have the combined stats of src_stats and dst_stats after this method returns. </p>
<p>Definition at line <a class="el" href="data-sink_8cc_source.html#l00090">90</a> of file <a class="el" href="data-sink_8cc_source.html">data-sink.cc</a>.</p>
<p>Referenced by <a class="el" href="hdfs-table-sink_8cc_source.html#l00565">impala::HdfsTableSink::FinalizePartitionFile()</a>.</p>
</div>
</div>
<a class="anchor" id="a945b469ea9707748efd39273535952c0"></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="classimpala_1_1Status.html">Status</a> impala::DataSink::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><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Call before <a class="el" href="classimpala_1_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send()</a> or <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a>. </p>
<p>Implemented in <a class="el" href="classimpala_1_1HdfsTableSink.html#a97ae2a720cc57b784f2bd23ec4ee9a15">impala::HdfsTableSink</a>, <a class="el" href="classimpala_1_1DataStreamSender.html#a441b986df33ba936a2de32af7e84c9d8">impala::DataStreamSender</a>, and <a class="el" href="classimpala_1_1HBaseTableSink.html#a2a4b19d5e4068d92af8c1d619b8da6ec">impala::HBaseTableSink</a>.</p>
</div>
</div>
<a class="anchor" id="acb54f550a23683ce30805c392d24ebc7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">string impala::DataSink::OutputInsertStats </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceimpala.html#a38c499092e6bf592abe6b171cce4eb15">PartitionStatusMap</a> &amp;&#160;</td>
<td class="paramname"><em>stats</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>prefix</em> = <code>&quot;&quot;</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">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Outputs the insert stats contained in the map of insert partition updates to a string. </p>
<p>Definition at line <a class="el" href="data-sink_8cc_source.html#l00103">103</a> of file <a class="el" href="data-sink_8cc_source.html">data-sink.cc</a>.</p>
<p>References <a class="el" href="pretty-printer_8h_source.html#l00033">impala::PrettyPrinter::Print()</a>.</p>
</div>
</div>
<a class="anchor" id="ad1d8007e6e079be3695d5db545ecc446"></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::DataSink::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><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Setup. Call before <a class="el" href="classimpala_1_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send()</a>, <a class="el" href="classimpala_1_1DataSink.html#a945b469ea9707748efd39273535952c0" title="Call before Send() or Close(). ">Open()</a>, or <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a>. Subclasses must call <a class="el" href="classimpala_1_1DataSink.html#ad1d8007e6e079be3695d5db545ecc446">DataSink::Prepare()</a>. </p>
<p>Reimplemented in <a class="el" href="classimpala_1_1HdfsTableSink.html#a3f2e0429bebe4586bc9140eafd8a21f1">impala::HdfsTableSink</a>, <a class="el" href="classimpala_1_1DataStreamSender.html#acef39c14c7ed4b85122aa3c0cde80247">impala::DataStreamSender</a>, and <a class="el" href="classimpala_1_1HBaseTableSink.html#afbc3315e15499c6ea5a506662af63384">impala::HBaseTableSink</a>.</p>
<p>Definition at line <a class="el" href="data-sink_8cc_source.html#l00136">136</a> of file <a class="el" href="data-sink_8cc_source.html">data-sink.cc</a>.</p>
<p>References <a class="el" href="data-sink_8h_source.html#l00085">expr_mem_tracker_</a>, <a class="el" href="runtime-state_8h_source.html#l00140">impala::RuntimeState::instance_mem_tracker()</a>, and <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>.</p>
<p>Referenced by <a class="el" href="hdfs-table-sink_8cc_source.html#l00107">impala::HdfsTableSink::Prepare()</a>.</p>
</div>
</div>
<a class="anchor" id="af916d5b1c2071e0b1a1101e36e912ddb"></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="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a>* impala::DataSink::profile </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the runtime profile for the sink. </p>
<p>Implemented in <a class="el" href="classimpala_1_1HdfsTableSink.html#a7710498d89015e8b80b60ef21eeb93f7">impala::HdfsTableSink</a>, <a class="el" href="classimpala_1_1DataStreamSender.html#aad9605700b73457dfec1ce13604ae6d2">impala::DataStreamSender</a>, and <a class="el" href="classimpala_1_1HBaseTableSink.html#aa803f17e61bbdfca9c39ac0484a70323">impala::HBaseTableSink</a>.</p>
</div>
</div>
<a class="anchor" id="ab73b647642f7623ceb2ba4457292d276"></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="classimpala_1_1Status.html">Status</a> impala::DataSink::Send </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_1RowBatch.html">RowBatch</a> *&#160;</td>
<td class="paramname"><em>batch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
<td class="paramname"><em>eos</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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a row batch into this sink. eos should be true when the last batch is passed to <a class="el" href="classimpala_1_1DataSink.html#ab73b647642f7623ceb2ba4457292d276">Send()</a> </p>
<p>Implemented in <a class="el" href="classimpala_1_1HdfsTableSink.html#a280d7bde9f6b5180794281d066c24ba6">impala::HdfsTableSink</a>, <a class="el" href="classimpala_1_1DataStreamSender.html#a9b36b9b654831d4757e22f131196343b">impala::DataStreamSender</a>, and <a class="el" href="classimpala_1_1HBaseTableSink.html#aaa202e2df04365e5de5eec94bffad7a3">impala::HBaseTableSink</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ae28cb708ca3252c487c446c5d6d683d4"></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::DataSink::closed_</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>Set to true after <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a> has been called. Subclasses should check and set this in <a class="el" href="classimpala_1_1DataSink.html#a969d37af186687d51ef7c3a369882e3b">Close()</a>. </p>
<p>Definition at line <a class="el" href="data-sink_8h_source.html#l00083">83</a> of file <a class="el" href="data-sink_8h_source.html">data-sink.h</a>.</p>
<p>Referenced by <a class="el" href="hdfs-table-sink_8cc_source.html#l00602">impala::HdfsTableSink::Close()</a>.</p>
</div>
</div>
<a class="anchor" id="a0a447d23b1d3b6df7b2720439f3e486d"></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="classimpala_1_1MemTracker.html">MemTracker</a>&gt; impala::DataSink::expr_mem_tracker_</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="data-sink_8h_source.html#l00085">85</a> of file <a class="el" href="data-sink_8h_source.html">data-sink.h</a>.</p>
<p>Referenced by <a class="el" href="data-sink_8cc_source.html#l00136">Prepare()</a>, and <a class="el" href="hdfs-table-sink_8cc_source.html#l00072">impala::HdfsTableSink::PrepareExprs()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>be/src/exec/<a class="el" href="data-sink_8h_source.html">data-sink.h</a></li>
<li>be/src/exec/<a class="el" href="data-sink_8cc_source.html">data-sink.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_1DataSink.html">DataSink</a></li>
<li class="footer">Generated on Thu May 7 2015 16:10:46 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>