blob: b618bc28529b622b311f854e922b4c059d874f3e [file] [log] [blame]
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!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"/>
<title>Kudu C++ client API: kudu::client::KuduScanBatch Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</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">
<img id="MSearchSelect" src="search/search.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)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<div class="navpath"><b>kudu</b>::<b>client</b>::<a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a>
</div>
</div>
<div class="contents">
<h1>kudu::client::KuduScanBatch Class Reference</h1><!-- doxytag: class="kudu::client::KuduScanBatch" -->
<p>A batch of zero or more rows returned by a scan operation.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="scan__batch_8h_source.html">scan_batch.h</a>&gt;</code></p>
<p><a href="classkudu_1_1client_1_1KuduScanBatch-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1a827120c84eeedb703451bd5782467"></a><!-- doxytag: member="kudu::client::KuduScanBatch::value_type" ref="ae1a827120c84eeedb703451bd5782467" args="" -->
typedef RowPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#ae1a827120c84eeedb703451bd5782467">value_type</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A handy typedef for the RowPtr. <br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a16e45694c5932eb3decc2184c3834157">NumRows</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">KuduScanBatch::RowPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a93c2f0914140dd405a51d57e2f75014a">Row</a> (int idx) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a30f55cf8f3c9d6fcb47537e586d82e9f">begin</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#ad30dcfafb276b5347842882cf68cb522">end</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a3b58e77f53beea357fbb8bcddaab3137">projection_schema</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">RowPtr</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#af37f56c4ef55f2e140fcea2a07340054">IsNull</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a1b0b04656fec608919b7b6ac7c99451e">IsNull</a> (int col_idx) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#ae07d3fd8616c5c69cc0a4ef3d247bf2c">cell</a> (int col_idx) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a57ebd850adefa8af87f815540d890a34">ToString</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">KuduScanBatch::RowPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#ab057b7b1bfb713a7e8f216e3b288cb10">operator*</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const_iterator &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#ad5df483ed3172caab5a8d6a72abfad0c">operator++</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a4b1ad47fd7d429859b6181825a063c48">operator++</a> (int)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a378a5844a4b4774056b26f0003c15048">operator==</a> (const const_iterator &amp;other) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#afd2b2c4cb038cbd366c2af8cf09a3a68">operator!=</a> (const const_iterator &amp;other) const </td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters for integral type columns by column name.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp1a040b2ab8ff1019c4c1ac7986a0f4b6"></a> </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_name</em>&nbsp;</td><td>The name of the target column. </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Placeholder for the result value. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Operation result status. Return a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> if at least one of the following is <code>true:</code> <ul>
<li>The type does not match. </li>
<li>The value is unset. </li>
<li>The value is <code>NULL</code>. </li>
</ul>
</dd></dl>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b1a867cf2fd47b697fe3a68e28fadd8"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetBool" ref="a3b1a867cf2fd47b697fe3a68e28fadd8" args="(const Slice &amp;col_name, bool *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetBool</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, bool *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bfea7b94e64073562892445a2a2ac7b"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt8" ref="a7bfea7b94e64073562892445a2a2ac7b" args="(const Slice &amp;col_name, int8_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt8</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, int8_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbaff6bf597df2fa0696bdc5cbdfb037"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt16" ref="afbaff6bf597df2fa0696bdc5cbdfb037" args="(const Slice &amp;col_name, int16_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt16</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, int16_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc5120c7aadb029e442235a7131f6fd2"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt32" ref="abc5120c7aadb029e442235a7131f6fd2" args="(const Slice &amp;col_name, int32_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt32</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, int32_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51d43f077b4510b58a2fd471ae81f7b0"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt64" ref="a51d43f077b4510b58a2fd471ae81f7b0" args="(const Slice &amp;col_name, int64_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt64</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, int64_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1261a486faa04d0c984b50132e0a4a3"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetUnixTimeMicros" ref="ae1261a486faa04d0c984b50132e0a4a3" args="(const Slice &amp;col_name, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetUnixTimeMicros</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70ea98bc135e0b86285530c58e33bff3"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetFloat" ref="a70ea98bc135e0b86285530c58e33bff3" args="(const Slice &amp;col_name, float *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetFloat</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, float *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d09dafc214133f2306eebc9aefddff0"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetDouble" ref="a7d09dafc214133f2306eebc9aefddff0" args="(const Slice &amp;col_name, double *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDouble</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, double *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters for integral type columns by column index.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp3c5b6444d156b950298ecfab7c599183"></a> These methods are faster than their name-based counterparts since using indices avoids a hashmap lookup, so index-based getters should be preferred in performance-sensitive code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_index</em>&nbsp;</td><td>The index of the column. </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Pointer to the placeholder to put the resulting value.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Operation result status. Return a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> if at least one of the following is <code>true:</code> <ul>
<li>The type does not match. </li>
<li>The value is unset. </li>
<li>The value is <code>NULL</code>. </li>
</ul>
</dd></dl>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b1044c3b78e5a6407c2a797005b0e21"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetBool" ref="a4b1044c3b78e5a6407c2a797005b0e21" args="(int col_idx, bool *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetBool</b> (int col_idx, bool *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81a30b5b89f6fa106b5d8575c3fb62b9"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt8" ref="a81a30b5b89f6fa106b5d8575c3fb62b9" args="(int col_idx, int8_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt8</b> (int col_idx, int8_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5f35c107dc26165546065189dd53dfa"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt16" ref="ab5f35c107dc26165546065189dd53dfa" args="(int col_idx, int16_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt16</b> (int col_idx, int16_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab321b8c245cc1748c3b3ecdf507b08fb"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt32" ref="ab321b8c245cc1748c3b3ecdf507b08fb" args="(int col_idx, int32_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt32</b> (int col_idx, int32_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab59039c6f073df0b57ddc16fb8d8c432"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetInt64" ref="ab59039c6f073df0b57ddc16fb8d8c432" args="(int col_idx, int64_t *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetInt64</b> (int col_idx, int64_t *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc4dfced2215c5115fecb647fa73e4e7"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetUnixTimeMicros" ref="acc4dfced2215c5115fecb647fa73e4e7" args="(int col_idx, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetUnixTimeMicros</b> (int col_idx, int64_t *micros_since_utc_epoch) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae41dd0f1e2b4bf074ded210382b825bd"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetFloat" ref="ae41dd0f1e2b4bf074ded210382b825bd" args="(int col_idx, float *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetFloat</b> (int col_idx, float *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2b7fb17cac4571139b2eaca761a99c0"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetDouble" ref="ab2b7fb17cac4571139b2eaca761a99c0" args="(int col_idx, double *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDouble</b> (int col_idx, double *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters for string/binary column by column name.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp84d245f3a6f0d584c57e867b85ebe9ad"></a> Get the string/binary value for a column by its name.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_name</em>&nbsp;</td><td>Name of the column. </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Pointer to the placeholder to put the resulting value. Note that the method does not copy the value. Callers should copy the resulting <a class="el" href="classkudu_1_1Slice.html" title="A wrapper around externally allocated data.">Slice</a> if necessary. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Operation result status. Return a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> if at least one of the following is <code>true:</code> <ul>
<li>The type does not match. </li>
<li>The value is unset. </li>
<li>The value is <code>NULL</code>. </li>
</ul>
</dd></dl>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8f9ba0ff9a1fcd8326b012e689ad4a7"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetString" ref="ad8f9ba0ff9a1fcd8326b012e689ad4a7" args="(const Slice &amp;col_name, Slice *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetString</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, <a class="el" href="classkudu_1_1Slice.html">Slice</a> *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fc063d4fb631b14f5651a84861ffa4b"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetBinary" ref="a2fc063d4fb631b14f5651a84861ffa4b" args="(const Slice &amp;col_name, Slice *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetBinary</b> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, <a class="el" href="classkudu_1_1Slice.html">Slice</a> *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td colspan="2"><div class="groupHeader">Getters for string/binary column by column index.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa506e4f53b3aff45d4d78614bdad96b9"></a> Get the string/binary value for a column by its index.</p>
<p>These methods are faster than their name-based counterparts since using indices avoids a hashmap lookup, so index-based getters should be preferred in performance-sensitive code.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_index</em>&nbsp;</td><td>The index of the column. </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>Pointer to the placeholder to put the resulting value. Note that the method does not copy the value. Callers should copy the resulting <a class="el" href="classkudu_1_1Slice.html" title="A wrapper around externally allocated data.">Slice</a> if necessary. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Operation result status. Return a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> if at least one of the following is <code>true:</code> <ul>
<li>The type does not match. </li>
<li>The value is unset. </li>
<li>The value is <code>NULL</code>. </li>
</ul>
</dd></dl>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a887dd6b7e20ada26ee705c315fd86b56"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetString" ref="a887dd6b7e20ada26ee705c315fd86b56" args="(int col_idx, Slice *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetString</b> (int col_idx, <a class="el" href="classkudu_1_1Slice.html">Slice</a> *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a921dfdeba21588f7a3c2d5e360d3268e"></a><!-- doxytag: member="kudu::client::KuduScanBatch::GetBinary" ref="a921dfdeba21588f7a3c2d5e360d3268e" args="(int col_idx, Slice *val) const WARN_UNUSED_RESULT" -->
<a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetBinary</b> (int col_idx, <a class="el" href="classkudu_1_1Slice.html">Slice</a> *val) const WARN_UNUSED_RESULT</td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79d30f3059c783e077627a6f6d153c1b"></a><!-- doxytag: member="kudu::client::KuduScanBatch::KuduScanner" ref="a79d30f3059c783e077627a6f6d153c1b" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>KuduScanner</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafe7501e17c36d1c5dc2971f69a776de"></a><!-- doxytag: member="kudu::client::KuduScanBatch::tools::ReplicaDumper" ref="aafe7501e17c36d1c5dc2971f69a776de" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>tools::ReplicaDumper</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f719ac1eb44a4d656839448282399a3"></a><!-- doxytag: member="kudu::client::KuduScanBatch::KuduScanBatch" ref="a0f719ac1eb44a4d656839448282399a3" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>KuduScanBatch</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af051935fc85b035f0fc17b393052ced1"></a><!-- doxytag: member="kudu::client::KuduScanBatch::SliceKeysTestSetup" ref="af051935fc85b035f0fc17b393052ced1" args="" -->
struct&nbsp;</td><td class="memItemRight" valign="bottom"><b>SliceKeysTestSetup</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e5fe5d91d18689176714dd83a7f05fb"></a><!-- doxytag: member="kudu::client::KuduScanBatch::IntKeysTestSetup" ref="a8e5fe5d91d18689176714dd83a7f05fb" args="" -->
struct&nbsp;</td><td class="memItemRight" valign="bottom"><b>IntKeysTestSetup</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A batch of zero or more rows returned by a scan operation. </p>
<p>Every call to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a409a42496942e93df5f4879b7a348e87">KuduScanner::NextBatch()</a> returns a batch of zero or more rows. You can iterate over the rows in the batch using:</p>
<p>range-foreach loop (C++11): </p>
<div class="fragment"><pre class="fragment"> <span class="keywordflow">for</span> (<a class="code" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">KuduScanBatch::RowPtr</a> row : batch) {
... row.GetInt(1, ...)
...
}
</pre></div><p>regular for loop (C++03): </p>
<div class="fragment"><pre class="fragment"> <span class="keywordflow">for</span> (KuduScanBatch::const_iterator it = batch.begin(), it != batch.end();
++i) {
<a class="code" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">KuduScanBatch::RowPtr</a> row(*it);
...
}
</pre></div><p> or </p>
<div class="fragment"><pre class="fragment"> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, num_rows = batch.NumRows();
i &lt; num_rows;
i++) {
<a class="code" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">KuduScanBatch::RowPtr</a> row = batch.Row(i);
...
}
</pre></div><dl class="note"><dt><b>Note:</b></dt><dd>In the above example, <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a16e45694c5932eb3decc2184c3834157">NumRows()</a> is only called once at the beginning of the loop to avoid extra calls to the non-inlined method. </dd></dl>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a30f55cf8f3c9d6fcb47537e586d82e9f"></a><!-- doxytag: member="kudu::client::KuduScanBatch::begin" ref="a30f55cf8f3c9d6fcb47537e586d82e9f" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KuduScanBatch::const_iterator kudu::client::KuduScanBatch::begin </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>Forward iterator to the start of the rows in the batch. </dd></dl>
</div>
</div>
<a class="anchor" id="ae07d3fd8616c5c69cc0a4ef3d247bf2c"></a><!-- doxytag: member="kudu::client::KuduScanBatch::cell" ref="ae07d3fd8616c5c69cc0a4ef3d247bf2c" args="(int col_idx) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const void* kudu::client::KuduScanBatch::cell </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>col_idx</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get the column's row data.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Should be avoided unless absolutely necessary. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_idx</em>&nbsp;</td><td>The index of the column. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Raw cell data for the specified index. </dd></dl>
</div>
</div>
<a class="anchor" id="ad30dcfafb276b5347842882cf68cb522"></a><!-- doxytag: member="kudu::client::KuduScanBatch::end" ref="ad30dcfafb276b5347842882cf68cb522" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KuduScanBatch::const_iterator kudu::client::KuduScanBatch::end </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>Forward iterator to the end of the rows in the batch. </dd></dl>
</div>
</div>
<a class="anchor" id="a1b0b04656fec608919b7b6ac7c99451e"></a><!-- doxytag: member="kudu::client::KuduScanBatch::IsNull" ref="a1b0b04656fec608919b7b6ac7c99451e" args="(int col_idx) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduScanBatch::IsNull </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>col_idx</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_idx</em>&nbsp;</td><td>Index of the column. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> iff the specified column of the row has <code>NULL</code> value. </dd></dl>
</div>
</div>
<a class="anchor" id="af37f56c4ef55f2e140fcea2a07340054"></a><!-- doxytag: member="kudu::client::KuduScanBatch::IsNull" ref="af37f56c4ef55f2e140fcea2a07340054" args="(const Slice &amp;col_name) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduScanBatch::IsNull </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;&nbsp;</td>
<td class="paramname"> <em>col_name</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>col_name</em>&nbsp;</td><td>Name of the column. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> iff the specified column of the row has <code>NULL</code> value. </dd></dl>
</div>
</div>
<a class="anchor" id="a16e45694c5932eb3decc2184c3834157"></a><!-- doxytag: member="kudu::client::KuduScanBatch::NumRows" ref="a16e45694c5932eb3decc2184c3834157" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int kudu::client::KuduScanBatch::NumRows </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of rows in this batch. </dd></dl>
</div>
</div>
<a class="anchor" id="afd2b2c4cb038cbd366c2af8cf09a3a68"></a><!-- doxytag: member="kudu::client::KuduScanBatch::operator!=" ref="afd2b2c4cb038cbd366c2af8cf09a3a68" args="(const const_iterator &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduScanBatch::operator!= </td>
<td>(</td>
<td class="paramtype">const const_iterator &amp;&nbsp;</td>
<td class="paramname"> <em>other</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An operator to check whether two iterators are 'not equal'.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>other</em>&nbsp;</td><td>The iterator to compare with. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> iff the other iterator points to a different row in the same batch, or to a row belonging to a different batch altogether. </dd></dl>
</div>
</div>
<a class="anchor" id="ab057b7b1bfb713a7e8f216e3b288cb10"></a><!-- doxytag: member="kudu::client::KuduScanBatch::operator*" ref="ab057b7b1bfb713a7e8f216e3b288cb10" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KuduScanBatch::RowPtr kudu::client::KuduScanBatch::operator* </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The row in the batch the iterator is pointing at. </dd></dl>
</div>
</div>
<a class="anchor" id="a4b1ad47fd7d429859b6181825a063c48"></a><!-- doxytag: member="kudu::client::KuduScanBatch::operator++" ref="a4b1ad47fd7d429859b6181825a063c48" args="(int)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const_iterator kudu::client::KuduScanBatch::operator++ </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Postfix increment operator: advances the iterator to the next position.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>A copy of the iterator pointing to the pre-increment position. </dd></dl>
</div>
</div>
<a class="anchor" id="ad5df483ed3172caab5a8d6a72abfad0c"></a><!-- doxytag: member="kudu::client::KuduScanBatch::operator++" ref="ad5df483ed3172caab5a8d6a72abfad0c" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const_iterator&amp; kudu::client::KuduScanBatch::operator++ </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Prefix increment operator: advances the iterator to the next position.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The reference to the iterator, pointing to the next position. </dd></dl>
</div>
</div>
<a class="anchor" id="a378a5844a4b4774056b26f0003c15048"></a><!-- doxytag: member="kudu::client::KuduScanBatch::operator==" ref="a378a5844a4b4774056b26f0003c15048" args="(const const_iterator &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduScanBatch::operator== </td>
<td>(</td>
<td class="paramtype">const const_iterator &amp;&nbsp;</td>
<td class="paramname"> <em>other</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An operator to check whether two iterators are 'equal'.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>other</em>&nbsp;</td><td>The iterator to compare with. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> iff the other iterator points to the same row of the same batch. </dd></dl>
</div>
</div>
<a class="anchor" id="a3b58e77f53beea357fbb8bcddaab3137"></a><!-- doxytag: member="kudu::client::KuduScanBatch::projection_schema" ref="a3b58e77f53beea357fbb8bcddaab3137" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a>* kudu::client::KuduScanBatch::projection_schema </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The projection schema for this batch. All <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">KuduScanBatch::RowPtr</a> returned by this batch are guaranteed to have this schema. </dd></dl>
</div>
</div>
<a class="anchor" id="a93c2f0914140dd405a51d57e2f75014a"></a><!-- doxytag: member="kudu::client::KuduScanBatch::Row" ref="a93c2f0914140dd405a51d57e2f75014a" args="(int idx) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KuduScanBatch::RowPtr kudu::client::KuduScanBatch::Row </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>idx</em></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get a row at the specified index.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>idx</em>&nbsp;</td><td>The index of the row to return. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A reference to one of the rows in this batch. The returned object is only valid for as long as this <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html" title="A batch of zero or more rows returned by a scan operation.">KuduScanBatch</a> object is valid. </dd></dl>
</div>
</div>
<a class="anchor" id="a92bbfa48e9b503181c2dfb5f11f14e4e"></a><!-- doxytag: member="kudu::client::KuduScanBatch::RowPtr" ref="a92bbfa48e9b503181c2dfb5f11f14e4e" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">kudu::client::KuduScanBatch::RowPtr </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Construct an invalid RowPtr. Before use, you must assign a properly-initialized value. </p>
</div>
</div>
<a class="anchor" id="a57ebd850adefa8af87f815540d890a34"></a><!-- doxytag: member="kudu::client::KuduScanBatch::ToString" ref="a57ebd850adefa8af87f815540d890a34" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string kudu::client::KuduScanBatch::ToString </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>String representation for this row. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/kudu/client/<a class="el" href="scan__batch_8h_source.html">scan_batch.h</a></li>
</ul>
</div>
<!--- 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">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
<small>Generated for Kudu version 1.0.1 on Tue Oct 11 08:52:01 2016 by Doxygen 1.6.1</small>
<br>
<small>Copyright © 2016 The Apache Software Foundation.</small>
</address>
</body>
</html>