blob: 89886a449af88c7d3fc7608822ebfdd337b74821 [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::ManifestReaderImpl 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_1ManifestReaderImpl.html">ManifestReaderImpl</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classiceberg_1_1ManifestReaderImpl-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">iceberg::ManifestReaderImpl Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Read manifest entries from a manifest file.
<a href="classiceberg_1_1ManifestReaderImpl.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="manifest__reader__internal_8h_source.html">manifest_reader_internal.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for iceberg::ManifestReaderImpl:</div>
<div class="dyncontent">
<div class="center">
<img src="classiceberg_1_1ManifestReaderImpl.png" usemap="#iceberg::ManifestReaderImpl_map" alt=""/>
<map id="iceberg::ManifestReaderImpl_map" name="iceberg::ManifestReaderImpl_map">
<area href="classiceberg_1_1ManifestReader.html" title="Read manifest entries from a manifest file." alt="iceberg::ManifestReader" shape="rect" coords="0,0,172,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:a0e86d46558f4300be3b1b499b5b7a921" id="r_a0e86d46558f4300be3b1b499b5b7a921"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#a0e86d46558f4300be3b1b499b5b7a921">ManifestReaderImpl</a> (std::string manifest_path, std::optional&lt; int64_t &gt; manifest_length, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1FileIO.html">FileIO</a> &gt; file_io, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Schema.html">Schema</a> &gt; schema, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSpec.html">PartitionSpec</a> &gt; spec, std::unique_ptr&lt; <a class="el" href="classiceberg_1_1InheritableMetadata.html">InheritableMetadata</a> &gt; inheritable_metadata, std::optional&lt; int64_t &gt; first_row_id)</td></tr>
<tr class="memdesc:a0e86d46558f4300be3b1b499b5b7a921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a <a class="el" href="classiceberg_1_1ManifestReaderImpl.html" title="Read manifest entries from a manifest file.">ManifestReaderImpl</a> for lazy initialization. <br /></td></tr>
<tr class="separator:a0e86d46558f4300be3b1b499b5b7a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca92b650d42ccd16ebcd5be85f3ed629" id="r_aca92b650d42ccd16ebcd5be85f3ed629"><td class="memItemLeft" align="right" valign="top">Result&lt; std::vector&lt; <a class="el" href="structiceberg_1_1ManifestEntry.html">ManifestEntry</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#aca92b650d42ccd16ebcd5be85f3ed629">Entries</a> () override</td></tr>
<tr class="memdesc:aca92b650d42ccd16ebcd5be85f3ed629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read all manifest entries in the manifest file. <br /></td></tr>
<tr class="separator:aca92b650d42ccd16ebcd5be85f3ed629"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3a828cfc598e77462f6b313873eaa62" id="r_aa3a828cfc598e77462f6b313873eaa62"><td class="memItemLeft" align="right" valign="top">Result&lt; std::vector&lt; <a class="el" href="structiceberg_1_1ManifestEntry.html">ManifestEntry</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#aa3a828cfc598e77462f6b313873eaa62">LiveEntries</a> () override</td></tr>
<tr class="memdesc:aa3a828cfc598e77462f6b313873eaa62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read only live (non-deleted) manifest entries. <br /></td></tr>
<tr class="separator:aa3a828cfc598e77462f6b313873eaa62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a235aa959a55e2241712638bd78349b3f" id="r_a235aa959a55e2241712638bd78349b3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#a235aa959a55e2241712638bd78349b3f">Select</a> (const std::vector&lt; std::string &gt; &amp;columns) override</td></tr>
<tr class="memdesc:a235aa959a55e2241712638bd78349b3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select specific columns of data file to read from the manifest entries. <br /></td></tr>
<tr class="separator:a235aa959a55e2241712638bd78349b3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4422ae02cea8097b66b8012fda2ae633" id="r_a4422ae02cea8097b66b8012fda2ae633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#a4422ae02cea8097b66b8012fda2ae633">FilterPartitions</a> (std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Expression.html">Expression</a> &gt; expr) override</td></tr>
<tr class="memdesc:a4422ae02cea8097b66b8012fda2ae633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter manifest entries by partition filter. <br /></td></tr>
<tr class="separator:a4422ae02cea8097b66b8012fda2ae633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae03b719e248611e96487bbffaeeaddf1" id="r_ae03b719e248611e96487bbffaeeaddf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#ae03b719e248611e96487bbffaeeaddf1">FilterPartitions</a> (std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSet.html">PartitionSet</a> &gt; partition_set) override</td></tr>
<tr class="memdesc:ae03b719e248611e96487bbffaeeaddf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter manifest entries to a specific set of partitions. <br /></td></tr>
<tr class="separator:ae03b719e248611e96487bbffaeeaddf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab374b3b551b2ac50dddf72f2c706a564" id="r_ab374b3b551b2ac50dddf72f2c706a564"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#ab374b3b551b2ac50dddf72f2c706a564">FilterRows</a> (std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Expression.html">Expression</a> &gt; expr) override</td></tr>
<tr class="memdesc:ab374b3b551b2ac50dddf72f2c706a564"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter manifest entries by row-level filter. <br /></td></tr>
<tr class="separator:ab374b3b551b2ac50dddf72f2c706a564"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b1320ae6cf34ac21154e0eafaf2fff5" id="r_a6b1320ae6cf34ac21154e0eafaf2fff5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#a6b1320ae6cf34ac21154e0eafaf2fff5">CaseSensitive</a> (bool case_sensitive) override</td></tr>
<tr class="memdesc:a6b1320ae6cf34ac21154e0eafaf2fff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set case sensitivity for column name matching. <br /></td></tr>
<tr class="separator:a6b1320ae6cf34ac21154e0eafaf2fff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecd3c5647dea86b3c41deafd2b84c891" id="r_aecd3c5647dea86b3c41deafd2b84c891"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReaderImpl.html#aecd3c5647dea86b3c41deafd2b84c891">TryDropStats</a> () override</td></tr>
<tr class="memdesc:aecd3c5647dea86b3c41deafd2b84c891"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to drop stats from returned <a class="el" href="structiceberg_1_1DataFile.html" title="DataFile carries data file path, partition tuple, metrics, ...">DataFile</a> objects. <br /></td></tr>
<tr class="separator:aecd3c5647dea86b3c41deafd2b84c891"><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 pub_static_methods_classiceberg_1_1ManifestReader"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classiceberg_1_1ManifestReader')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classiceberg_1_1ManifestReader.html">iceberg::ManifestReader</a></td></tr>
<tr class="memitem:ae3e8a011f3bf271ce0eda2027b082cef inherit pub_static_methods_classiceberg_1_1ManifestReader" id="r_ae3e8a011f3bf271ce0eda2027b082cef"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReader.html#ae3e8a011f3bf271ce0eda2027b082cef">ShouldDropStats</a> (const std::vector&lt; std::string &gt; &amp;columns)</td></tr>
<tr class="memdesc:ae3e8a011f3bf271ce0eda2027b082cef inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether stats should be dropped based on selected columns. <br /></td></tr>
<tr class="separator:ae3e8a011f3bf271ce0eda2027b082cef inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a338f94acf754f75c6d264a11a8bcedc7 inherit pub_static_methods_classiceberg_1_1ManifestReader" id="r_a338f94acf754f75c6d264a11a8bcedc7"><td class="memItemLeft" align="right" valign="top">static Result&lt; std::unique_ptr&lt; <a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReader.html#a338f94acf754f75c6d264a11a8bcedc7">Make</a> (const <a class="el" href="structiceberg_1_1ManifestFile.html">ManifestFile</a> &amp;manifest, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1FileIO.html">FileIO</a> &gt; file_io, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Schema.html">Schema</a> &gt; schema, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSpec.html">PartitionSpec</a> &gt; spec)</td></tr>
<tr class="memdesc:a338f94acf754f75c6d264a11a8bcedc7 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a reader for a manifest file. <br /></td></tr>
<tr class="separator:a338f94acf754f75c6d264a11a8bcedc7 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e8c463d225ac00edf308562a0f19c77 inherit pub_static_methods_classiceberg_1_1ManifestReader" id="r_a6e8c463d225ac00edf308562a0f19c77"><td class="memItemLeft" align="right" valign="top">static Result&lt; std::unique_ptr&lt; <a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReader.html#a6e8c463d225ac00edf308562a0f19c77">Make</a> (const <a class="el" href="structiceberg_1_1ManifestFile.html">ManifestFile</a> &amp;manifest, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1FileIO.html">FileIO</a> &gt; file_io, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Schema.html">Schema</a> &gt; schema, const std::unordered_map&lt; int32_t, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSpec.html">PartitionSpec</a> &gt; &gt; &amp;specs_by_id)</td></tr>
<tr class="memdesc:a6e8c463d225ac00edf308562a0f19c77 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a reader for a manifest file using specs keyed by ID. <br /></td></tr>
<tr class="separator:a6e8c463d225ac00edf308562a0f19c77 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdb3ad0e3a2bd5d1c74ef6e267c3bfb5 inherit pub_static_methods_classiceberg_1_1ManifestReader" id="r_acdb3ad0e3a2bd5d1c74ef6e267c3bfb5"><td class="memItemLeft" align="right" valign="top">static Result&lt; std::unique_ptr&lt; <a class="el" href="classiceberg_1_1ManifestReader.html">ManifestReader</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classiceberg_1_1ManifestReader.html#acdb3ad0e3a2bd5d1c74ef6e267c3bfb5">Make</a> (std::string_view manifest_location, std::optional&lt; int64_t &gt; manifest_length, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1FileIO.html">FileIO</a> &gt; file_io, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Schema.html">Schema</a> &gt; schema, std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSpec.html">PartitionSpec</a> &gt; spec, std::unique_ptr&lt; <a class="el" href="classiceberg_1_1InheritableMetadata.html">InheritableMetadata</a> &gt; inheritable_metadata, std::optional&lt; int64_t &gt; first_row_id=std::nullopt)</td></tr>
<tr class="memdesc:acdb3ad0e3a2bd5d1c74ef6e267c3bfb5 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a reader for a manifest file. <br /></td></tr>
<tr class="separator:acdb3ad0e3a2bd5d1c74ef6e267c3bfb5 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa92da63e827b6dcc391744a9f0f55d72 inherit pub_static_methods_classiceberg_1_1ManifestReader" id="r_aa92da63e827b6dcc391744a9f0f55d72"><td class="memItemLeft" align="right" valign="top">
static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>WithStatsColumns</b> (const std::vector&lt; std::string &gt; &amp;columns)</td></tr>
<tr class="memdesc:aa92da63e827b6dcc391744a9f0f55d72 inherit pub_static_methods_classiceberg_1_1ManifestReader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add stats columns to the column list if needed. <br /></td></tr>
<tr class="separator:aa92da63e827b6dcc391744a9f0f55d72 inherit pub_static_methods_classiceberg_1_1ManifestReader"><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>Read manifest entries from a manifest file. </p>
<p>This implementation supports lazy reader creation and filtering based on partition expressions, row expressions, and partition sets. Following the Java implementation pattern. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a0e86d46558f4300be3b1b499b5b7a921" name="a0e86d46558f4300be3b1b499b5b7a921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e86d46558f4300be3b1b499b5b7a921">&#9670;&#160;</a></span>ManifestReaderImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">iceberg::ManifestReaderImpl::ManifestReaderImpl </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>manifest_path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; int64_t &gt;&#160;</td>
<td class="paramname"><em>manifest_length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1FileIO.html">FileIO</a> &gt;&#160;</td>
<td class="paramname"><em>file_io</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Schema.html">Schema</a> &gt;&#160;</td>
<td class="paramname"><em>schema</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSpec.html">PartitionSpec</a> &gt;&#160;</td>
<td class="paramname"><em>spec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classiceberg_1_1InheritableMetadata.html">InheritableMetadata</a> &gt;&#160;</td>
<td class="paramname"><em>inheritable_metadata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; int64_t &gt;&#160;</td>
<td class="paramname"><em>first_row_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a <a class="el" href="classiceberg_1_1ManifestReaderImpl.html" title="Read manifest entries from a manifest file.">ManifestReaderImpl</a> for lazy initialization. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">manifest_path</td><td>Path to the manifest file. </td></tr>
<tr><td class="paramname">manifest_length</td><td>Length of the manifest file (optional). </td></tr>
<tr><td class="paramname">file_io</td><td>File IO implementation. </td></tr>
<tr><td class="paramname">schema</td><td><a class="el" href="classiceberg_1_1Table.html" title="Represents an Iceberg table.">Table</a> schema. </td></tr>
<tr><td class="paramname">spec</td><td>Partition spec. </td></tr>
<tr><td class="paramname">inheritable_metadata</td><td>Metadata inherited from manifest. </td></tr>
<tr><td class="paramname">first_row_id</td><td>First row ID for V3 manifests. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classiceberg_1_1ManifestReader.html#a338f94acf754f75c6d264a11a8bcedc7" title="Creates a reader for a manifest file.">ManifestReader::Make()</a> functions should guarantee non-null parameters. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6b1320ae6cf34ac21154e0eafaf2fff5" name="a6b1320ae6cf34ac21154e0eafaf2fff5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b1320ae6cf34ac21154e0eafaf2fff5">&#9670;&#160;</a></span>CaseSensitive()</h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::CaseSensitive </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>case_sensitive</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set case sensitivity for column name matching. </p>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#aab85a50e27e7d0809d4c5040ec1240c2">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="aca92b650d42ccd16ebcd5be85f3ed629" name="aca92b650d42ccd16ebcd5be85f3ed629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca92b650d42ccd16ebcd5be85f3ed629">&#9670;&#160;</a></span>Entries()</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::vector&lt; <a class="el" href="structiceberg_1_1ManifestEntry.html">ManifestEntry</a> &gt; &gt; iceberg::ManifestReaderImpl::Entries </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read all manifest entries in the manifest file. </p>
<p>TODO(gangwu): provide a lazy-evaluated iterator interface for better performance. </p>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#a068079494a5e9143005e42f60cb39bcc">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="a4422ae02cea8097b66b8012fda2ae633" name="a4422ae02cea8097b66b8012fda2ae633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4422ae02cea8097b66b8012fda2ae633">&#9670;&#160;</a></span>FilterPartitions() <span class="overload">[1/2]</span></h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::FilterPartitions </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Expression.html">Expression</a> &gt;&#160;</td>
<td class="paramname"><em>expr</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Filter manifest entries by partition filter. </p>
<dl class="section note"><dt>Note</dt><dd>Unlike the Java implementation, this method does not combine new expressions with existing ones. Each call replaces the previous partition filter. </dd></dl>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#a8f8ef9b4119bd5337f810ea35b101bf5">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="ae03b719e248611e96487bbffaeeaddf1" name="ae03b719e248611e96487bbffaeeaddf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae03b719e248611e96487bbffaeeaddf1">&#9670;&#160;</a></span>FilterPartitions() <span class="overload">[2/2]</span></h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::FilterPartitions </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1PartitionSet.html">PartitionSet</a> &gt;&#160;</td>
<td class="paramname"><em>partition_set</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Filter manifest entries to a specific set of partitions. </p>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#aaae76b985329c0bbd2b614515567cafa">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="ab374b3b551b2ac50dddf72f2c706a564" name="ab374b3b551b2ac50dddf72f2c706a564"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab374b3b551b2ac50dddf72f2c706a564">&#9670;&#160;</a></span>FilterRows()</h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::FilterRows </td>
<td>(</td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classiceberg_1_1Expression.html">Expression</a> &gt;&#160;</td>
<td class="paramname"><em>expr</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Filter manifest entries by row-level filter. </p>
<dl class="section note"><dt>Note</dt><dd>Unlike the Java implementation, this method does not combine new expressions with existing ones. Each call replaces the previous row filter. </dd></dl>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#a55a0f0a0348dc51ddb1cb29a5e0e91d1">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="aa3a828cfc598e77462f6b313873eaa62" name="aa3a828cfc598e77462f6b313873eaa62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3a828cfc598e77462f6b313873eaa62">&#9670;&#160;</a></span>LiveEntries()</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::vector&lt; <a class="el" href="structiceberg_1_1ManifestEntry.html">ManifestEntry</a> &gt; &gt; iceberg::ManifestReaderImpl::LiveEntries </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read only live (non-deleted) manifest entries. </p>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#ad33ef890dc38eb5640903cd4ec7ed961">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="a235aa959a55e2241712638bd78349b3f" name="a235aa959a55e2241712638bd78349b3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a235aa959a55e2241712638bd78349b3f">&#9670;&#160;</a></span>Select()</h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::Select </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>columns</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Select specific columns of data file to read from the manifest entries. </p>
<dl class="section note"><dt>Note</dt><dd>Column names should match the names in <code><a class="el" href="structiceberg_1_1DataFile.html" title="DataFile carries data file path, partition tuple, metrics, ...">DataFile</a></code> schema. Unmatched names will be ignored. </dd></dl>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#a77c8f0b9f3498979e486794ab03e93ca">iceberg::ManifestReader</a>.</p>
</div>
</div>
<a id="aecd3c5647dea86b3c41deafd2b84c891" name="aecd3c5647dea86b3c41deafd2b84c891"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecd3c5647dea86b3c41deafd2b84c891">&#9670;&#160;</a></span>TryDropStats()</h2>
<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="classiceberg_1_1ManifestReader.html">ManifestReader</a> &amp; iceberg::ManifestReaderImpl::TryDropStats </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Try to drop stats from returned <a class="el" href="structiceberg_1_1DataFile.html" title="DataFile carries data file path, partition tuple, metrics, ...">DataFile</a> objects. </p>
<p>Implements <a class="el" href="classiceberg_1_1ManifestReader.html#ab21d9e39fb471ce55d424d8f142d790c">iceberg::ManifestReader</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>iceberg/manifest/<a class="el" href="manifest__reader__internal_8h_source.html">manifest_reader_internal.h</a></li>
<li>iceberg/manifest/<b>manifest_reader.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>