blob: 4c354072bc1821773f916ec215b8118e450efc21 [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::KuduTable 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_1KuduTable.html">KuduTable</a>
</div>
</div>
<div class="contents">
<h1>kudu::client::KuduTable Class Reference</h1><!-- doxytag: class="kudu::client::KuduTable" --><!-- doxytag: inherits="std::tr1::enable_shared_from_this" -->
<p>A representation of a table on a particular cluster.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="client_8h_source.html">client.h</a>&gt;</code></p>
<p>Inherits std::tr1::enable_shared_from_this&lt; KuduTable &gt;.</p>
<p><a href="classkudu_1_1client_1_1KuduTable-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#aa0f8b6d63c800727c3a827945512555e">name</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a185ff8f18b9bea6b41d6f4cf8dfa1377">id</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> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a4482e54a05c5b61b2bddc8c5297973fd">schema</a> () const </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_1KuduTable.html#a147bdffbd798161916471b721d63128f">num_replicas</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">KuduInsert</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a0c78f86c5d0fbf53437c2c9db26f92b6">NewInsert</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html">KuduUpsert</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a19e92dbaeeff86c5d707b15b2a7051fc">NewUpsert</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html">KuduUpdate</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a7e95271452d608fc2b563f7b46ddcda8">NewUpdate</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">KuduDelete</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#ad873078bdbcafe015d359a65c370a89a">NewDelete</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#aed6c3571aff35270a3e6cd66770f1cea">NewComparisonPredicate</a> (const <a class="el" href="classkudu_1_1Slice.html">Slice</a> &amp;col_name, <a class="el" href="classkudu_1_1client_1_1KuduPredicate.html#ad58e80ced596d7738f99b5b83ba24eb4">KuduPredicate::ComparisonOp</a> op, <a class="el" href="classkudu_1_1client_1_1KuduValue.html">KuduValue</a> *value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#a08836bfb79f6f91e7f235712ea271d35">client</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const PartitionSchema &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduTable.html#af1125879ce34fa6c994a70fe1803a808">partition_schema</a> () const </td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b5a804db2a148e792148f521f04b486"></a><!-- doxytag: member="kudu::client::KuduTable::KuduClient" ref="a5b5a804db2a148e792148f521f04b486" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>KuduClient</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A representation of a table on a particular cluster. </p>
<p>A <a class="el" href="classkudu_1_1client_1_1KuduTable.html" title="A representation of a table on a particular cluster.">KuduTable</a> holds the current schema of the table. Any given <a class="el" href="classkudu_1_1client_1_1KuduTable.html" title="A representation of a table on a particular cluster.">KuduTable</a> object belongs to a specific <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> object.</p>
<p>Upon construction, the table is looked up in the catalog (or catalog cache), and the schema fetched for introspection.</p>
<p>This class is also a factory for write operation on the table. The provided operations are: </p>
<ul>
<li>INSERT Adds a new row. Fails if the row already exists. </li>
<li>UPSERT Adds a new row. If there's an existing row, updates it. </li>
<li>UPDATE Updates an existing row. Fails if the row does not exist. </li>
<li>DELETE Deletes an existing row. Fails if the row does not exist.</li>
</ul>
<dl class="note"><dt><b>Note:</b></dt><dd>This class is thread-safe. </dd></dl>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a08836bfb79f6f91e7f235712ea271d35"></a><!-- doxytag: member="kudu::client::KuduTable::client" ref="a08836bfb79f6f91e7f235712ea271d35" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a>* kudu::client::KuduTable::client </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 <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> object associated with the table. The caller should not free the returned pointer. </dd></dl>
</div>
</div>
<a class="anchor" id="a185ff8f18b9bea6b41d6f4cf8dfa1377"></a><!-- doxytag: member="kudu::client::KuduTable::id" ref="a185ff8f18b9bea6b41d6f4cf8dfa1377" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; kudu::client::KuduTable::id </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get the table's ID.</p>
<p>This is an internal identifier which uniquely identifies a table. If the table is deleted and recreated with the same name, the ID will distinguish the old table from the new.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Identifier string for the table. </dd></dl>
</div>
</div>
<a class="anchor" id="aa0f8b6d63c800727c3a827945512555e"></a><!-- doxytag: member="kudu::client::KuduTable::name" ref="aa0f8b6d63c800727c3a827945512555e" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; kudu::client::KuduTable::name </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>Name of the table. </dd></dl>
</div>
</div>
<a class="anchor" id="aed6c3571aff35270a3e6cd66770f1cea"></a><!-- doxytag: member="kudu::client::KuduTable::NewComparisonPredicate" ref="aed6c3571aff35270a3e6cd66770f1cea" args="(const Slice &amp;col_name, KuduPredicate::ComparisonOp op, KuduValue *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a>* kudu::client::KuduTable::NewComparisonPredicate </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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html#ad58e80ced596d7738f99b5b83ba24eb4">KuduPredicate::ComparisonOp</a>&nbsp;</td>
<td class="paramname"> <em>op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduValue.html">KuduValue</a> *&nbsp;</td>
<td class="paramname"> <em>value</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Create a new comparison predicate.</p>
<p>This method creates new instance of a comparison predicate which can be used for scanners on this table object.</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 column to use for comparison. </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>op</em>&nbsp;</td><td>Comparison operator to use. </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>The type of the value must correspond to the type of the column to which the predicate is to be applied. For example, if the given column is any type of integer, the <a class="el" href="classkudu_1_1client_1_1KuduValue.html" title="A constant cell value with a specific type.">KuduValue</a> should also be an integer, with its value in the valid range for the column type. No attempt is made to cast between floating point and integer values, or numeric and string values. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Raw pointer to instance of comparison predicate. The caller owns the result until it is passed into <a class="el" href="classkudu_1_1client_1_1KuduScanner.html#a47b0fcd30f8002cb4fdcf69351896b74">KuduScanner::AddConjunctPredicate()</a>. The returned predicate object takes ownership over the <code>value</code> Non-NULL is returned both in success and error cases. In the case of an error (e.g. invalid column name), a non-NULL value is still returned. The error will be returned when attempting to add this predicate to a <a class="el" href="classkudu_1_1client_1_1KuduScanner.html" title="This class is a representation of a single scan.">KuduScanner</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="ad873078bdbcafe015d359a65c370a89a"></a><!-- doxytag: member="kudu::client::KuduTable::NewDelete" ref="ad873078bdbcafe015d359a65c370a89a" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">KuduDelete</a>* kudu::client::KuduTable::NewDelete </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>New <code>DELETE</code> operation for this table. It is the caller's responsibility to free the result, unless it is passed to <a class="el" href="classkudu_1_1client_1_1KuduSession.html#ad3f7324b27fca298c5ca3d07b4741943">KuduSession::Apply()</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a0c78f86c5d0fbf53437c2c9db26f92b6"></a><!-- doxytag: member="kudu::client::KuduTable::NewInsert" ref="a0c78f86c5d0fbf53437c2c9db26f92b6" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">KuduInsert</a>* kudu::client::KuduTable::NewInsert </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>New <code>INSERT</code> operation for this table. It is the caller's responsibility to free the result, unless it is passed to <a class="el" href="classkudu_1_1client_1_1KuduSession.html#ad3f7324b27fca298c5ca3d07b4741943">KuduSession::Apply()</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a7e95271452d608fc2b563f7b46ddcda8"></a><!-- doxytag: member="kudu::client::KuduTable::NewUpdate" ref="a7e95271452d608fc2b563f7b46ddcda8" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html">KuduUpdate</a>* kudu::client::KuduTable::NewUpdate </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>New <code>UPDATE</code> operation for this table. It is the caller's responsibility to free the result, unless it is passed to <a class="el" href="classkudu_1_1client_1_1KuduSession.html#ad3f7324b27fca298c5ca3d07b4741943">KuduSession::Apply()</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a19e92dbaeeff86c5d707b15b2a7051fc"></a><!-- doxytag: member="kudu::client::KuduTable::NewUpsert" ref="a19e92dbaeeff86c5d707b15b2a7051fc" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html">KuduUpsert</a>* kudu::client::KuduTable::NewUpsert </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>New <code>UPSERT</code> operation for this table. It is the caller's responsibility to free the result, unless it is passed to <a class="el" href="classkudu_1_1client_1_1KuduSession.html#ad3f7324b27fca298c5ca3d07b4741943">KuduSession::Apply()</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a147bdffbd798161916471b721d63128f"></a><!-- doxytag: member="kudu::client::KuduTable::num_replicas" ref="a147bdffbd798161916471b721d63128f" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int kudu::client::KuduTable::num_replicas </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>Replication factor of the table. </dd></dl>
</div>
</div>
<a class="anchor" id="af1125879ce34fa6c994a70fe1803a808"></a><!-- doxytag: member="kudu::client::KuduTable::partition_schema" ref="af1125879ce34fa6c994a70fe1803a808" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const PartitionSchema&amp; kudu::client::KuduTable::partition_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 partition schema for the table. </dd></dl>
</div>
</div>
<a class="anchor" id="a4482e54a05c5b61b2bddc8c5297973fd"></a><!-- doxytag: member="kudu::client::KuduTable::schema" ref="a4482e54a05c5b61b2bddc8c5297973fd" 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>&amp; kudu::client::KuduTable::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>Reference to the table's schema object. </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>
<!--- 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>