blob: bae0e0b33bd95d18fcb83de755297be2905ecde9 [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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Kudu C++ client API: kudu::client::KuduScanner 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Kudu C++ client API
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>kudu</b></li><li class="navelem"><b>client</b></li><li class="navelem"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html">KuduScanner</a></li> </ul>
</div>
</div><!-- top -->
<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="classkudu_1_1client_1_1KuduScanner-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">kudu::client::KuduScanner Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>This class is a representation of a single scan.
<a href="classkudu_1_1client_1_1KuduScanner.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="client_8h_source.html">client.h</a>&gt;</code></p>
<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:a36fdb59d6488618363331269d3f58348"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348">ReadMode</a> { <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348a8694cef688d819806fa9a85b002231a8">READ_LATEST</a>,
<a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348a380798cc81589d865b7b2549e186b2e2">READ_AT_SNAPSHOT</a>,
<a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348af77adb329e45d7e0b1ac136dad8f8567">READ_YOUR_WRITES</a>
}<tr class="memdesc:a36fdb59d6488618363331269d3f58348"><td class="mdescLeft">&#160;</td><td class="mdescRight">The read modes for scanners. <a href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a36fdb59d6488618363331269d3f58348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d6c79325c9da9741d0accf1b43bf7f9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9">OrderMode</a> { <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9adfeea547de613f36a0aff9f585671ec3">UNORDERED</a>,
<a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9a4395ad2ec57ce53e30d8b5748fa2c63a">ORDERED</a>
}</td></tr>
<tr class="separator:a3d6c79325c9da9741d0accf1b43bf7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60615ffe5fe82c5dcd12fec47502bec1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>kScanTimeoutMillis</b> = 30000
}</td></tr>
<tr class="separator:a60615ffe5fe82c5dcd12fec47502bec1"><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:a2c621f778072a02f4092e96a0baf8180"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a2c621f778072a02f4092e96a0baf8180">KuduScanner</a> (<a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> *table)</td></tr>
<tr class="separator:a2c621f778072a02f4092e96a0baf8180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb10b26056757bf81c410d3d5e6bcc01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#abb10b26056757bf81c410d3d5e6bcc01">SetProjectedColumnNames</a> (const std::vector&lt; std::string &gt; &amp;col_names) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:abb10b26056757bf81c410d3d5e6bcc01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d938c6efc1b36d456c91b5af0b1578d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a8d938c6efc1b36d456c91b5af0b1578d">SetProjectedColumnIndexes</a> (const std::vector&lt; int &gt; &amp;col_indexes) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a8d938c6efc1b36d456c91b5af0b1578d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68e2115cde71e113674e7a8b4df399ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a68e2115cde71e113674e7a8b4df399ad">SetProjectedColumns</a> (const std::vector&lt; std::string &gt; &amp;col_names) WARN_UNUSED_RESULT ATTRIBUTE_DEPRECATED(&quot;use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#abb10b26056757bf81c410d3d5e6bcc01">SetProjectedColumnNames</a>() instead&quot;)</td></tr>
<tr class="separator:a68e2115cde71e113674e7a8b4df399ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47b0fcd30f8002cb4fdcf69351896b74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a47b0fcd30f8002cb4fdcf69351896b74">AddConjunctPredicate</a> (<a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a> *pred) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a47b0fcd30f8002cb4fdcf69351896b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67691944fc112f43c565ab4486514b86"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a67691944fc112f43c565ab4486514b86">AddLowerBound</a> (const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;key)</td></tr>
<tr class="separator:a67691944fc112f43c565ab4486514b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e51a978f3e54237fa60f7447ef3436e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3e51a978f3e54237fa60f7447ef3436e">AddLowerBoundRaw</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;key) ATTRIBUTE_DEPRECATED(&quot;use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a67691944fc112f43c565ab4486514b86">AddLowerBound</a>() instead&quot;)</td></tr>
<tr class="separator:a3e51a978f3e54237fa60f7447ef3436e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a551fd38d48a686f2662727a82e79bd3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a551fd38d48a686f2662727a82e79bd3d">AddExclusiveUpperBound</a> (const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;key)</td></tr>
<tr class="separator:a551fd38d48a686f2662727a82e79bd3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefb6badecb950d5089b2f9d29d1f2ffe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aefb6badecb950d5089b2f9d29d1f2ffe">AddExclusiveUpperBoundRaw</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;key) ATTRIBUTE_DEPRECATED(&quot;use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a551fd38d48a686f2662727a82e79bd3d">AddExclusiveUpperBound</a>() instead&quot;)</td></tr>
<tr class="separator:aefb6badecb950d5089b2f9d29d1f2ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab53b88307028a50f66bcffe5e78c6d6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ab53b88307028a50f66bcffe5e78c6d6e">AddLowerBoundPartitionKeyRaw</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;partition_key)</td></tr>
<tr class="separator:ab53b88307028a50f66bcffe5e78c6d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa951a6ec3aeb82c82afe35d8e3ba18a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa951a6ec3aeb82c82afe35d8e3ba18a9">AddExclusiveUpperBoundPartitionKeyRaw</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;partition_key)</td></tr>
<tr class="separator:aa951a6ec3aeb82c82afe35d8e3ba18a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a4a2e354b3113561758b9bf4095d310"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a4a4a2e354b3113561758b9bf4095d310">SetCacheBlocks</a> (bool cache_blocks)</td></tr>
<tr class="separator:a4a4a2e354b3113561758b9bf4095d310"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ff3c11d9ac9f8183189ea5ac1ed9f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">Open</a> ()</td></tr>
<tr class="separator:aa1ff3c11d9ac9f8183189ea5ac1ed9f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a0caf7142880255d7aac1d75f33d21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa4a0caf7142880255d7aac1d75f33d21">KeepAlive</a> ()</td></tr>
<tr class="separator:aa4a0caf7142880255d7aac1d75f33d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac673dd15cb038e75787af7e74087e874"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ac673dd15cb038e75787af7e74087e874">Close</a> ()</td></tr>
<tr class="separator:ac673dd15cb038e75787af7e74087e874"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c4f46e8da9053621727a2e365196c94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a4c4f46e8da9053621727a2e365196c94">HasMoreRows</a> () const</td></tr>
<tr class="separator:a4c4f46e8da9053621727a2e365196c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af365f1d3b3b34aeb7d016727a9019067"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch</a> (std::vector&lt; KuduRowResult &gt; *rows) ATTRIBUTE_DEPRECATED(&quot;use NextBatch(<a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a>*) instead&quot;)</td></tr>
<tr class="separator:af365f1d3b3b34aeb7d016727a9019067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1475d9a0667839c1ed9c3714b47d487"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af1475d9a0667839c1ed9c3714b47d487">NextBatch</a> (<a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a> *batch)</td></tr>
<tr class="separator:af1475d9a0667839c1ed9c3714b47d487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2bce7bd17627a3aa46f7d7fdb4c0c10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ac2bce7bd17627a3aa46f7d7fdb4c0c10">GetCurrentServer</a> (<a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> **server)</td></tr>
<tr class="separator:ac2bce7bd17627a3aa46f7d7fdb4c0c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2cd8d87f9469665ae06bd00d11b8337"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html">ResourceMetrics</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ae2cd8d87f9469665ae06bd00d11b8337">GetResourceMetrics</a> () const</td></tr>
<tr class="separator:ae2cd8d87f9469665ae06bd00d11b8337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af82c4ccb442c222033841dd65cf5a67c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af82c4ccb442c222033841dd65cf5a67c">SetBatchSizeBytes</a> (uint32_t batch_size)</td></tr>
<tr class="separator:af82c4ccb442c222033841dd65cf5a67c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1db3f372fe3d0f30cd0b6a36b783cc8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af1db3f372fe3d0f30cd0b6a36b783cc8">SetSelection</a> (<a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">KuduClient::ReplicaSelection</a> selection) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:af1db3f372fe3d0f30cd0b6a36b783cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a248e0a05e7bfdc31b5b8d363a937e81e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a248e0a05e7bfdc31b5b8d363a937e81e">SetReadMode</a> (<a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348">ReadMode</a> read_mode) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a248e0a05e7bfdc31b5b8d363a937e81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93a87740ea75c9b6524dc229576b69fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a93a87740ea75c9b6524dc229576b69fc">SetOrderMode</a> (<a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9">OrderMode</a> order_mode) WARN_UNUSED_RESULT ATTRIBUTE_DEPRECATED(&quot;use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a107a8a682c0977272e0ae47746d39e6f">SetFaultTolerant</a>() instead&quot;)</td></tr>
<tr class="separator:a93a87740ea75c9b6524dc229576b69fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a107a8a682c0977272e0ae47746d39e6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a107a8a682c0977272e0ae47746d39e6f">SetFaultTolerant</a> () WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a107a8a682c0977272e0ae47746d39e6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b36a405daf09399438d5501b25b9f9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a5b36a405daf09399438d5501b25b9f9f">SetSnapshotMicros</a> (uint64_t snapshot_timestamp_micros) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a5b36a405daf09399438d5501b25b9f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab13dbb301197b411dec4cd6870801bae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ab13dbb301197b411dec4cd6870801bae">SetSnapshotRaw</a> (uint64_t snapshot_timestamp) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:ab13dbb301197b411dec4cd6870801bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c9f5e6a1056484c88ced411e19bee6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a97c9f5e6a1056484c88ced411e19bee6">SetTimeoutMillis</a> (int millis)</td></tr>
<tr class="separator:a97c9f5e6a1056484c88ced411e19bee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a698eb4ea965b5f7d32770fff46635b82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a698eb4ea965b5f7d32770fff46635b82">GetProjectionSchema</a> () const</td></tr>
<tr class="separator:a698eb4ea965b5f7d32770fff46635b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71608e5e773e74efe1e8ca2b881f14ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a71608e5e773e74efe1e8ca2b881f14ac">SetLimit</a> (int64_t limit) WARN_UNUSED_RESULT</td></tr>
<tr class="separator:a71608e5e773e74efe1e8ca2b881f14ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf0d2cd7837f3d08866d6e5c1c3a0aae"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aaf0d2cd7837f3d08866d6e5c1c3a0aae">ToString</a> () const</td></tr>
<tr class="separator:aaf0d2cd7837f3d08866d6e5c1c3a0aae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Advanced/Unstable API</h2></td></tr>
<tr class="memitem:a68345956f3f4c7fd5e1665fd292f6a85"><td class="memItemLeft" align="right" valign="top">static const uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a68345956f3f4c7fd5e1665fd292f6a85">NO_FLAGS</a> = 0</td></tr>
<tr class="separator:a68345956f3f4c7fd5e1665fd292f6a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63cd270f3bc72f4197d2581ec8f8fc44"><td class="memItemLeft" align="right" valign="top">static const uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a63cd270f3bc72f4197d2581ec8f8fc44">PAD_UNIXTIME_MICROS_TO_16_BYTES</a> = 1 &lt;&lt; 0</td></tr>
<tr class="separator:a63cd270f3bc72f4197d2581ec8f8fc44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dbaf4c2db6a37517a242dcb8ee64c11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3dbaf4c2db6a37517a242dcb8ee64c11">SetRowFormatFlags</a> (uint64_t flags)</td></tr>
<tr class="separator:a3dbaf4c2db6a37517a242dcb8ee64c11"><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>This class is a representation of a single scan. </p>
<dl class="section note"><dt>Note</dt><dd>This class is not thread-safe, though different scanners on different threads may share a single <a class="el" href="classkudu_1_1client_1_1KuduTable.html" title="A representation of a table on a particular cluster. ">KuduTable</a> object. </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a60615ffe5fe82c5dcd12fec47502bec1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60615ffe5fe82c5dcd12fec47502bec1">&#9670;&nbsp;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default scanner timeout. This is set to 3x the default RPC timeout returned by <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df">KuduClientBuilder::default_rpc_timeout()</a>. </p>
</div>
</div>
<a id="a3d6c79325c9da9741d0accf1b43bf7f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d6c79325c9da9741d0accf1b43bf7f9">&#9670;&nbsp;</a></span>OrderMode</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9">kudu::client::KuduScanner::OrderMode</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the rows should be returned in order.</p>
<p>This affects the fault-tolerance properties of a scanner. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3d6c79325c9da9741d0accf1b43bf7f9adfeea547de613f36a0aff9f585671ec3"></a>UNORDERED&#160;</td><td class="fielddoc"><p>Rows will be returned in an arbitrary order determined by the tablet server. This is efficient, but unordered scans are not fault-tolerant and cannot be resumed in the case of tablet server failure.</p>
<p>This is the default mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3d6c79325c9da9741d0accf1b43bf7f9a4395ad2ec57ce53e30d8b5748fa2c63a"></a>ORDERED&#160;</td><td class="fielddoc"><p>Rows will be returned ordered by primary key. Sorting the rows imposes additional overhead on the tablet server, but means that scans are fault-tolerant and will be resumed at another tablet server in the case of a failure. </p>
</td></tr>
</table>
</div>
</div>
<a id="a36fdb59d6488618363331269d3f58348"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36fdb59d6488618363331269d3f58348">&#9670;&nbsp;</a></span>ReadMode</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348">kudu::client::KuduScanner::ReadMode</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The read modes for scanners. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a36fdb59d6488618363331269d3f58348a8694cef688d819806fa9a85b002231a8"></a>READ_LATEST&#160;</td><td class="fielddoc"><p>When <code>READ_LATEST</code> is specified the server will always return committed writes at the time the request was received. This type of read does not return a snapshot timestamp and is not repeatable.</p>
<p>In ACID terms this corresponds to Isolation mode: "Read Committed"</p>
<p>This is the default mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="a36fdb59d6488618363331269d3f58348a380798cc81589d865b7b2549e186b2e2"></a>READ_AT_SNAPSHOT&#160;</td><td class="fielddoc"><p>When <code>READ_AT_SNAPSHOT</code> is specified the server will attempt to perform a read at the provided timestamp. If no timestamp is provided the server will take the current time as the snapshot timestamp. In this mode reads are repeatable, i.e. all future reads at the same timestamp will yield the same data. This is performed at the expense of waiting for in-flight transactions whose timestamp is lower than the snapshot's timestamp to complete, so it might incur a latency penalty. See <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a5b36a405daf09399438d5501b25b9f9f">KuduScanner::SetSnapshotMicros()</a> and <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#ab13dbb301197b411dec4cd6870801bae">KuduScanner::SetSnapshotRaw()</a> for details.</p>
<p>In ACID terms this, by itself, corresponds to Isolation mode "Repeatable
Read". If all writes to the scanned tablet are made externally consistent, then this corresponds to Isolation mode "Strict-Serializable".</p>
<dl class="section note"><dt>Note</dt><dd>There are currently "holes", which happen in rare edge conditions, by which writes are sometimes not externally consistent even when action was taken to make them so. In these cases Isolation may degenerate to mode "Read Committed". See KUDU-430. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a36fdb59d6488618363331269d3f58348af77adb329e45d7e0b1ac136dad8f8567"></a>READ_YOUR_WRITES&#160;</td><td class="fielddoc"><p>When <code>READ_YOUR_WRITES</code> is specified, the client will perform a read such that it follows all previously known writes and reads from this client. Specifically this mode: (1) ensures read-your-writes and read-your-reads session guarantees, (2) minimizes latency caused by waiting for outstanding write transactions to complete.</p>
<p>Reads in this mode are not repeatable: two READ_YOUR_WRITES reads, even if they provide the same propagated timestamp bound, can execute at different timestamps and thus return different results. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a2c621f778072a02f4092e96a0baf8180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c621f778072a02f4092e96a0baf8180">&#9670;&nbsp;</a></span>KuduScanner()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">kudu::client::KuduScanner::KuduScanner </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> *&#160;</td>
<td class="paramname"><em>table</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="classkudu_1_1client_1_1KuduScanner.html" title="This class is a representation of a single scan. ">KuduScanner</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">table</td><td>The table to perfrom scan. The given object must remain valid for the lifetime of this scanner object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a47b0fcd30f8002cb4fdcf69351896b74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47b0fcd30f8002cb4fdcf69351896b74">&#9670;&nbsp;</a></span>AddConjunctPredicate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddConjunctPredicate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a> *&#160;</td>
<td class="paramname"><em>pred</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a predicate for the scan.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pred</td><td>Predicate to set. The <a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html" title="Builds scan tokens for a table. ">KuduScanTokenBuilder</a> instance takes ownership of the parameter even if a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome. ">Status</a> is returned. Multiple calls of this method make the specified set of predicates work in conjunction, i.e. all predicates must be true for a row to be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a551fd38d48a686f2662727a82e79bd3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a551fd38d48a686f2662727a82e79bd3d">&#9670;&nbsp;</a></span>AddExclusiveUpperBound()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddExclusiveUpperBound </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add an upper bound (exclusive) primary key for the scan.</p>
<p>If any bound is already added, this bound is intersected with that one.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key to setup the upper bound. The scanner makes a copy of the parameter, the caller may free it afterward. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="aa951a6ec3aeb82c82afe35d8e3ba18a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa951a6ec3aeb82c82afe35d8e3ba18a9">&#9670;&nbsp;</a></span>AddExclusiveUpperBoundPartitionKeyRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddExclusiveUpperBoundPartitionKeyRaw </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;&#160;</td>
<td class="paramname"><em>partition_key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add an upper bound (exclusive) partition key for the scan.</p>
<dl class="section note"><dt>Note</dt><dd>This method is unstable, and for internal use only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">partition_key</td><td>The scanner makes a copy of the parameter, the caller may invalidate it afterward. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="aefb6badecb950d5089b2f9d29d1f2ffe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefb6badecb950d5089b2f9d29d1f2ffe">&#9670;&nbsp;</a></span>AddExclusiveUpperBoundRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddExclusiveUpperBoundRaw </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add an upper bound (exclusive) primary key for the scan.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>Use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a551fd38d48a686f2662727a82e79bd3d">AddExclusiveUpperBound()</a> instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The encoded primary key is an opaque slice of data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a67691944fc112f43c565ab4486514b86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67691944fc112f43c565ab4486514b86">&#9670;&nbsp;</a></span>AddLowerBound()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddLowerBound </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a lower bound (inclusive) primary key for the scan.</p>
<p>If any bound is already added, this bound is intersected with that one.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Lower bound primary key to add. The <a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html" title="Builds scan tokens for a table. ">KuduScanTokenBuilder</a> instance does not take ownership of the parameter. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="ab53b88307028a50f66bcffe5e78c6d6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab53b88307028a50f66bcffe5e78c6d6e">&#9670;&nbsp;</a></span>AddLowerBoundPartitionKeyRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddLowerBoundPartitionKeyRaw </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;&#160;</td>
<td class="paramname"><em>partition_key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a lower bound (inclusive) partition key for the scan.</p>
<dl class="section note"><dt>Note</dt><dd>This method is unstable, and for internal use only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">partition_key</td><td>The scanner makes a copy of the parameter: the caller may invalidate it afterward. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a3e51a978f3e54237fa60f7447ef3436e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e51a978f3e54237fa60f7447ef3436e">&#9670;&nbsp;</a></span>AddLowerBoundRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::AddLowerBoundRaw </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add lower bound for the scan.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a67691944fc112f43c565ab4486514b86">AddLowerBound()</a> instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The primary key to use as an opaque slice of data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="ac673dd15cb038e75787af7e74087e874"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac673dd15cb038e75787af7e74087e874">&#9670;&nbsp;</a></span>Close()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void kudu::client::KuduScanner::Close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the scanner.</p>
<p>Closing the scanner releases resources on the server. This call does not block, and will not ever fail, even if the server cannot be contacted.</p>
<dl class="section note"><dt>Note</dt><dd>The scanner is reset to its initial state by this function. You'll have to re-add any projection, predicates, etc if you want to reuse this object. </dd></dl>
</div>
</div>
<a id="ac2bce7bd17627a3aa46f7d7fdb4c0c10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2bce7bd17627a3aa46f7d7fdb4c0c10">&#9670;&nbsp;</a></span>GetCurrentServer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::GetCurrentServer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> **&#160;</td>
<td class="paramname"><em>server</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the <a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html" title="In-memory representation of a remote tablet server. ">KuduTabletServer</a> that is currently handling the scan.</p>
<p>More concretely, this is the server that handled the most recent <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">Open()</a> or <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a> RPC made by the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">server</td><td>Placeholder for the result. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a698eb4ea965b5f7d32770fff46635b82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a698eb4ea965b5f7d32770fff46635b82">&#9670;&nbsp;</a></span>GetProjectionSchema()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> kudu::client::KuduScanner::GetProjectionSchema </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Schema of the projection being scanned. </dd></dl>
</div>
</div>
<a id="ae2cd8d87f9469665ae06bd00d11b8337"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2cd8d87f9469665ae06bd00d11b8337">&#9670;&nbsp;</a></span>GetResourceMetrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html">ResourceMetrics</a>&amp; kudu::client::KuduScanner::GetResourceMetrics </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Cumulative resource metrics since the scan was started. </dd></dl>
</div>
</div>
<a id="a4c4f46e8da9053621727a2e365196c94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c4f46e8da9053621727a2e365196c94">&#9670;&nbsp;</a></span>HasMoreRows()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool kudu::client::KuduScanner::HasMoreRows </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if there may be rows to be fetched from this scanner.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if there may be rows to be fetched from this scanner. The method returns <code>true</code> provided there's at least one more tablet left to scan, even if that tablet has no data (we'll only know once we scan it). It will also be <code>true</code> after the initially opening the scanner before NextBatch is called for the first time. </dd></dl>
</div>
</div>
<a id="aa4a0caf7142880255d7aac1d75f33d21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4a0caf7142880255d7aac1d75f33d21">&#9670;&nbsp;</a></span>KeepAlive()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::KeepAlive </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Keep the current remote scanner alive.</p>
<p>Keep the current remote scanner alive on the Tablet server for an additional time-to-live. This is useful if the interval in between <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a> calls is big enough that the remote scanner might be garbage collected. The scanner time-to-live can be configured on the tablet server via the &ndash;scanner_ttl_ms configuration flag and has a default of 60 seconds.</p>
<p>This does not invalidate any previously fetched results.</p>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. In particular, this method returns a non-OK status if the scanner was already garbage collected or if the TabletServer was unreachable, for any reason. Note that a non-OK status returned by this method should not be taken as indication that the scan has failed. Subsequent calls to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a> might still be successful, particularly if the scanner is configured to be fault tolerant. </dd></dl>
</div>
</div>
<a id="af365f1d3b3b34aeb7d016727a9019067"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af365f1d3b3b34aeb7d016727a9019067">&#9670;&nbsp;</a></span>NextBatch() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::NextBatch </td>
<td>(</td>
<td class="paramtype">std::vector&lt; KuduRowResult &gt; *&#160;</td>
<td class="paramname"><em>rows</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get next batch of rows.</p>
<p>Clears 'rows' and populates it with the next batch of rows from the tablet server. A call to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a> invalidates all previously fetched results which might now be pointing to garbage memory.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>Use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af1475d9a0667839c1ed9c3714b47d487">NextBatch(KuduScanBatch*)</a> instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">rows</td><td>Placeholder for the result. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="af1475d9a0667839c1ed9c3714b47d487"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1475d9a0667839c1ed9c3714b47d487">&#9670;&nbsp;</a></span>NextBatch() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::NextBatch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a> *&#160;</td>
<td class="paramname"><em>batch</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fetch the next batch of results for this scanner.</p>
<p>A single <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 may be reused. Each subsequent call replaces the data from the previous call, and invalidates any <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a92bbfa48e9b503181c2dfb5f11f14e4e">KuduScanBatch::RowPtr</a> objects previously obtained from the batch. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">batch</td><td>Placeholder for the result. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="aa1ff3c11d9ac9f8183189ea5ac1ed9f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">&#9670;&nbsp;</a></span>Open()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::Open </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Result status of the operation (begin scanning). </dd></dl>
</div>
</div>
<a id="af82c4ccb442c222033841dd65cf5a67c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af82c4ccb442c222033841dd65cf5a67c">&#9670;&nbsp;</a></span>SetBatchSizeBytes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetBatchSizeBytes </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>batch_size</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the hint for the size of the next batch in bytes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">batch_size</td><td>The hint of batch size to set. If setting to 0 before calling <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">Open()</a>, it means that the first call to the tablet server won't return data. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a4a4a2e354b3113561758b9bf4095d310"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a4a2e354b3113561758b9bf4095d310">&#9670;&nbsp;</a></span>SetCacheBlocks()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetCacheBlocks </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>cache_blocks</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the block caching policy.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cache_blocks</td><td>If <code>true</code>, scanned data blocks will be cached in memory and made available for future scans. Default is <code>true</code>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a107a8a682c0977272e0ae47746d39e6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a107a8a682c0977272e0ae47746d39e6f">&#9670;&nbsp;</a></span>SetFaultTolerant()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetFaultTolerant </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Make scans resumable at another tablet server if current server fails.</p>
<p>Scans are by default non fault-tolerant, and scans will fail if scanning an individual tablet fails (for example, if a tablet server crashes in the middle of a tablet scan). If this method is called, scans will be resumed at another tablet server in the case of failure.</p>
<p>Fault-tolerant scans typically have lower throughput than non fault-tolerant scans. Fault tolerant scans use <code>READ_AT_SNAPSHOT</code> mode: if no snapshot timestamp is provided, the server will pick one.</p>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a71608e5e773e74efe1e8ca2b881f14ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71608e5e773e74efe1e8ca2b881f14ac">&#9670;&nbsp;</a></span>SetLimit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetLimit </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>limit</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the maximum number of rows the scanner should return.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">limit</td><td>Limit on the number of rows to return. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a93a87740ea75c9b6524dc229576b69fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93a87740ea75c9b6524dc229576b69fc">&#9670;&nbsp;</a></span>SetOrderMode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetOrderMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3d6c79325c9da9741d0accf1b43bf7f9">OrderMode</a>&#160;</td>
<td class="paramname"><em>order_mode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000007">Deprecated:</a></b></dt><dd>Use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a107a8a682c0977272e0ae47746d39e6f">SetFaultTolerant()</a> instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">order_mode</td><td>Result record ordering mode to set. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a8d938c6efc1b36d456c91b5af0b1578d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d938c6efc1b36d456c91b5af0b1578d">&#9670;&nbsp;</a></span>SetProjectedColumnIndexes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetProjectedColumnIndexes </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>col_indexes</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the column projection by passing the column indexes to read.</p>
<p>Set the column projection used for this scanner by passing the column indices to read. A call to this method overrides any previous call to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#abb10b26056757bf81c410d3d5e6bcc01">SetProjectedColumnNames()</a> or <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a8d938c6efc1b36d456c91b5af0b1578d">SetProjectedColumnIndexes()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">col_indexes</td><td>Column indices for the projection. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="abb10b26056757bf81c410d3d5e6bcc01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb10b26056757bf81c410d3d5e6bcc01">&#9670;&nbsp;</a></span>SetProjectedColumnNames()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetProjectedColumnNames </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>col_names</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the projection for the scanner using column names.</p>
<p>Set the projection used for the scanner by passing column names to read. This overrides any previous call to <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#abb10b26056757bf81c410d3d5e6bcc01">SetProjectedColumnNames()</a> or <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a8d938c6efc1b36d456c91b5af0b1578d">SetProjectedColumnIndexes()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">col_names</td><td>Column names to use for the projection. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a68e2115cde71e113674e7a8b4df399ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68e2115cde71e113674e7a8b4df399ad">&#9670;&nbsp;</a></span>SetProjectedColumns()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetProjectedColumns </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>col_names</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Use <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#abb10b26056757bf81c410d3d5e6bcc01">SetProjectedColumnNames()</a> instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">col_names</td><td>Column names to use for the projection. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a248e0a05e7bfdc31b5b8d363a937e81e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a248e0a05e7bfdc31b5b8d363a937e81e">&#9670;&nbsp;</a></span>SetReadMode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetReadMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a36fdb59d6488618363331269d3f58348">ReadMode</a>&#160;</td>
<td class="paramname"><em>read_mode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the ReadMode. Default is <code>READ_LATEST</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">read_mode</td><td>Read mode to set. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a3dbaf4c2db6a37517a242dcb8ee64c11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dbaf4c2db6a37517a242dcb8ee64c11">&#9670;&nbsp;</a></span>SetRowFormatFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetRowFormatFlags </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Optionally set row format modifier flags.</p>
<p>If flags is RowFormatFlags::NO_FLAGS, then no modifications will be made to the row format and the default will be used.</p>
<p>Some flags require server-side server-side support, thus the caller should be prepared to handle a NotSupported status in <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">Open()</a> and <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a>.</p>
<p>Example usage (without error handling, for brevity): </p><div class="fragment"><div class="line"><a class="code" href="classkudu_1_1client_1_1KuduScanner.html#a2c621f778072a02f4092e96a0baf8180">KuduScanner</a> scanner(...);</div><div class="line">uint64_t row_format_flags = <a class="code" href="classkudu_1_1client_1_1KuduScanner.html#a68345956f3f4c7fd5e1665fd292f6a85">KuduScanner::NO_FLAGS</a>;</div><div class="line">row_format_flags |= <a class="code" href="classkudu_1_1client_1_1KuduScanner.html#a63cd270f3bc72f4197d2581ec8f8fc44">KuduScanner::PAD_UNIXTIME_MICROS_TO_16_BYTES</a>;</div><div class="line">scanner.SetRowFormatFlags(row_format_flags);</div><div class="line">scanner.Open();</div><div class="line"><span class="keywordflow">while</span> (scanner.HasMoreRows()) {</div><div class="line"> KuduScanBatch batch;</div><div class="line"> scanner.NextBatch(&amp;batch);</div><div class="line"> Slice direct_data = batch.direct_data();</div><div class="line"> Slice indirect_data = batch.indirect_data();</div><div class="line"> ... <span class="comment">// Row data decoding and handling.</span></div><div class="line">}</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Row format modifier flags to set. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="af1db3f372fe3d0f30cd0b6a36b783cc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1db3f372fe3d0f30cd0b6a36b783cc8">&#9670;&nbsp;</a></span>SetSelection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetSelection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">KuduClient::ReplicaSelection</a>&#160;</td>
<td class="paramname"><em>selection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the replica selection policy while scanning.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">selection</td><td>The policy to set. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>Kill this method in favor of a consistency-level-based API. </dd></dl>
</div>
</div>
<a id="a5b36a405daf09399438d5501b25b9f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b36a405daf09399438d5501b25b9f9f">&#9670;&nbsp;</a></span>SetSnapshotMicros()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetSnapshotMicros </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>snapshot_timestamp_micros</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set snapshot timestamp for scans in <code>READ_AT_SNAPSHOT</code> mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">snapshot_timestamp_micros</td><td>Timestamp to set in in microseconds since the Epoch. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="ab13dbb301197b411dec4cd6870801bae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab13dbb301197b411dec4cd6870801bae">&#9670;&nbsp;</a></span>SetSnapshotRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetSnapshotRaw </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>snapshot_timestamp</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set snapshot timestamp for scans in <code>READ_AT_SNAPSHOT</code> mode (raw).</p>
<dl class="section note"><dt>Note</dt><dd>This method is experimental and will either disappear or change in a future release.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">snapshot_timestamp</td><td>Timestamp to set in raw encoded form (i.e. as returned by a previous call to a server). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="a97c9f5e6a1056484c88ced411e19bee6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97c9f5e6a1056484c88ced411e19bee6">&#9670;&nbsp;</a></span>SetTimeoutMillis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduScanner::SetTimeoutMillis </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>millis</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the maximum time that <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#aa1ff3c11d9ac9f8183189ea5ac1ed9f1">Open()</a> and <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#af365f1d3b3b34aeb7d016727a9019067">NextBatch()</a> are allowed to take.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">millis</td><td>Timeout to set (in milliseconds). Must be greater than 0. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation result status. </dd></dl>
</div>
</div>
<a id="aaf0d2cd7837f3d08866d6e5c1c3a0aae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf0d2cd7837f3d08866d6e5c1c3a0aae">&#9670;&nbsp;</a></span>ToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string kudu::client::KuduScanner::ToString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>String representation of this scan. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a68345956f3f4c7fd5e1665fd292f6a85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68345956f3f4c7fd5e1665fd292f6a85">&#9670;&nbsp;</a></span>NO_FLAGS</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const uint64_t kudu::client::KuduScanner::NO_FLAGS = 0</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>Modifier flags for the row format returned from the server.</p>
<dl class="section note"><dt>Note</dt><dd>Each flag corresponds to a bit that gets set on a bitset that is sent to the server. See <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a3dbaf4c2db6a37517a242dcb8ee64c11">SetRowFormatFlags()</a> for example usage. </dd></dl>
</div>
</div>
<a id="a63cd270f3bc72f4197d2581ec8f8fc44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63cd270f3bc72f4197d2581ec8f8fc44">&#9670;&nbsp;</a></span>PAD_UNIXTIME_MICROS_TO_16_BYTES</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const uint64_t kudu::client::KuduScanner::PAD_UNIXTIME_MICROS_TO_16_BYTES = 1 &lt;&lt; 0</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>Makes the server pad UNIXTIME_MICROS slots to 16 bytes. </p><dl class="section note"><dt>Note</dt><dd>This flag actually wastes throughput by making messages larger than they need to be. It exists merely for compatibility reasons and requires the user to know the row format in order to decode the data. That is, if this flag is enabled, the user <em>must</em> use <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a09bfd1652c0ab153ca6759317c3d3992">KuduScanBatch::direct_data()</a> and <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a3cb4c17aa228e680ecf088a29a075989">KuduScanBatch::indirect_data()</a> to obtain the row data for further decoding. Using <a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html#a3f6366606eec7f0d0a8953ff6a81c320">KuduScanBatch::Row()</a> might yield incorrect/corrupt results and might even cause the client to crash. </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="client_8h_source.html">client.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
<small>Generated for Kudu version 1.11.1 on Tue Nov 19 2019 23:11:03 by Doxygen 1.8.13</small>
<br>
<small>Copyright © 2019 The Apache Software Foundation.</small>
</address>
</body>
</html>