blob: 7cb306301cf33be1b6fdf70673f86d5ed11dce13 [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::KuduSchemaBuilder 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_1KuduSchemaBuilder.html">KuduSchemaBuilder</a>
</div>
</div>
<div class="contents">
<h1>kudu::client::KuduSchemaBuilder Class Reference</h1><!-- doxytag: class="kudu::client::KuduSchemaBuilder" -->
<p>Builder API for constructing a <a class="el" href="classkudu_1_1client_1_1KuduSchema.html" title="A representation of a table&#39;s schema.">KuduSchema</a> object.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="schema_8h_source.html">schema.h</a>&gt;</code></p>
<p><a href="classkudu_1_1client_1_1KuduSchemaBuilder-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"><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html">KuduColumnSpec</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#a0fdf28d49cc05ba4f3182f7398ddf600">AddColumn</a> (const std::string &amp;name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#ad4c1619445fea575a775f23752b6bfb9">SetPrimaryKey</a> (const std::vector&lt; std::string &gt; &amp;key_col_names)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#af117e347a7d0910dda2695997859db15">Build</a> (<a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *schema)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Builder API for constructing a <a class="el" href="classkudu_1_1client_1_1KuduSchema.html" title="A representation of a table&#39;s schema.">KuduSchema</a> object. </p>
<p>The API here is a "fluent" style of programming, such that the resulting code looks somewhat like a SQL "CREATE TABLE" statement. For example:</p>
<p>SQL: </p>
<div class="fragment"><pre class="fragment"> CREATE TABLE t (
my_key <span class="keywordtype">int</span> not null primary key,
a <span class="keywordtype">float</span> <span class="keywordflow">default</span> 1.5
);
</pre></div><p>is represented as: </p>
<div class="fragment"><pre class="fragment"> KuduSchemaBuilder t;
t.AddColumn(<span class="stringliteral">&quot;my_key&quot;</span>)-&gt;Type(KuduColumnSchema::INT32)-&gt;NotNull()-&gt;PrimaryKey();
t.AddColumn(<span class="stringliteral">&quot;a&quot;</span>)-&gt;Type(KuduColumnSchema::FLOAT)-&gt;Default(KuduValue::FromFloat(1.5));
KuduSchema schema;
t.Build(&amp;schema);
</pre></div> <hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a0fdf28d49cc05ba4f3182f7398ddf600"></a><!-- doxytag: member="kudu::client::KuduSchemaBuilder::AddColumn" ref="a0fdf28d49cc05ba4f3182f7398ddf600" args="(const std::string &amp;name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html">KuduColumnSpec</a>* kudu::client::KuduSchemaBuilder::AddColumn </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&nbsp;</td>
<td class="paramname"> <em>name</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Add a column with the specified name to the schema.</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>name</em>&nbsp;</td><td>Name of the column to add. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A <a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html" title="Builder API for specifying or altering a column within a table schema.">KuduColumnSpec</a> object for a new column within the Schema. The returned object is owned by the <a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html" title="Builder API for constructing a KuduSchema object.">KuduSchemaBuilder</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="af117e347a7d0910dda2695997859db15"></a><!-- doxytag: member="kudu::client::KuduSchemaBuilder::Build" ref="af117e347a7d0910dda2695997859db15" args="(KuduSchema *schema)" -->
<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::KuduSchemaBuilder::Build </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *&nbsp;</td>
<td class="paramname"> <em>schema</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Build the schema based on current configuration of the builder object.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>schema</em>&nbsp;</td><td>The placeholder for the result schema. Upon successful completion, the parameter is reset to the result of this builder: literally, calling <a class="el" href="classkudu_1_1client_1_1KuduSchema.html#a3f51ccf1a7e6f4a4fe4958073305dbab">KuduSchema::Reset()</a> on the parameter. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Operation result status. If the resulting would-be-schema is invalid for any reason (e.g. missing types, duplicate column names, etc.) a bad <a class="el" href="classkudu_1_1Status.html" title="A representation of an operation&#39;s outcome.">Status</a> is returned. </dd></dl>
</div>
</div>
<a class="anchor" id="ad4c1619445fea575a775f23752b6bfb9"></a><!-- doxytag: member="kudu::client::KuduSchemaBuilder::SetPrimaryKey" ref="ad4c1619445fea575a775f23752b6bfb9" args="(const std::vector&lt; std::string &gt; &amp;key_col_names)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a>* kudu::client::KuduSchemaBuilder::SetPrimaryKey </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>key_col_names</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the primary key of the new Schema based on the given column names.</p>
<p>This may be used to specify a compound primary key.</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>key_col_names</em>&nbsp;</td><td>Names of the columns to include into the compound primary key. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the modified 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="schema_8h_source.html">schema.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>