<!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.11"/>
<title>Kudu C++ client API: kudu::client::KuduWriteOperation 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>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</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.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></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)">
</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_1KuduWriteOperation.html">KuduWriteOperation</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_1KuduWriteOperation-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">kudu::client::KuduWriteOperation Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>A single-row write operation to be sent to a Kudu table.  
 <a href="classkudu_1_1client_1_1KuduWriteOperation.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="write__op_8h_source.html">write_op.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for kudu::client::KuduWriteOperation:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classkudu_1_1client_1_1KuduWriteOperation.png" usemap="#kudu::client::KuduWriteOperation_map" alt=""/>
  <map id="kudu::client::KuduWriteOperation_map" name="kudu::client::KuduWriteOperation_map">
<area href="classkudu_1_1client_1_1KuduDelete.html" title="A single row delete to be sent to the cluster. " alt="kudu::client::KuduDelete" shape="rect" coords="0,56,195,80"/>
<area href="classkudu_1_1client_1_1KuduInsert.html" title="A single row insert to be sent to the cluster. " alt="kudu::client::KuduInsert" shape="rect" coords="205,56,400,80"/>
<area href="classkudu_1_1client_1_1KuduInsertIgnore.html" title="A single row insert ignore to be sent to the cluster, duplicate row errors are ignored. " alt="kudu::client::KuduInsertIgnore" shape="rect" coords="410,56,605,80"/>
<area href="classkudu_1_1client_1_1KuduUpdate.html" title="A single row update to be sent to the cluster. " alt="kudu::client::KuduUpdate" shape="rect" coords="615,56,810,80"/>
<area href="classkudu_1_1client_1_1KuduUpsert.html" title="A single row upsert to be sent to the cluster. " alt="kudu::client::KuduUpsert" shape="rect" coords="820,56,1015,80"/>
</map>
 </div></div>
<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:a87d94ee5801a6b16fc6d1f44ee2e4357"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87d94ee5801a6b16fc6d1f44ee2e4357"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> { <br />
&#160;&#160;<b>INSERT</b> = 1, 
<b>UPDATE</b> = 2, 
<b>DELETE</b> = 3, 
<b>UPSERT</b> = 4, 
<br />
&#160;&#160;<b>INSERT_IGNORE</b> = 5
<br />
 }<tr class="memdesc:a87d94ee5801a6b16fc6d1f44ee2e4357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write operation types. <br /></td></tr>
</td></tr>
<tr class="separator:a87d94ee5801a6b16fc6d1f44ee2e4357"><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:a973b342ced786b23754b57fd83b34aa3"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a973b342ced786b23754b57fd83b34aa3">row</a> () const </td></tr>
<tr class="separator:a973b342ced786b23754b57fd83b34aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8889770ce62e2ca0ce5d55c9c90af6bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a> ()</td></tr>
<tr class="separator:a8889770ce62e2ca0ce5d55c9c90af6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e53f56163688f8e0080f12419689822"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a6e53f56163688f8e0080f12419689822">ToString</a> () const  =0</td></tr>
<tr class="separator:a6e53f56163688f8e0080f12419689822"><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>A single-row write operation to be sent to a Kudu table. </p>
<p>This is the abstract base class from which the particular row operations (<a class="el" href="classkudu_1_1client_1_1KuduInsert.html" title="A single row insert to be sent to the cluster. ">KuduInsert</a>, <a class="el" href="classkudu_1_1client_1_1KuduUpdate.html" title="A single row update to be sent to the cluster. ">KuduUpdate</a>, etc) are derived. These subclasses are instantiated by <a class="el" href="classkudu_1_1client_1_1KuduTable.html#a0c78f86c5d0fbf53437c2c9db26f92b6">KuduTable::NewInsert()</a>, etc.</p>
<p>The row key, as well as the columns to be inserted or updated are set using the embedded <a class="el" href="classKuduPartialRow.html" title="A row which may only contain values for a subset of the columns. ">KuduPartialRow</a> object accessible via <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row()</a>.</p>
<p>Typical usage example: </p><div class="fragment"><div class="line">KuduInsert* t = table-&gt;<a class="code" href="classkudu_1_1client_1_1KuduTable.html#a0c78f86c5d0fbf53437c2c9db26f92b6">NewInsert</a>();</div><div class="line"><a class="code" href="status_8h.html#ac503ba85e942147294cdc82087da60f6">KUDU_CHECK_OK</a>(t-&gt;mutable_row()-&gt;SetInt32(<span class="stringliteral">&quot;key&quot;</span>, 1234));</div><div class="line"><a class="code" href="status_8h.html#ac503ba85e942147294cdc82087da60f6">KUDU_CHECK_OK</a>(t-&gt;mutable_row()-&gt;SetStringCopy(<span class="stringliteral">&quot;foo&quot;</span>, <span class="stringliteral">&quot;bar&quot;</span>));</div><div class="line">session-&gt;Apply(t);</div></div><!-- fragment --> </div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8889770ce62e2ca0ce5d55c9c90af6bc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classKuduPartialRow.html">KuduPartialRow</a>* kudu::client::KuduWriteOperation::mutable_row </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>To work with a row, use the <a class="el" href="classKuduPartialRow.html" title="A row which may only contain values for a subset of the columns. ">KuduPartialRow</a> API for field setters, etc. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the corresponding row-like object. </dd></dl>

</div>
</div>
<a class="anchor" id="a973b342ced786b23754b57fd83b34aa3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a>&amp; kudu::client::KuduWriteOperation::row </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>To work with a row, use the <a class="el" href="classKuduPartialRow.html" title="A row which may only contain values for a subset of the columns. ">KuduPartialRow</a> API for field getters, etc. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Immutable reference to the corresponding row-like object. </dd></dl>

</div>
</div>
<a class="anchor" id="a6e53f56163688f8e0080f12419689822"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string kudu::client::KuduWriteOperation::ToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>String representation of the operation. </dd></dl>

<p>Implemented in <a class="el" href="classkudu_1_1client_1_1KuduDelete.html#a586dc46e1d10118465e3b834ac578de0">kudu::client::KuduDelete</a>, <a class="el" href="classkudu_1_1client_1_1KuduUpdate.html#af05d202ea529554b6d033d51ec942718">kudu::client::KuduUpdate</a>, <a class="el" href="classkudu_1_1client_1_1KuduUpsert.html#a0608280ef5b4eb2a53c0b303db7401c8">kudu::client::KuduUpsert</a>, <a class="el" href="classkudu_1_1client_1_1KuduInsertIgnore.html#a3808cd171850b78391b0636d1e5bef83">kudu::client::KuduInsertIgnore</a>, and <a class="el" href="classkudu_1_1client_1_1KuduInsert.html#a7c0fb45a5bfa96574b6328be392ba240">kudu::client::KuduInsert</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/kudu/client/<a class="el" href="write__op_8h_source.html">write_op.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
  <small>Generated for Kudu version 1.12.0 on Mon May 18 2020 14:07:10 by Doxygen 1.8.11</small>
  <br>
  <small>Copyright © 2020 The Apache Software Foundation.</small>
</address>
</body>
</html>
