| <!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.14.0"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>Kudu C++ client API: KuduSchemaBuilder 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> |
| <script type="text/javascript" src="clipboard.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript" src="cookie.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.14.0 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| </script> |
| <script type="text/javascript"> |
| $(function() { codefold.init(); }); |
| </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',true); |
| $(function() { init_search(); }); |
| }); |
| </script> |
| <div id="main-nav"></div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| $(function(){initNavTree('classKuduSchemaBuilder.html','','classKuduSchemaBuilder-members'); }); |
| </script> |
| <div id="container"> |
| <div id="doc-content"> |
| <!-- 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 class="header"> |
| <div class="headertitle"><div class="title">KuduSchemaBuilder Class Reference</div></div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Builder API for constructing a <a class="el" href="classKuduSchema.html" title="A representation of a table's schema.">KuduSchema</a> object. |
| <a href="#details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="schema_8h_source.html">schema.h</a>></code></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:a1d15fed88cf3b1f2ca3313989c16a938" id="r_a1d15fed88cf3b1f2ca3313989c16a938"><td class="memItemLeft" align="right" valign="top">KuduColumnSpec * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1d15fed88cf3b1f2ca3313989c16a938">AddColumn</a> (const std::string &name)</td></tr> |
| <tr class="memitem:aa05d2b419b9e971f9211a417599ad7f4" id="r_aa05d2b419b9e971f9211a417599ad7f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa05d2b419b9e971f9211a417599ad7f4">SetPrimaryKey</a> (const std::vector< std::string > &key_col_names)</td></tr> |
| <tr class="memitem:acfef3c2a78ba0397a1252148daf3470c" id="r_acfef3c2a78ba0397a1252148daf3470c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#acfef3c2a78ba0397a1252148daf3470c">SetNonUniquePrimaryKey</a> (const std::vector< std::string > &key_col_names)</td></tr> |
| <tr class="memitem:af117e347a7d0910dda2695997859db15" id="r_af117e347a7d0910dda2695997859db15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#af117e347a7d0910dda2695997859db15">Build</a> (<a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *schema)</td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Builder API for constructing a <a class="el" href="classKuduSchema.html" title="A representation of a table'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"><div class="line">CREATE TABLE t (</div> |
| <div class="line"> my_key <span class="keywordtype">int</span> not null primary key,</div> |
| <div class="line"> a <span class="keywordtype">float</span> <span class="keywordflow">default</span> 1.5</div> |
| <div class="line">);</div> |
| </div><!-- fragment --><p>is represented as: </p><div class="fragment"><div class="line">KuduSchemaBuilder t;</div> |
| <div class="line">t.<a class="code hl_function" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#a1d15fed88cf3b1f2ca3313989c16a938">AddColumn</a>(<span class="stringliteral">"my_key"</span>)-><a class="code hl_function" href="classkudu_1_1client_1_1KuduColumnSpec.html#a33058c658abda55dc2e20447df6e9006">Type</a>(KuduColumnSchema::INT32)-><a class="code hl_function" href="classkudu_1_1client_1_1KuduColumnSpec.html#a247c652611efae4c8980427e548fd5e9">NotNull</a>()-><a class="code hl_function" href="classkudu_1_1client_1_1KuduColumnSpec.html#aa6eccfbacdb5a64c3279e7c2639182b7">PrimaryKey</a>();</div> |
| <div class="line">t.<a class="code hl_function" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#a1d15fed88cf3b1f2ca3313989c16a938">AddColumn</a>(<span class="stringliteral">"a"</span>)-><a class="code hl_function" href="classkudu_1_1client_1_1KuduColumnSpec.html#a33058c658abda55dc2e20447df6e9006">Type</a>(KuduColumnSchema::FLOAT)-><a class="code hl_function" href="classkudu_1_1client_1_1KuduColumnSpec.html#a448d9857a5d7b6552fd4082d198705c5">Default</a>(<a class="code hl_function" href="classKuduValue.html#a1258c55ea7df425c149eba0bdc887cd1">KuduValue::FromFloat</a>(1.5));</div> |
| <div class="line"><a class="code hl_class" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> schema;</div> |
| <div class="line">t.<a class="code hl_function" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#af117e347a7d0910dda2695997859db15">Build</a>(&schema);</div> |
| <div class="ttc" id="aclassKuduValue_html_a1258c55ea7df425c149eba0bdc887cd1"><div class="ttname"><a href="classKuduValue.html#a1258c55ea7df425c149eba0bdc887cd1">KuduValue::FromFloat</a></div><div class="ttdeci">static KuduValue * FromFloat(float val)</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduColumnSpec_html_a247c652611efae4c8980427e548fd5e9"><div class="ttname"><a href="classkudu_1_1client_1_1KuduColumnSpec.html#a247c652611efae4c8980427e548fd5e9">kudu::client::KuduColumnSpec::NotNull</a></div><div class="ttdeci">KuduColumnSpec * NotNull()</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduColumnSpec_html_a33058c658abda55dc2e20447df6e9006"><div class="ttname"><a href="classkudu_1_1client_1_1KuduColumnSpec.html#a33058c658abda55dc2e20447df6e9006">kudu::client::KuduColumnSpec::Type</a></div><div class="ttdeci">KuduColumnSpec * Type(KuduColumnSchema::DataType type)</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduColumnSpec_html_a448d9857a5d7b6552fd4082d198705c5"><div class="ttname"><a href="classkudu_1_1client_1_1KuduColumnSpec.html#a448d9857a5d7b6552fd4082d198705c5">kudu::client::KuduColumnSpec::Default</a></div><div class="ttdeci">KuduColumnSpec * Default(KuduValue *value)</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduColumnSpec_html_aa6eccfbacdb5a64c3279e7c2639182b7"><div class="ttname"><a href="classkudu_1_1client_1_1KuduColumnSpec.html#aa6eccfbacdb5a64c3279e7c2639182b7">kudu::client::KuduColumnSpec::PrimaryKey</a></div><div class="ttdeci">KuduColumnSpec * PrimaryKey()</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduSchemaBuilder_html_a1d15fed88cf3b1f2ca3313989c16a938"><div class="ttname"><a href="classkudu_1_1client_1_1KuduSchemaBuilder.html#a1d15fed88cf3b1f2ca3313989c16a938">kudu::client::KuduSchemaBuilder::AddColumn</a></div><div class="ttdeci">KuduColumnSpec * AddColumn(const std::string &name)</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduSchemaBuilder_html_af117e347a7d0910dda2695997859db15"><div class="ttname"><a href="classkudu_1_1client_1_1KuduSchemaBuilder.html#af117e347a7d0910dda2695997859db15">kudu::client::KuduSchemaBuilder::Build</a></div><div class="ttdeci">Status Build(KuduSchema *schema)</div></div> |
| <div class="ttc" id="aclasskudu_1_1client_1_1KuduSchema_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduSchema.html">kudu::client::KuduSchema</a></div><div class="ttdoc">A representation of a table's schema.</div><div class="ttdef"><b>Definition</b> schema.h:688</div></div> |
| </div><!-- fragment --> </div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2> |
| <a id="a1d15fed88cf3b1f2ca3313989c16a938" name="a1d15fed88cf3b1f2ca3313989c16a938"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a1d15fed88cf3b1f2ca3313989c16a938">◆ </a></span>AddColumn()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">KuduColumnSpec * kudu::client::KuduSchemaBuilder::AddColumn </td> |
| <td>(</td> |
| <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>name</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Add a column with the specified name to the schema.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the column to add. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A KuduColumnSpec object for a new column within the Schema. The returned object is owned by the <a class="el" href="classKuduSchemaBuilder.html" title="Builder API for constructing a KuduSchema object.">KuduSchemaBuilder</a>. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="af117e347a7d0910dda2695997859db15" name="af117e347a7d0910dda2695997859db15"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#af117e347a7d0910dda2695997859db15">◆ </a></span>Build()</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::KuduSchemaBuilder::Build </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> *</td> <td class="paramname"><span class="paramname"><em>schema</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Build the schema based on current configuration of the builder object.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[out]</td><td class="paramname">schema</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="classKuduSchema.html#a3f51ccf1a7e6f4a4fe4958073305dbab">KuduSchema::Reset()</a> on the parameter. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</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="classStatus.html" title="A representation of an operation's outcome.">Status</a> is returned. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="acfef3c2a78ba0397a1252148daf3470c" name="acfef3c2a78ba0397a1252148daf3470c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#acfef3c2a78ba0397a1252148daf3470c">◆ </a></span>SetNonUniquePrimaryKey()</h2> |
| |
| <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::SetNonUniquePrimaryKey </td> |
| <td>(</td> |
| <td class="paramtype">const std::vector< std::string > &</td> <td class="paramname"><span class="paramname"><em>key_col_names</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Set the non-unique primary key of the new Schema based on the given column names.</p> |
| <p>This may be used to specify a compound non-unique primary key.</p> |
| <dl class="section note"><dt>Note</dt><dd>By specifying non-unique primary keys, an auto incrementing column is created automatically. They form together the effective primary key. The auto incrementing field is populated on the server side, it must not be specified during insertion. All subsequent operations like scans will contain the auto incrementing column by default. If one wants to omit the auto incrementing column, it can be accomplished through existing projection methods.</dd> |
| <dd> |
| A call to <a class="el" href="#aa05d2b419b9e971f9211a417599ad7f4">SetPrimaryKey()</a> or <a class="el" href="#acfef3c2a78ba0397a1252148daf3470c">SetNonUniquePrimaryKey()</a> overrides any previous call to these two methods.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in]</td><td class="paramname">key_col_names</td><td>Names of the columns to include into the compound non-unique primary key. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the modified object. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="aa05d2b419b9e971f9211a417599ad7f4" name="aa05d2b419b9e971f9211a417599ad7f4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aa05d2b419b9e971f9211a417599ad7f4">◆ </a></span>SetPrimaryKey()</h2> |
| |
| <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< std::string > &</td> <td class="paramname"><span class="paramname"><em>key_col_names</em></span></td><td>)</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 class="section note"><dt>Note</dt><dd>A call to <a class="el" href="#aa05d2b419b9e971f9211a417599ad7f4">SetPrimaryKey()</a> or <a class="el" href="#acfef3c2a78ba0397a1252148daf3470c">SetNonUniquePrimaryKey()</a> overrides any previous call to these two methods.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in]</td><td class="paramname">key_col_names</td><td>Names of the columns to include into the compound primary key. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</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><!-- contents --> |
| </div><!-- doc-content --> |
| <div id="page-nav" class="page-nav-panel"> |
| <div id="page-nav-resize-handle"></div> |
| <div id="page-nav-tree"> |
| <div id="page-nav-contents"> |
| </div><!-- page-nav-contents --> |
| </div><!-- page-nav-tree --> |
| </div><!-- page-nav --> |
| </div><!-- container --> |
| <!-- start footer part --> |
| <hr class="footer"/> |
| <address class="footer"> |
| <small>Generated for Kudu version 1.18.0 on Wed Jul 9 2025 13:08:41 by Doxygen 1.14.0</small> |
| <br> |
| <small>Copyright © 2025 The Apache Software Foundation.</small> |
| </address> |
| </body> |
| </html> |