blob: 23726c015331b4b2184e133b5183caf61f3e33cd [file]
<!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>iceberg-cpp: iceberg::SnapshotManager 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">iceberg-cpp
</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>iceberg</b></li><li class="navelem"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classiceberg_1_1SnapshotManager-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">iceberg::SnapshotManager Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>API for managing snapshots.
<a href="classiceberg_1_1SnapshotManager.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="snapshot__manager_8h_source.html">snapshot_manager.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for iceberg::SnapshotManager:</div>
<div class="dyncontent">
<div class="center">
<img src="classiceberg_1_1SnapshotManager.png" usemap="#iceberg::SnapshotManager_map" alt=""/>
<map id="iceberg::SnapshotManager_map" name="iceberg::SnapshotManager_map">
<area href="classiceberg_1_1ErrorCollector.html" title="Base class for collecting errors in the builder pattern." alt="iceberg::ErrorCollector" shape="rect" coords="0,0,164,24"/>
</map>
</div></div>
<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:ab60628b03913f1a4d2b624399af130cb" id="r_ab60628b03913f1a4d2b624399af130cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ab60628b03913f1a4d2b624399af130cb">Cherrypick</a> (int64_t snapshot_id)</td></tr>
<tr class="memdesc:ab60628b03913f1a4d2b624399af130cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply supported changes in given snapshot and create a new snapshot which will be set as the current snapshot on commit. <br /></td></tr>
<tr class="separator:ab60628b03913f1a4d2b624399af130cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b15c7298bda1a2967efaedf2e0a4805" id="r_a6b15c7298bda1a2967efaedf2e0a4805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a6b15c7298bda1a2967efaedf2e0a4805">SetCurrentSnapshot</a> (int64_t snapshot_id)</td></tr>
<tr class="memdesc:a6b15c7298bda1a2967efaedf2e0a4805"><td class="mdescLeft">&#160;</td><td class="mdescRight">Roll this table's data back to a specific snapshot identified by id. <br /></td></tr>
<tr class="separator:a6b15c7298bda1a2967efaedf2e0a4805"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ca5336955462dd098f3f2eedb5a0b2e" id="r_a1ca5336955462dd098f3f2eedb5a0b2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a1ca5336955462dd098f3f2eedb5a0b2e">RollbackToTime</a> (int64_t timestamp_ms)</td></tr>
<tr class="memdesc:a1ca5336955462dd098f3f2eedb5a0b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Roll this table's data back to the last snapshot before the given timestamp. <br /></td></tr>
<tr class="separator:a1ca5336955462dd098f3f2eedb5a0b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ab9f78d03bbab1b9d206df564f6f23" id="r_ac6ab9f78d03bbab1b9d206df564f6f23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ac6ab9f78d03bbab1b9d206df564f6f23">RollbackTo</a> (int64_t snapshot_id)</td></tr>
<tr class="memdesc:ac6ab9f78d03bbab1b9d206df564f6f23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rollback table's state to a specific snapshot identified by id. <br /></td></tr>
<tr class="separator:ac6ab9f78d03bbab1b9d206df564f6f23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadee369ad7fbd83f72b607ab76a674ad" id="r_aadee369ad7fbd83f72b607ab76a674ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#aadee369ad7fbd83f72b607ab76a674ad">CreateBranch</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:aadee369ad7fbd83f72b607ab76a674ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new branch. The branch will point to current snapshot if the current snapshot is not NULL. Otherwise, the branch will point to a newly created empty snapshot. <br /></td></tr>
<tr class="separator:aadee369ad7fbd83f72b607ab76a674ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a525ee075af2d279ef383baec80b25feb" id="r_a525ee075af2d279ef383baec80b25feb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a525ee075af2d279ef383baec80b25feb">CreateBranch</a> (const std::string &amp;name, int64_t snapshot_id)</td></tr>
<tr class="memdesc:a525ee075af2d279ef383baec80b25feb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new branch pointing to the given snapshot id. <br /></td></tr>
<tr class="separator:a525ee075af2d279ef383baec80b25feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0349e69da84c17e95238499aed8c0d2" id="r_ad0349e69da84c17e95238499aed8c0d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ad0349e69da84c17e95238499aed8c0d2">CreateTag</a> (const std::string &amp;name, int64_t snapshot_id)</td></tr>
<tr class="memdesc:ad0349e69da84c17e95238499aed8c0d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new tag pointing to the given snapshot id. <br /></td></tr>
<tr class="separator:ad0349e69da84c17e95238499aed8c0d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfa30c80bfa16531b86e8725b38a98b2" id="r_acfa30c80bfa16531b86e8725b38a98b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#acfa30c80bfa16531b86e8725b38a98b2">RemoveBranch</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:acfa30c80bfa16531b86e8725b38a98b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a branch by name. <br /></td></tr>
<tr class="separator:acfa30c80bfa16531b86e8725b38a98b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a306e48e9f5d9f7b45ebc33491bf67772" id="r_a306e48e9f5d9f7b45ebc33491bf67772"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a306e48e9f5d9f7b45ebc33491bf67772">RemoveTag</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a306e48e9f5d9f7b45ebc33491bf67772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the tag with the given name. <br /></td></tr>
<tr class="separator:a306e48e9f5d9f7b45ebc33491bf67772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b22b00bd9d5293642e165ff6069a004" id="r_a4b22b00bd9d5293642e165ff6069a004"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a4b22b00bd9d5293642e165ff6069a004">ReplaceTag</a> (const std::string &amp;name, int64_t snapshot_id)</td></tr>
<tr class="memdesc:a4b22b00bd9d5293642e165ff6069a004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the tag with the given name to point to the specified snapshot. <br /></td></tr>
<tr class="separator:a4b22b00bd9d5293642e165ff6069a004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab94242a00fc7f93c2d2a636eb5c74b0c" id="r_ab94242a00fc7f93c2d2a636eb5c74b0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ab94242a00fc7f93c2d2a636eb5c74b0c">ReplaceBranch</a> (const std::string &amp;name, int64_t snapshot_id)</td></tr>
<tr class="memdesc:ab94242a00fc7f93c2d2a636eb5c74b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the branch with the given name to point to the specified snapshot. <br /></td></tr>
<tr class="separator:ab94242a00fc7f93c2d2a636eb5c74b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a712e72371916977e57df6370ac70d7" id="r_a0a712e72371916977e57df6370ac70d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a0a712e72371916977e57df6370ac70d7">ReplaceBranch</a> (const std::string &amp;from, const std::string &amp;to)</td></tr>
<tr class="memdesc:a0a712e72371916977e57df6370ac70d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the 'from' branch to point to the 'to' snapshot. The 'to' will remain unchanged, and 'from' branch will retain its retention properties. If the 'from' branch does not exist, it will be created with default retention properties. <br /></td></tr>
<tr class="separator:a0a712e72371916977e57df6370ac70d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad623cbcd0f3868ba8ee8554b86eeb34b" id="r_ad623cbcd0f3868ba8ee8554b86eeb34b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ad623cbcd0f3868ba8ee8554b86eeb34b">FastForwardBranch</a> (const std::string &amp;from, const std::string &amp;to)</td></tr>
<tr class="memdesc:ad623cbcd0f3868ba8ee8554b86eeb34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a fast-forward of 'from' up to the 'to' snapshot if 'from' is an ancestor of 'to'. The 'to' will remain unchanged, and 'from' will retain its retention properties. If the 'from' branch does not exist, it will be created with default retention properties. <br /></td></tr>
<tr class="separator:ad623cbcd0f3868ba8ee8554b86eeb34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2227f4b81eb2914817e4c3a3b7bb3c7" id="r_ab2227f4b81eb2914817e4c3a3b7bb3c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ab2227f4b81eb2914817e4c3a3b7bb3c7">RenameBranch</a> (const std::string &amp;name, const std::string &amp;new_name)</td></tr>
<tr class="memdesc:ab2227f4b81eb2914817e4c3a3b7bb3c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rename a branch. <br /></td></tr>
<tr class="separator:ab2227f4b81eb2914817e4c3a3b7bb3c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afba03f50a532714e6040166ae2765859" id="r_afba03f50a532714e6040166ae2765859"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#afba03f50a532714e6040166ae2765859">SetMinSnapshotsToKeep</a> (const std::string &amp;branch_name, int32_t min_snapshots_to_keep)</td></tr>
<tr class="memdesc:afba03f50a532714e6040166ae2765859"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the minimum number of snapshots to keep for a branch. <br /></td></tr>
<tr class="separator:afba03f50a532714e6040166ae2765859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d0927fd7c4d54c6fa740d7653cf8904" id="r_a1d0927fd7c4d54c6fa740d7653cf8904"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a1d0927fd7c4d54c6fa740d7653cf8904">SetMaxSnapshotAgeMs</a> (const std::string &amp;branch_name, int64_t max_snapshot_age_ms)</td></tr>
<tr class="memdesc:a1d0927fd7c4d54c6fa740d7653cf8904"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the max snapshot age for a branch. <br /></td></tr>
<tr class="separator:a1d0927fd7c4d54c6fa740d7653cf8904"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a6637511fe63774bf2aef83992d506" id="r_a85a6637511fe63774bf2aef83992d506"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#a85a6637511fe63774bf2aef83992d506">SetMaxRefAgeMs</a> (const std::string &amp;name, int64_t max_ref_age_ms)</td></tr>
<tr class="memdesc:a85a6637511fe63774bf2aef83992d506"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the retention policy for a reference. <br /></td></tr>
<tr class="separator:a85a6637511fe63774bf2aef83992d506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57be94c9cc26978a4dedf87e71f169e3" id="r_a57be94c9cc26978a4dedf87e71f169e3"><td class="memItemLeft" align="right" valign="top"><a id="a57be94c9cc26978a4dedf87e71f169e3" name="a57be94c9cc26978a4dedf87e71f169e3"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><b>Commit</b> ()</td></tr>
<tr class="memdesc:a57be94c9cc26978a4dedf87e71f169e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commit all pending changes. <br /></td></tr>
<tr class="separator:a57be94c9cc26978a4dedf87e71f169e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classiceberg_1_1ErrorCollector"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classiceberg_1_1ErrorCollector')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classiceberg_1_1ErrorCollector.html">iceberg::ErrorCollector</a></td></tr>
<tr class="memitem:a827c296a8527f87f76d7f9321e7ee68f inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a827c296a8527f87f76d7f9321e7ee68f"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>ErrorCollector</b> (<a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a827c296a8527f87f76d7f9321e7ee68f inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22311658715152d8e6e27834240ce446 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a22311658715152d8e6e27834240ce446"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a22311658715152d8e6e27834240ce446 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3fa546cd2748fe418db9c0933542755 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_ab3fa546cd2748fe418db9c0933542755"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>ErrorCollector</b> (const <a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;)=default</td></tr>
<tr class="separator:ab3fa546cd2748fe418db9c0933542755 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba366560be481bfa9538735f3a38e3e inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_aaba366560be481bfa9538735f3a38e3e"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classiceberg_1_1ErrorCollector.html">ErrorCollector</a> &amp;)=default</td></tr>
<tr class="separator:aaba366560be481bfa9538735f3a38e3e inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a20345150b136c918ffe8947a7d75e1 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a3a20345150b136c918ffe8947a7d75e1"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a3a20345150b136c918ffe8947a7d75e1 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memTemplItemLeft" align="right" valign="top">auto &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a3a20345150b136c918ffe8947a7d75e1">AddError</a> (this auto &amp;self, ErrorKind kind, const std::format_string&lt; Args... &gt; fmt, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a3a20345150b136c918ffe8947a7d75e1 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a specific error and return reference to derived class. <br /></td></tr>
<tr class="separator:a3a20345150b136c918ffe8947a7d75e1 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e555954de121d0908dcf4648da446e3 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a5e555954de121d0908dcf4648da446e3"><td class="memItemLeft" align="right" valign="top">auto &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a5e555954de121d0908dcf4648da446e3">AddError</a> (this auto &amp;self, <a class="el" href="structiceberg_1_1Error.html">Error</a> err)</td></tr>
<tr class="memdesc:a5e555954de121d0908dcf4648da446e3 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an existing error object and return reference to derived class. <br /></td></tr>
<tr class="separator:a5e555954de121d0908dcf4648da446e3 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5749264a2234092a5246056a1c72ee51 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a5749264a2234092a5246056a1c72ee51"><td class="memItemLeft" align="right" valign="top">auto &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a5749264a2234092a5246056a1c72ee51">AddError</a> (this auto &amp;self, std::unexpected&lt; <a class="el" href="structiceberg_1_1Error.html">Error</a> &gt; err)</td></tr>
<tr class="memdesc:a5749264a2234092a5246056a1c72ee51 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an unexpected result's error and return reference to derived class. <br /></td></tr>
<tr class="separator:a5749264a2234092a5246056a1c72ee51 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8813b3fe2a3cc112e6db19c87b8422ae inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a8813b3fe2a3cc112e6db19c87b8422ae"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a8813b3fe2a3cc112e6db19c87b8422ae">has_errors</a> () const</td></tr>
<tr class="memdesc:a8813b3fe2a3cc112e6db19c87b8422ae inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if any errors have been collected. <br /></td></tr>
<tr class="separator:a8813b3fe2a3cc112e6db19c87b8422ae inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afae10739a78bbffc2609a63e52821195 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_afae10739a78bbffc2609a63e52821195"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#afae10739a78bbffc2609a63e52821195">error_count</a> () const</td></tr>
<tr class="memdesc:afae10739a78bbffc2609a63e52821195 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of errors collected. <br /></td></tr>
<tr class="separator:afae10739a78bbffc2609a63e52821195 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16cbe7b6d423a372c9e68d970ff2c3ea inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a16cbe7b6d423a372c9e68d970ff2c3ea"><td class="memItemLeft" align="right" valign="top">Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a16cbe7b6d423a372c9e68d970ff2c3ea">CheckErrors</a> () const</td></tr>
<tr class="memdesc:a16cbe7b6d423a372c9e68d970ff2c3ea inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for accumulated errors and return them if any exist. <br /></td></tr>
<tr class="separator:a16cbe7b6d423a372c9e68d970ff2c3ea inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274df2b90b0c22156a4c339aa30a4401 inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a274df2b90b0c22156a4c339aa30a4401"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ErrorCollector.html#a274df2b90b0c22156a4c339aa30a4401">ClearErrors</a> ()</td></tr>
<tr class="memdesc:a274df2b90b0c22156a4c339aa30a4401 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all accumulated errors. <br /></td></tr>
<tr class="separator:a274df2b90b0c22156a4c339aa30a4401 inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a101fb70f2ad50a6023de932dc2eca96c inherit pub_methods_classiceberg_1_1ErrorCollector" id="r_a101fb70f2ad50a6023de932dc2eca96c"><td class="memItemLeft" align="right" valign="top">
const std::vector&lt; <a class="el" href="structiceberg_1_1Error.html">Error</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>errors</b> () const</td></tr>
<tr class="memdesc:a101fb70f2ad50a6023de932dc2eca96c inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get read-only access to all collected errors. <br /></td></tr>
<tr class="separator:a101fb70f2ad50a6023de932dc2eca96c inherit pub_methods_classiceberg_1_1ErrorCollector"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa4b00cff3b5c8726ba1f3b0f4cfd137b" id="r_aa4b00cff3b5c8726ba1f3b0f4cfd137b"><td class="memItemLeft" align="right" valign="top"><a id="aa4b00cff3b5c8726ba1f3b0f4cfd137b" name="aa4b00cff3b5c8726ba1f3b0f4cfd137b"></a>
static Result&lt; std::shared_ptr&lt; <a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Make</b> (std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Table.html">Table</a> &gt; table)</td></tr>
<tr class="memdesc:aa4b00cff3b5c8726ba1f3b0f4cfd137b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classiceberg_1_1SnapshotManager.html" title="API for managing snapshots.">SnapshotManager</a> that owns its own transaction. <br /></td></tr>
<tr class="separator:aa4b00cff3b5c8726ba1f3b0f4cfd137b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6970b812632272ad7acc0768f66b4ef" id="r_ae6970b812632272ad7acc0768f66b4ef"><td class="memItemLeft" align="right" valign="top">static Result&lt; std::shared_ptr&lt; <a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1SnapshotManager.html#ae6970b812632272ad7acc0768f66b4ef">Make</a> (std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Transaction.html">Transaction</a> &gt; transaction)</td></tr>
<tr class="memdesc:ae6970b812632272ad7acc0768f66b4ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classiceberg_1_1SnapshotManager.html" title="API for managing snapshots.">SnapshotManager</a> from an existing transaction. <br /></td></tr>
<tr class="separator:ae6970b812632272ad7acc0768f66b4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classiceberg_1_1ErrorCollector"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classiceberg_1_1ErrorCollector')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classiceberg_1_1ErrorCollector.html">iceberg::ErrorCollector</a></td></tr>
<tr class="memitem:a354d1e7287bb45926a4b563f80d0c623 inherit pro_attribs_classiceberg_1_1ErrorCollector" id="r_a354d1e7287bb45926a4b563f80d0c623"><td class="memItemLeft" align="right" valign="top">
std::vector&lt; <a class="el" href="structiceberg_1_1Error.html">Error</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>errors_</b></td></tr>
<tr class="separator:a354d1e7287bb45926a4b563f80d0c623 inherit pro_attribs_classiceberg_1_1ErrorCollector"><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>API for managing snapshots. </p>
<p>Allows rolling table data back to a stated at an older table snapshot.</p>
<p>Rollback: This API does not allow conflicting calls to SetCurrentSnapshot and RollbackToTime. When committing, these changes will be applied to the current table metadata. Commit conflicts will not be resolved and will result in a</p>
<p>Cherrypick: In an audit workflow, new data is written to an orphan snapshot that is not committed as the table's current state until it is audited. After auditing a change, it may need to be applied or cherry-picked on top of the latest snapshot instead of the one that was current when the audited changes were created. This class adds support for cherry-picking the changes from an orphan snapshot by applying them to the current snapshot. The output of the operation is a new snapshot with the changes from cherry-picked snapshot. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ab60628b03913f1a4d2b624399af130cb" name="ab60628b03913f1a4d2b624399af130cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab60628b03913f1a4d2b624399af130cb">&#9670;&#160;</a></span>Cherrypick()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::Cherrypick </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply supported changes in given snapshot and create a new snapshot which will be set as the current snapshot on commit. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">snapshot_id</td><td>a <a class="el" href="structiceberg_1_1Snapshot.html" title="A snapshot of the data in a table at a point in time.">Snapshot</a> ID whose changes to apply </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="aadee369ad7fbd83f72b607ab76a674ad" name="aadee369ad7fbd83f72b607ab76a674ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadee369ad7fbd83f72b607ab76a674ad">&#9670;&#160;</a></span>CreateBranch() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::CreateBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new branch. The branch will point to current snapshot if the current snapshot is not NULL. Otherwise, the branch will point to a newly created empty snapshot. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>branch name </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a525ee075af2d279ef383baec80b25feb" name="a525ee075af2d279ef383baec80b25feb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a525ee075af2d279ef383baec80b25feb">&#9670;&#160;</a></span>CreateBranch() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::CreateBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new branch pointing to the given snapshot id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>branch name </td></tr>
<tr><td class="paramname">snapshot_id</td><td>id of the snapshot which will be the head of the branch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ad0349e69da84c17e95238499aed8c0d2" name="ad0349e69da84c17e95238499aed8c0d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0349e69da84c17e95238499aed8c0d2">&#9670;&#160;</a></span>CreateTag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::CreateTag </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new tag pointing to the given snapshot id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>tag name </td></tr>
<tr><td class="paramname">snapshot_id</td><td>snapshot id for the head of the new tag </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ad623cbcd0f3868ba8ee8554b86eeb34b" name="ad623cbcd0f3868ba8ee8554b86eeb34b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad623cbcd0f3868ba8ee8554b86eeb34b">&#9670;&#160;</a></span>FastForwardBranch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::FastForwardBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform a fast-forward of 'from' up to the 'to' snapshot if 'from' is an ancestor of 'to'. The 'to' will remain unchanged, and 'from' will retain its retention properties. If the 'from' branch does not exist, it will be created with default retention properties. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">from</td><td>branch to fast-forward </td></tr>
<tr><td class="paramname">to</td><td>ref for the 'from' branch to be fast forwarded to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ae6970b812632272ad7acc0768f66b4ef" name="ae6970b812632272ad7acc0768f66b4ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6970b812632272ad7acc0768f66b4ef">&#9670;&#160;</a></span>Make()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Result&lt; std::shared_ptr&lt; <a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &gt; &gt; iceberg::SnapshotManager::Make </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Transaction.html">Transaction</a> &gt;&#160;</td>
<td class="paramname"><em>transaction</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a <a class="el" href="classiceberg_1_1SnapshotManager.html" title="API for managing snapshots.">SnapshotManager</a> from an existing transaction. </p>
<dl class="section note"><dt>Note</dt><dd>The caller is responsible for committing the transaction. </dd></dl>
</div>
</div>
<a id="acfa30c80bfa16531b86e8725b38a98b2" name="acfa30c80bfa16531b86e8725b38a98b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfa30c80bfa16531b86e8725b38a98b2">&#9670;&#160;</a></span>RemoveBranch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::RemoveBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove a branch by name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>branch name </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a306e48e9f5d9f7b45ebc33491bf67772" name="a306e48e9f5d9f7b45ebc33491bf67772"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a306e48e9f5d9f7b45ebc33491bf67772">&#9670;&#160;</a></span>RemoveTag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::RemoveTag </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove the tag with the given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>tag name </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ab2227f4b81eb2914817e4c3a3b7bb3c7" name="ab2227f4b81eb2914817e4c3a3b7bb3c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2227f4b81eb2914817e4c3a3b7bb3c7">&#9670;&#160;</a></span>RenameBranch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::RenameBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>new_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Rename a branch. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>name of branch to rename </td></tr>
<tr><td class="paramname">new_name</td><td>the desired new name of the branch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a0a712e72371916977e57df6370ac70d7" name="a0a712e72371916977e57df6370ac70d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a712e72371916977e57df6370ac70d7">&#9670;&#160;</a></span>ReplaceBranch() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::ReplaceBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace the 'from' branch to point to the 'to' snapshot. The 'to' will remain unchanged, and 'from' branch will retain its retention properties. If the 'from' branch does not exist, it will be created with default retention properties. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">from</td><td>branch to replace </td></tr>
<tr><td class="paramname">to</td><td>the branch 'from' should be replaced with </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ab94242a00fc7f93c2d2a636eb5c74b0c" name="ab94242a00fc7f93c2d2a636eb5c74b0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab94242a00fc7f93c2d2a636eb5c74b0c">&#9670;&#160;</a></span>ReplaceBranch() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::ReplaceBranch </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace the branch with the given name to point to the specified snapshot. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>branch to replace </td></tr>
<tr><td class="paramname">snapshot_id</td><td>new snapshot id for the given branch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a4b22b00bd9d5293642e165ff6069a004" name="a4b22b00bd9d5293642e165ff6069a004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b22b00bd9d5293642e165ff6069a004">&#9670;&#160;</a></span>ReplaceTag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::ReplaceTag </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace the tag with the given name to point to the specified snapshot. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>tag to replace </td></tr>
<tr><td class="paramname">snapshot_id</td><td>new snapshot id for the given tag </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="ac6ab9f78d03bbab1b9d206df564f6f23" name="ac6ab9f78d03bbab1b9d206df564f6f23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6ab9f78d03bbab1b9d206df564f6f23">&#9670;&#160;</a></span>RollbackTo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::RollbackTo </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Rollback table's state to a specific snapshot identified by id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">snapshot_id</td><td>long id of snapshot to roll back table to. Must be an ancestor of the current snapshot </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a1ca5336955462dd098f3f2eedb5a0b2e" name="a1ca5336955462dd098f3f2eedb5a0b2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ca5336955462dd098f3f2eedb5a0b2e">&#9670;&#160;</a></span>RollbackToTime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::RollbackToTime </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>timestamp_ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Roll this table's data back to the last snapshot before the given timestamp. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">timestamp_ms</td><td>a long timestamp in milliseconds </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a6b15c7298bda1a2967efaedf2e0a4805" name="a6b15c7298bda1a2967efaedf2e0a4805"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b15c7298bda1a2967efaedf2e0a4805">&#9670;&#160;</a></span>SetCurrentSnapshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::SetCurrentSnapshot </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>snapshot_id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Roll this table's data back to a specific snapshot identified by id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">snapshot_id</td><td>long id of the snapshot to roll back table data to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a85a6637511fe63774bf2aef83992d506" name="a85a6637511fe63774bf2aef83992d506"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85a6637511fe63774bf2aef83992d506">&#9670;&#160;</a></span>SetMaxRefAgeMs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::SetMaxRefAgeMs </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>max_ref_age_ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update the retention policy for a reference. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>branch name </td></tr>
<tr><td class="paramname">max_ref_age_ms</td><td>retention age in milliseconds of the tag reference itself </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="a1d0927fd7c4d54c6fa740d7653cf8904" name="a1d0927fd7c4d54c6fa740d7653cf8904"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d0927fd7c4d54c6fa740d7653cf8904">&#9670;&#160;</a></span>SetMaxSnapshotAgeMs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::SetMaxSnapshotAgeMs </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>branch_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>max_snapshot_age_ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update the max snapshot age for a branch. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">branch_name</td><td>branch name </td></tr>
<tr><td class="paramname">max_snapshot_age_ms</td><td>maximum snapshot age in milliseconds to retain on branch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<a id="afba03f50a532714e6040166ae2765859" name="afba03f50a532714e6040166ae2765859"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afba03f50a532714e6040166ae2765859">&#9670;&#160;</a></span>SetMinSnapshotsToKeep()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classiceberg_1_1SnapshotManager.html">SnapshotManager</a> &amp; iceberg::SnapshotManager::SetMinSnapshotsToKeep </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>branch_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>min_snapshots_to_keep</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update the minimum number of snapshots to keep for a branch. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">branch_name</td><td>branch name </td></tr>
<tr><td class="paramname">min_snapshots_to_keep</td><td>minimum number of snapshots to retain on the branch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classiceberg_1_1Reference.html" title="A reference represents a named field in an expression.">Reference</a> to this for method chaining </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>iceberg/update/<a class="el" href="snapshot__manager_8h_source.html">snapshot_manager.h</a></li>
<li>iceberg/update/<b>snapshot_manager.cc</b></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>