<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Kudu C++ client API: kudu::client::KuduTableStatistics 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 id="projectrow">
  <td id="projectalign">
   <div id="projectname">Kudu C++ client API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</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_1KuduTableStatistics.html">KuduTableStatistics</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classkudu_1_1client_1_1KuduTableStatistics-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">kudu::client::KuduTableStatistics Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p>In-memory statistics of table.  
 <a href="classkudu_1_1client_1_1KuduTableStatistics.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 id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afe152cbb7f239618bfc4625cadba4484" id="r_afe152cbb7f239618bfc4625cadba4484"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html#afe152cbb7f239618bfc4625cadba4484">on_disk_size</a> () const</td></tr>
<tr class="separator:afe152cbb7f239618bfc4625cadba4484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf8ca7f5f9f4640e517c1b33235450d1" id="r_aaf8ca7f5f9f4640e517c1b33235450d1"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html#aaf8ca7f5f9f4640e517c1b33235450d1">live_row_count</a> () const</td></tr>
<tr class="separator:aaf8ca7f5f9f4640e517c1b33235450d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a111ee4d90863b9e6c3619e712fe72b3a" id="r_a111ee4d90863b9e6c3619e712fe72b3a"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html#a111ee4d90863b9e6c3619e712fe72b3a">on_disk_size_limit</a> () const</td></tr>
<tr class="separator:a111ee4d90863b9e6c3619e712fe72b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec261d988a4083bdb74bf39d52bfc1dd" id="r_aec261d988a4083bdb74bf39d52bfc1dd"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html#aec261d988a4083bdb74bf39d52bfc1dd">live_row_count_limit</a> () const</td></tr>
<tr class="separator:aec261d988a4083bdb74bf39d52bfc1dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab437c1e3cb382828eb32fea424bc25ff" id="r_ab437c1e3cb382828eb32fea424bc25ff"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html#ab437c1e3cb382828eb32fea424bc25ff">ToString</a> () const</td></tr>
<tr class="separator:ab437c1e3cb382828eb32fea424bc25ff"><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>In-memory statistics of table. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaf8ca7f5f9f4640e517c1b33235450d1" name="aaf8ca7f5f9f4640e517c1b33235450d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf8ca7f5f9f4640e517c1b33235450d1">&#9670;&#160;</a></span>live_row_count()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t kudu::client::KuduTableStatistics::live_row_count </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>The table's live row count. -1 is returned if the table doesn't support live_row_count.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This statistic is pre-replication. </dd></dl>

</div>
</div>
<a id="aec261d988a4083bdb74bf39d52bfc1dd" name="aec261d988a4083bdb74bf39d52bfc1dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec261d988a4083bdb74bf39d52bfc1dd">&#9670;&#160;</a></span>live_row_count_limit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t kudu::client::KuduTableStatistics::live_row_count_limit </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>The table's live row count limit. -1 is returned if there is no row count limit on this table.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is experimental and may change or disappear in future. This feature currently applies row count limit on a single table, but it should also support database level row count limit. </dd></dl>

</div>
</div>
<a id="afe152cbb7f239618bfc4625cadba4484" name="afe152cbb7f239618bfc4625cadba4484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe152cbb7f239618bfc4625cadba4484">&#9670;&#160;</a></span>on_disk_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t kudu::client::KuduTableStatistics::on_disk_size </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>The table's on disk size. -1 is returned if the table doesn't support on_disk_size.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This statistic is pre-replication. </dd></dl>

</div>
</div>
<a id="a111ee4d90863b9e6c3619e712fe72b3a" name="a111ee4d90863b9e6c3619e712fe72b3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a111ee4d90863b9e6c3619e712fe72b3a">&#9670;&#160;</a></span>on_disk_size_limit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t kudu::client::KuduTableStatistics::on_disk_size_limit </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>The table's on disk size limit. -1 is returned if there is no disk size limit on this table.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is experimental and may change or disappear in future. This feature currently applies size limit on a single table, but it should also support database level size limit. </dd></dl>

</div>
</div>
<a id="ab437c1e3cb382828eb32fea424bc25ff" name="ab437c1e3cb382828eb32fea424bc25ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab437c1e3cb382828eb32fea424bc25ff">&#9670;&#160;</a></span>ToString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string kudu::client::KuduTableStatistics::ToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Stringify this Statistics.</p>
<dl class="section return"><dt>Returns</dt><dd>A string describing this statistics </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.17.0 on Mon Sep 4 2023 19:49:30 by Doxygen 1.9.8</small>
  <br>
  <small>Copyright © 2023 The Apache Software Foundation.</small>
</address>
</body>
</html>
