blob: 6df517efea32e4088b9eb8b25bb289b9c2cd9e2d [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>Paimon-cpp: paimon::ReadContextBuilder 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">Paimon-cpp
</div>
<div id="projectbrief">A high-performance C++ implementation of Apache Paimon</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"><a class="el" href="namespacepaimon.html">paimon</a></li><li class="navelem"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classpaimon_1_1_read_context_builder-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">paimon::ReadContextBuilder Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code><a class="el" href="classpaimon_1_1_read_context_builder.html" title="ReadContextBuilder used to build a ReadContext, has input validation.">ReadContextBuilder</a></code> used to build a <code><a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a></code>, has input validation.
<a href="classpaimon_1_1_read_context_builder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="read__context_8h_source.html">/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/read_context.h</a>&gt;</code></p>
<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:a4e36cce9a1da99af61afb2283804128f" id="r_a4e36cce9a1da99af61afb2283804128f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a4e36cce9a1da99af61afb2283804128f">ReadContextBuilder</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">path</a>)</td></tr>
<tr class="memdesc:a4e36cce9a1da99af61afb2283804128f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <code><a class="el" href="classpaimon_1_1_read_context_builder.html" title="ReadContextBuilder used to build a ReadContext, has input validation.">ReadContextBuilder</a></code> with required parameters. <br /></td></tr>
<tr class="separator:a4e36cce9a1da99af61afb2283804128f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2df9112180f6a2e2216ab9a2efc876e" id="r_ab2df9112180f6a2e2216ab9a2efc876e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#ab2df9112180f6a2e2216ab9a2efc876e">~ReadContextBuilder</a> ()</td></tr>
<tr class="separator:ab2df9112180f6a2e2216ab9a2efc876e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06fd2e446a1ce516d7b13f52ab3e29a2" id="r_a06fd2e446a1ce516d7b13f52ab3e29a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a06fd2e446a1ce516d7b13f52ab3e29a2">ReadContextBuilder</a> (<a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&amp;) <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">noexcept</a></td></tr>
<tr class="separator:a06fd2e446a1ce516d7b13f52ab3e29a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2925ca4ec784ce7e78ad0ff3f08535d7" id="r_a2925ca4ec784ce7e78ad0ff3f08535d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a2925ca4ec784ce7e78ad0ff3f08535d7">operator=</a> (<a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&amp;) <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">noexcept</a></td></tr>
<tr class="separator:a2925ca4ec784ce7e78ad0ff3f08535d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae223ca8ef8083e4f22a404163b2bfce4" id="r_ae223ca8ef8083e4f22a404163b2bfce4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#ae223ca8ef8083e4f22a404163b2bfce4">SetReadFieldNames</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::vector&lt; std::string &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">read_field_names</a>)</td></tr>
<tr class="memdesc:ae223ca8ef8083e4f22a404163b2bfce4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the schema fields to read from the table. <br /></td></tr>
<tr class="separator:ae223ca8ef8083e4f22a404163b2bfce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13e652d39f99bd80ffa2b10af2b29245" id="r_a13e652d39f99bd80ffa2b10af2b29245"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a13e652d39f99bd80ffa2b10af2b29245">SetReadFieldIds</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::vector&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int32_t</a> &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">read_field_ids</a>)</td></tr>
<tr class="memdesc:a13e652d39f99bd80ffa2b10af2b29245"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the schema fields to read from the table. <br /></td></tr>
<tr class="separator:a13e652d39f99bd80ffa2b10af2b29245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a665df8a4b9252578ddfebf6e698a3a" id="r_a2a665df8a4b9252578ddfebf6e698a3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a2a665df8a4b9252578ddfebf6e698a3a">SetReadSchema</a> (std::unique_ptr&lt; <a class="el" href="struct_arrow_schema.html">ArrowSchema</a> &gt; read_schema)</td></tr>
<tr class="memdesc:a2a665df8a4b9252578ddfebf6e698a3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the read Arrow <a class="el" href="classpaimon_1_1_schema.html" title="This interface provides access to TableSchema-related information.">Schema</a> for nested column pruning. <br /></td></tr>
<tr class="separator:a2a665df8a4b9252578ddfebf6e698a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19370226e886d90bfb4b2146e769cff6" id="r_a19370226e886d90bfb4b2146e769cff6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a19370226e886d90bfb4b2146e769cff6">SetOptions</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::map&lt; std::string, std::string &gt; &amp;options)</td></tr>
<tr class="memdesc:a19370226e886d90bfb4b2146e769cff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a configuration options map to set some option entries which are not defined in the table schema or whose values you want to overwrite. <br /></td></tr>
<tr class="separator:a19370226e886d90bfb4b2146e769cff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19a1a07f17d04342f0a3e31faedf4d04" id="r_a19a1a07f17d04342f0a3e31faedf4d04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a19a1a07f17d04342f0a3e31faedf4d04">AddOption</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">key</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;value)</td></tr>
<tr class="memdesc:a19a1a07f17d04342f0a3e31faedf4d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a single configuration option which is not defined in the table schema or whose value you want to overwrite. <br /></td></tr>
<tr class="separator:a19a1a07f17d04342f0a3e31faedf4d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58b67acbb681a859634c7d017bfc2551" id="r_a58b67acbb681a859634c7d017bfc2551"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a58b67acbb681a859634c7d017bfc2551">SetPredicate</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_predicate.html">Predicate</a> &gt; &amp;predicate)</td></tr>
<tr class="memdesc:a58b67acbb681a859634c7d017bfc2551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a predicate for filtering data during reading. <br /></td></tr>
<tr class="separator:a58b67acbb681a859634c7d017bfc2551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af48c4f27fd8e263b51f13f9c2badf167" id="r_af48c4f27fd8e263b51f13f9c2badf167"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#af48c4f27fd8e263b51f13f9c2badf167">EnablePredicateFilter</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">enabled</a>)</td></tr>
<tr class="memdesc:af48c4f27fd8e263b51f13f9c2badf167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to perform precise filtering according to predicates for data read from format reader. <br /></td></tr>
<tr class="separator:af48c4f27fd8e263b51f13f9c2badf167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ae2dddf806f6ac9b715e282e0dce8b" id="r_a72ae2dddf806f6ac9b715e282e0dce8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a72ae2dddf806f6ac9b715e282e0dce8b">EnablePrefetch</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">enabled</a>)</td></tr>
<tr class="memdesc:a72ae2dddf806f6ac9b715e282e0dce8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable prefetching of data batches from individual files. <br /></td></tr>
<tr class="separator:a72ae2dddf806f6ac9b715e282e0dce8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23f0bffb2be1e1a24cfd13e415b35eb4" id="r_a23f0bffb2be1e1a24cfd13e415b35eb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a23f0bffb2be1e1a24cfd13e415b35eb4">EnableLateMaterializing</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">enabled</a>)</td></tr>
<tr class="memdesc:a23f0bffb2be1e1a24cfd13e415b35eb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable late materialization (probe/payload two-phase reads). <br /></td></tr>
<tr class="separator:a23f0bffb2be1e1a24cfd13e415b35eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b7e99dd1d6d5cd255c80ffbf716807" id="r_a77b7e99dd1d6d5cd255c80ffbf716807"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a77b7e99dd1d6d5cd255c80ffbf716807">SetReadAheadCacheEnabled</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">enabled</a>)</td></tr>
<tr class="memdesc:a77b7e99dd1d6d5cd255c80ffbf716807"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable the read-ahead cache for read operations. <br /></td></tr>
<tr class="separator:a77b7e99dd1d6d5cd255c80ffbf716807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60637f1be393cdb39ab43cfff979d53f" id="r_a60637f1be393cdb39ab43cfff979d53f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a60637f1be393cdb39ab43cfff979d53f">WithCacheConfig</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> <a class="el" href="classpaimon_1_1_cache_config.html">CacheConfig</a> &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">config</a>)</td></tr>
<tr class="memdesc:a60637f1be393cdb39ab43cfff979d53f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the cache configuration for prefetch read operations. <br /></td></tr>
<tr class="separator:a60637f1be393cdb39ab43cfff979d53f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83ced5a0fc3709b3dce8cda137825340" id="r_a83ced5a0fc3709b3dce8cda137825340"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a83ced5a0fc3709b3dce8cda137825340">SetPrefetchBatchCount</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">batch_count</a>)</td></tr>
<tr class="memdesc:a83ced5a0fc3709b3dce8cda137825340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the total number of batches to prefetch across all files. <br /></td></tr>
<tr class="separator:a83ced5a0fc3709b3dce8cda137825340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac13b0e6cbeae7bea3c5f66b50331e57b" id="r_ac13b0e6cbeae7bea3c5f66b50331e57b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#ac13b0e6cbeae7bea3c5f66b50331e57b">SetPrefetchMaxParallelNum</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">parallel_num</a>)</td></tr>
<tr class="memdesc:ac13b0e6cbeae7bea3c5f66b50331e57b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum number of parallel prefetch operations. <br /></td></tr>
<tr class="separator:ac13b0e6cbeae7bea3c5f66b50331e57b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d3965c3097b420ebb61eb8871a1029" id="r_aa1d3965c3097b420ebb61eb8871a1029"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#aa1d3965c3097b420ebb61eb8871a1029">EnableMultiThreadRowToBatch</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">enabled</a>)</td></tr>
<tr class="memdesc:aa1d3965c3097b420ebb61eb8871a1029"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable multi-threaded row-to-batch conversion in merge-on-read scenarios. <br /></td></tr>
<tr class="separator:aa1d3965c3097b420ebb61eb8871a1029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1babef236e8c932d8cfe3ebfb0d07c3" id="r_aa1babef236e8c932d8cfe3ebfb0d07c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#aa1babef236e8c932d8cfe3ebfb0d07c3">SetRowToBatchThreadNumber</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">thread_number</a>)</td></tr>
<tr class="memdesc:aa1babef236e8c932d8cfe3ebfb0d07c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of threads for row-to-batch conversion in merge-on-read scenarios. <br /></td></tr>
<tr class="separator:aa1babef236e8c932d8cfe3ebfb0d07c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23ca35125be67f60a8b74ea69bdeaa72" id="r_a23ca35125be67f60a8b74ea69bdeaa72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a23ca35125be67f60a8b74ea69bdeaa72">WithMemoryPool</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> &gt; &amp;memory_pool)</td></tr>
<tr class="memdesc:a23ca35125be67f60a8b74ea69bdeaa72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set custom memory pool for memory management. <br /></td></tr>
<tr class="separator:a23ca35125be67f60a8b74ea69bdeaa72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a4a37fe0d1985877ea97b6f653a7ded" id="r_a2a4a37fe0d1985877ea97b6f653a7ded"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a2a4a37fe0d1985877ea97b6f653a7ded">WithExecutor</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_executor.html">Executor</a> &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">executor</a>)</td></tr>
<tr class="memdesc:a2a4a37fe0d1985877ea97b6f653a7ded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set custom executor for task execution. <br /></td></tr>
<tr class="separator:a2a4a37fe0d1985877ea97b6f653a7ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a081ba74623d7a6a85a15309b326b300e" id="r_a081ba74623d7a6a85a15309b326b300e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a081ba74623d7a6a85a15309b326b300e">WithRealtimeContext</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_realtime_context.html">RealtimeContext</a> &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">realtime_context</a>)</td></tr>
<tr class="memdesc:a081ba74623d7a6a85a15309b326b300e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the shared context used to resolve process-local real-time split tickets. <br /></td></tr>
<tr class="separator:a081ba74623d7a6a85a15309b326b300e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2207f97601909364651cf498d8a7ca7b" id="r_a2207f97601909364651cf498d8a7ca7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a2207f97601909364651cf498d8a7ca7b">SetTableSchema</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">table_schema</a>)</td></tr>
<tr class="memdesc:a2207f97601909364651cf498d8a7ca7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the table schema as a string to avoid schema loading I/O operations. <br /></td></tr>
<tr class="separator:a2207f97601909364651cf498d8a7ca7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9370c5ed4080773bdfd707f27d8a758" id="r_ac9370c5ed4080773bdfd707f27d8a758"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#ac9370c5ed4080773bdfd707f27d8a758">WithBranch</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">branch</a>)</td></tr>
<tr class="memdesc:ac9370c5ed4080773bdfd707f27d8a758"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the specific branch to read from in a versioned table. <br /></td></tr>
<tr class="separator:ac9370c5ed4080773bdfd707f27d8a758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a251413e5eb4909c235f157bce73cf5b4" id="r_a251413e5eb4909c235f157bce73cf5b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a251413e5eb4909c235f157bce73cf5b4">WithFileSystemSchemeToIdentifierMap</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::map&lt; std::string, std::string &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">fs_scheme_to_identifier_map</a>)</td></tr>
<tr class="memdesc:a251413e5eb4909c235f157bce73cf5b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a mapping from URI schemes (e.g., "file", "oss") to registered file system identifiers. <br /></td></tr>
<tr class="separator:a251413e5eb4909c235f157bce73cf5b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ff02f27a5346cd2f4fd7026bee9a47b" id="r_a6ff02f27a5346cd2f4fd7026bee9a47b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a6ff02f27a5346cd2f4fd7026bee9a47b">WithFileSystem</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_file_system.html">FileSystem</a> &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">file_system</a>)</td></tr>
<tr class="memdesc:a6ff02f27a5346cd2f4fd7026bee9a47b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a custom file system instance to be used for all file operations in this read context. <br /></td></tr>
<tr class="separator:a6ff02f27a5346cd2f4fd7026bee9a47b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9971fd9cd037d1eb34d476dd406176b7" id="r_a9971fd9cd037d1eb34d476dd406176b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#a9971fd9cd037d1eb34d476dd406176b7">WithCache</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_cache.html">Cache</a> &gt; &amp;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">cache</a>)</td></tr>
<tr class="memdesc:a9971fd9cd037d1eb34d476dd406176b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inject a cache for read operations. <br /></td></tr>
<tr class="separator:a9971fd9cd037d1eb34d476dd406176b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2d9a3bf13203069492ddd73961555c1" id="r_ab2d9a3bf13203069492ddd73961555c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; std::unique_ptr&lt; <a class="el" href="classpaimon_1_1_read_context.html">ReadContext</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#ab2d9a3bf13203069492ddd73961555c1">Finish</a> ()</td></tr>
<tr class="memdesc:ab2d9a3bf13203069492ddd73961555c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build and return a <code><a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a></code> instance with input validation. <br /></td></tr>
<tr class="separator:ab2d9a3bf13203069492ddd73961555c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:adf01c36be5deb1ef71dc097225dfb5d4" id="r_adf01c36be5deb1ef71dc097225dfb5d4"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">Impl</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_read_context_builder.html#adf01c36be5deb1ef71dc097225dfb5d4">impl_</a></td></tr>
<tr class="separator:adf01c36be5deb1ef71dc097225dfb5d4"><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><code><a class="el" href="classpaimon_1_1_read_context_builder.html" title="ReadContextBuilder used to build a ReadContext, has input validation.">ReadContextBuilder</a></code> used to build a <code><a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a></code>, has input validation. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4e36cce9a1da99af61afb2283804128f" name="a4e36cce9a1da99af61afb2283804128f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e36cce9a1da99af61afb2283804128f">&#9670;&#160;</a></span>ReadContextBuilder() <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">paimon::ReadContextBuilder::ReadContextBuilder </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <code><a class="el" href="classpaimon_1_1_read_context_builder.html" title="ReadContextBuilder used to build a ReadContext, has input validation.">ReadContextBuilder</a></code> with required parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">path</td><td>The root path of the table. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab2df9112180f6a2e2216ab9a2efc876e" name="ab2df9112180f6a2e2216ab9a2efc876e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2df9112180f6a2e2216ab9a2efc876e">&#9670;&#160;</a></span>~ReadContextBuilder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">paimon::ReadContextBuilder::~ReadContextBuilder </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a06fd2e446a1ce516d7b13f52ab3e29a2" name="a06fd2e446a1ce516d7b13f52ab3e29a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06fd2e446a1ce516d7b13f52ab3e29a2">&#9670;&#160;</a></span>ReadContextBuilder() <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">paimon::ReadContextBuilder::ReadContextBuilder </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2925ca4ec784ce7e78ad0ff3f08535d7" name="a2925ca4ec784ce7e78ad0ff3f08535d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2925ca4ec784ce7e78ad0ff3f08535d7">&#9670;&#160;</a></span>operator=()</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="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae223ca8ef8083e4f22a404163b2bfce4" name="ae223ca8ef8083e4f22a404163b2bfce4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae223ca8ef8083e4f22a404163b2bfce4">&#9670;&#160;</a></span>SetReadFieldNames()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetReadFieldNames </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>read_field_names</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the schema fields to read from the table. </p>
<p>If not set, all fields from the table schema will be read. This is useful for projection pushdown to reduce I/O and improve performance by reading only the required columns.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">read_field_names</td><td>Vector of field names to read from the table. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Currently supports top-level field selection. For nested field selection use <a class="el" href="classpaimon_1_1_read_context_builder.html#a2a665df8a4b9252578ddfebf6e698a3a" title="Set the read Arrow Schema for nested column pruning.">SetReadSchema(std::unique_ptr&lt;ArrowSchema&gt;)</a> instead. </dd></dl>
</div>
</div>
<a id="a13e652d39f99bd80ffa2b10af2b29245" name="a13e652d39f99bd80ffa2b10af2b29245"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13e652d39f99bd80ffa2b10af2b29245">&#9670;&#160;</a></span>SetReadFieldIds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetReadFieldIds </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::vector&lt; <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">int32_t</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>read_field_ids</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the schema fields to read from the table. </p>
<p>If not set, all fields from the table schema will be read. This is useful for projection pushdown to reduce I/O and improve performance by reading only the required columns.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">read_field_ids</td><td>Vector of field ids to read from the table. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Currently supports top-level field selection. </dd>
<dd>
<a class="el" href="classpaimon_1_1_read_context_builder.html#a13e652d39f99bd80ffa2b10af2b29245" title="Set the schema fields to read from the table.">SetReadFieldIds()</a> and <a class="el" href="classpaimon_1_1_read_context_builder.html#ae223ca8ef8083e4f22a404163b2bfce4" title="Set the schema fields to read from the table.">SetReadFieldNames()</a> are mutually exclusive. Calling both will ignore the read schema set by <a class="el" href="classpaimon_1_1_read_context_builder.html#ae223ca8ef8083e4f22a404163b2bfce4" title="Set the schema fields to read from the table.">SetReadFieldNames()</a>. </dd></dl>
</div>
</div>
<a id="a2a665df8a4b9252578ddfebf6e698a3a" name="a2a665df8a4b9252578ddfebf6e698a3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a665df8a4b9252578ddfebf6e698a3a">&#9670;&#160;</a></span>SetReadSchema()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetReadSchema </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="struct_arrow_schema.html">ArrowSchema</a> &gt;&#160;</td>
<td class="paramname"><em>read_schema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the read Arrow <a class="el" href="classpaimon_1_1_schema.html" title="This interface provides access to TableSchema-related information.">Schema</a> for nested column pruning. </p>
<p>The read schema is an Arrow C Data Interface schema where STRUCT types may contain only a subset of the original sub-fields, enabling nested column pruning to reduce I/O. Field matching is based on field name: the system looks up each field by name in the table schema and rebuilds the aligned schema using the table schema's type and metadata. Metadata propagation from the user-provided schema is whitelist-based: currently only "paimon.map.selected-keys" is preserved and merged into the final aligned schema.</p>
<p>To prune map entries by key, attach metadata "paimon.map.selected-keys" to the target map field in read schema. The value is a comma-separated key list, for example: "k1,k2". Only map fields with string key type (Arrow utf8) are supported.</p>
<p>Attaching this metadata to a MAP field only filters the returned MAP after reading. To push down selected keys from a shared-shredding MAP and return them as STRUCT children, build the field with <code><a class="el" href="classpaimon_1_1_map_shared_shredding_access_builder.html" title="Builds a selected-key projection field for a top-level shared-shredding MAP column.">MapSharedShreddingAccessBuilder</a></code>. To read selected paths from a VARIANT field, build the field with <code><a class="el" href="classpaimon_1_1_variant_access_builder.html" title="Builds a variant-access projection field: a struct field that replaces a VARIANT column in the read s...">VariantAccessBuilder</a></code>.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">auto</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">map_field</a> = arrow::field(<span class="stringliteral">&quot;m&quot;</span>, arrow::map(arrow::utf8(), arrow::int32()));</div>
<div class="line"><span class="keyword">auto</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">map_meta</a> = arrow::KeyValueMetadata::Make(</div>
<div class="line"> {<span class="stringliteral">&quot;paimon.map.selected-keys&quot;</span>}, {<span class="stringliteral">&quot;k1,k2&quot;</span>});</div>
<div class="line"><span class="keyword">auto</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">projected_schema</a> = arrow::schema({</div>
<div class="line"> arrow::field(<span class="stringliteral">&quot;id&quot;</span>, arrow::int64()),</div>
<div class="line"> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">map_field</a>-&gt;WithMetadata(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">map_meta</a>),</div>
<div class="line">});</div>
<div class="line"> </div>
<div class="line"><span class="keyword">auto</span> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">c_schema</a> = std::make_unique&lt;ArrowSchema&gt;();</div>
<div class="line">arrow::ExportSchema(*<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">projected_schema</a>, <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">c_schema</a>.get());</div>
<div class="line"> </div>
<div class="line"><a class="code hl_function" href="classpaimon_1_1_read_context_builder.html#a4e36cce9a1da99af61afb2283804128f">ReadContextBuilder</a> <a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">builder</a>(<span class="stringliteral">&quot;/path/to/table&quot;</span>);</div>
<div class="line"><a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">builder</a>.SetReadSchema(std::move(<a class="code hl_define" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">c_schema</a>));</div>
<div class="ttc" id="aclasspaimon_1_1_read_context_builder_html_a4e36cce9a1da99af61afb2283804128f"><div class="ttname"><a href="classpaimon_1_1_read_context_builder.html#a4e36cce9a1da99af61afb2283804128f">paimon::ReadContextBuilder::ReadContextBuilder</a></div><div class="ttdeci">ReadContextBuilder(const std::string &amp;path)</div><div class="ttdoc">Constructs a ReadContextBuilder with required parameters.</div></div>
<div class="ttc" id="amemory__pool_8h_html_a147ba4ba34a215b3a4f3a95c1ee11704"><div class="ttname"><a href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">PAIMON_UNIQUE_PTR</a></div><div class="ttdeci">#define PAIMON_UNIQUE_PTR</div><div class="ttdef"><b>Definition</b> memory_pool.h:220</div></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">read_schema</td><td>Arrow C <a class="el" href="classpaimon_1_1_schema.html" title="This interface provides access to TableSchema-related information.">Schema</a>. Ownership of schema resources is transferred to the built <a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Priority: read_schema &gt; read_field_ids &gt; read_field_names. When set, read_field_ids and read_field_names are ignored. </dd></dl>
</div>
</div>
<a id="a19370226e886d90bfb4b2146e769cff6" name="a19370226e886d90bfb4b2146e769cff6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19370226e886d90bfb4b2146e769cff6">&#9670;&#160;</a></span>SetOptions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetOptions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::map&lt; std::string, std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>options</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a configuration options map to set some option entries which are not defined in the table schema or whose values you want to overwrite. </p>
<dl class="section note"><dt>Note</dt><dd>The options map will clear the options added by <code><a class="el" href="classpaimon_1_1_read_context_builder.html#a19a1a07f17d04342f0a3e31faedf4d04" title="Add a single configuration option which is not defined in the table schema or whose value you want to...">AddOption()</a></code> before. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">options</td><td>The configuration options map. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a19a1a07f17d04342f0a3e31faedf4d04" name="a19a1a07f17d04342f0a3e31faedf4d04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19a1a07f17d04342f0a3e31faedf4d04">&#9670;&#160;</a></span>AddOption()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::AddOption </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a single configuration option which is not defined in the table schema or whose value you want to overwrite. </p>
<p>If you want to add multiple options, call <code><a class="el" href="classpaimon_1_1_read_context_builder.html#a19a1a07f17d04342f0a3e31faedf4d04" title="Add a single configuration option which is not defined in the table schema or whose value you want to...">AddOption()</a></code> multiple times or use <code><a class="el" href="classpaimon_1_1_read_context_builder.html#a19370226e886d90bfb4b2146e769cff6" title="Set a configuration options map to set some option entries which are not defined in the table schema ...">SetOptions()</a></code> instead. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The option key. </td></tr>
<tr><td class="paramname">value</td><td>The option value. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a58b67acbb681a859634c7d017bfc2551" name="a58b67acbb681a859634c7d017bfc2551"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58b67acbb681a859634c7d017bfc2551">&#9670;&#160;</a></span>SetPredicate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetPredicate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_predicate.html">Predicate</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>predicate</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a predicate for filtering data during reading. </p>
<p>The predicate is used for both partition pruning and data filtering. It can significantly improve performance by reducing the amount of data that needs to be read and processed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">predicate</td><td>Shared pointer to the predicate for data filtering. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="af48c4f27fd8e263b51f13f9c2badf167" name="af48c4f27fd8e263b51f13f9c2badf167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af48c4f27fd8e263b51f13f9c2badf167">&#9670;&#160;</a></span>EnablePredicateFilter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::EnablePredicateFilter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a>&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether to perform precise filtering according to predicates for data read from format reader. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enabled</td><td>Whether to enable precise filtering (default: false) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a72ae2dddf806f6ac9b715e282e0dce8b" name="a72ae2dddf806f6ac9b715e282e0dce8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72ae2dddf806f6ac9b715e282e0dce8b">&#9670;&#160;</a></span>EnablePrefetch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::EnablePrefetch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a>&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable or disable prefetching of data batches from individual files. </p>
<p>When enabled, the reader will prefetch multiple batches in parallel to improve throughput by overlapping I/O with computation. This is particularly beneficial for high-latency storage systems.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enabled</td><td>Whether to enable prefetching (default: false) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a23f0bffb2be1e1a24cfd13e415b35eb4" name="a23f0bffb2be1e1a24cfd13e415b35eb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23f0bffb2be1e1a24cfd13e415b35eb4">&#9670;&#160;</a></span>EnableLateMaterializing()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::EnableLateMaterializing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a>&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable or disable late materialization (probe/payload two-phase reads). </p>
<p>When enabled, each parallel reader under the prefetch layer performs a probe read of predicate columns first and only materializes payload columns for matched rows. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enabled</td><td>Whether to enable late materialization (default: false) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Without a pushed-down predicate the late-materializing reader degrades to a plain passthrough. </dd></dl>
</div>
</div>
<a id="a77b7e99dd1d6d5cd255c80ffbf716807" name="a77b7e99dd1d6d5cd255c80ffbf716807"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77b7e99dd1d6d5cd255c80ffbf716807">&#9670;&#160;</a></span>SetReadAheadCacheEnabled()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetReadAheadCacheEnabled </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a>&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable or disable the read-ahead cache for read operations. </p>
<p>A read-ahead cache is used to prebuffer data ranges before they are needed, which can improve read performance by reducing redundant I/O operations. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enabled</td><td>Whether to enable the read-ahead cache (default: true) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a60637f1be393cdb39ab43cfff979d53f" name="a60637f1be393cdb39ab43cfff979d53f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60637f1be393cdb39ab43cfff979d53f">&#9670;&#160;</a></span>WithCacheConfig()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithCacheConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> <a class="el" href="classpaimon_1_1_cache_config.html">CacheConfig</a> &amp;&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the cache configuration for prefetch read operations. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The cache configuration to use. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a83ced5a0fc3709b3dce8cda137825340" name="a83ced5a0fc3709b3dce8cda137825340"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83ced5a0fc3709b3dce8cda137825340">&#9670;&#160;</a></span>SetPrefetchBatchCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetPrefetchBatchCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a>&#160;</td>
<td class="paramname"><em>batch_count</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the total number of batches to prefetch across all files. </p>
<p>This controls the memory usage and parallelism of the prefetching mechanism. Higher values can improve throughput but consume more memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">batch_count</td><td>Total number of batches to prefetch (default: 600) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="ac13b0e6cbeae7bea3c5f66b50331e57b" name="ac13b0e6cbeae7bea3c5f66b50331e57b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac13b0e6cbeae7bea3c5f66b50331e57b">&#9670;&#160;</a></span>SetPrefetchMaxParallelNum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetPrefetchMaxParallelNum </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a>&#160;</td>
<td class="paramname"><em>parallel_num</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the maximum number of parallel prefetch operations. </p>
<p>This limits the number of concurrent I/O operations to prevent overwhelming the storage system or consuming excessive system resources.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parallel_num</td><td>Maximum parallel prefetch operations (default: 3) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="aa1d3965c3097b420ebb61eb8871a1029" name="aa1d3965c3097b420ebb61eb8871a1029"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1d3965c3097b420ebb61eb8871a1029">&#9670;&#160;</a></span>EnableMultiThreadRowToBatch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::EnableMultiThreadRowToBatch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">bool</a>&#160;</td>
<td class="paramname"><em>enabled</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable or disable multi-threaded row-to-batch conversion in merge-on-read scenarios. </p>
<p>When enabled, multiple threads are used to convert row data to batch format during merge operations, which can improve performance for CPU-intensive merge operations.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">enabled</td><td>Whether to enable multi-threaded conversion (default: false) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="aa1babef236e8c932d8cfe3ebfb0d07c3" name="aa1babef236e8c932d8cfe3ebfb0d07c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1babef236e8c932d8cfe3ebfb0d07c3">&#9670;&#160;</a></span>SetRowToBatchThreadNumber()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetRowToBatchThreadNumber </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint32_t</a>&#160;</td>
<td class="paramname"><em>thread_number</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the number of threads for row-to-batch conversion in merge-on-read scenarios. </p>
<p>This controls the parallelism of row-to-batch conversion during merge operations. Higher values can improve performance but may affect result ordering.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">thread_number</td><td>Number of conversion threads (default: 1) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>If thread_number &gt; 1, Arrow batches from the reader may not be in primary key order. </dd></dl>
</div>
</div>
<a id="a23ca35125be67f60a8b74ea69bdeaa72" name="a23ca35125be67f60a8b74ea69bdeaa72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23ca35125be67f60a8b74ea69bdeaa72">&#9670;&#160;</a></span>WithMemoryPool()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithMemoryPool </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>memory_pool</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set custom memory pool for memory management. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">memory_pool</td><td>The memory pool to use. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>If not set, the default system memory pool will be used. </dd></dl>
</div>
</div>
<a id="a2a4a37fe0d1985877ea97b6f653a7ded" name="a2a4a37fe0d1985877ea97b6f653a7ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a4a37fe0d1985877ea97b6f653a7ded">&#9670;&#160;</a></span>WithExecutor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithExecutor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_executor.html">Executor</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>executor</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set custom executor for task execution. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">executor</td><td>The executor to use. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>If not set, the default system executor will be used. </dd></dl>
</div>
</div>
<a id="a081ba74623d7a6a85a15309b326b300e" name="a081ba74623d7a6a85a15309b326b300e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a081ba74623d7a6a85a15309b326b300e">&#9670;&#160;</a></span>WithRealtimeContext()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithRealtimeContext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_realtime_context.html">RealtimeContext</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>realtime_context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the shared context used to resolve process-local real-time split tickets. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">realtime_context</td><td>Context shared with the scan that created the real-time splits. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="a2207f97601909364651cf498d8a7ca7b" name="a2207f97601909364651cf498d8a7ca7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2207f97601909364651cf498d8a7ca7b">&#9670;&#160;</a></span>SetTableSchema()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::SetTableSchema </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;&#160;</td>
<td class="paramname"><em>table_schema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the table schema as a string to avoid schema loading I/O operations. </p>
<p>This optimization allows the reader to use a pre-loaded schema instead of reading it from the table metadata, which can improve performance especially in scenarios with many small read operations.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">table_schema</td><td>String representation of the table schema. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The user must ensure that the schema string is valid and matches the table. </dd>
<dd>
If not set, the schema will be loaded from the table path. </dd></dl>
</div>
</div>
<a id="ac9370c5ed4080773bdfd707f27d8a758" name="ac9370c5ed4080773bdfd707f27d8a758"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9370c5ed4080773bdfd707f27d8a758">&#9670;&#160;</a></span>WithBranch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithBranch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::string &amp;&#160;</td>
<td class="paramname"><em>branch</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the specific branch to read from in a versioned table. </p>
<p>Paimon supports branching for data versioning and time travel queries. This method allows reading from a specific branch instead of the main branch.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">branch</td><td>Name of the branch to read from. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Default branch is "main" if not specified. </dd></dl>
</div>
</div>
<a id="a251413e5eb4909c235f157bce73cf5b4" name="a251413e5eb4909c235f157bce73cf5b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a251413e5eb4909c235f157bce73cf5b4">&#9670;&#160;</a></span>WithFileSystemSchemeToIdentifierMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithFileSystemSchemeToIdentifierMap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::map&lt; std::string, std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>fs_scheme_to_identifier_map</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a mapping from URI schemes (e.g., "file", "oss") to registered file system identifiers. </p>
<p>This allows selecting different pre-registered file system implementations based on the URI scheme at runtime.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fs_scheme_to_identifier_map</td><td>Map from URI scheme (like "oss") to the corresponding file system identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd><ul>
<li>This method is intended for environments where multiple file systems are pre-registered.</li>
<li>The specified identifiers must correspond to file systems that have been registered at compile time or initialization.</li>
<li>Cannot be used together with <code><a class="el" href="classpaimon_1_1_read_context_builder.html#a6ff02f27a5346cd2f4fd7026bee9a47b" title="Sets a custom file system instance to be used for all file operations in this read context.">WithFileSystem()</a></code>.</li>
<li>If not set, use default file system (configured in <code><a class="el" href="structpaimon_1_1_options.html#a91cdf2a3a8110ea53a0d9197d38cfae3" title="&quot;file-system&quot; - Specify the file system.">Options::FILE_SYSTEM</a></code>). Example: builder.WithFileSystemSchemeToIdentifierMap({{"oss", "jindo"}, {"file", "local"}}); </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a6ff02f27a5346cd2f4fd7026bee9a47b" name="a6ff02f27a5346cd2f4fd7026bee9a47b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ff02f27a5346cd2f4fd7026bee9a47b">&#9670;&#160;</a></span>WithFileSystem()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithFileSystem </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_file_system.html">FileSystem</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>file_system</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a custom file system instance to be used for all file operations in this read context. </p>
<p>This bypasses the global file system registry and uses the provided implementation directly.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">file_system</td><td>The file system to use. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>If not set, use default file system (configured in <code><a class="el" href="structpaimon_1_1_options.html#a91cdf2a3a8110ea53a0d9197d38cfae3" title="&quot;file-system&quot; - Specify the file system.">Options::FILE_SYSTEM</a></code>) </dd></dl>
</div>
</div>
<a id="a9971fd9cd037d1eb34d476dd406176b7" name="a9971fd9cd037d1eb34d476dd406176b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9971fd9cd037d1eb34d476dd406176b7">&#9670;&#160;</a></span>WithCache()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_read_context_builder.html">ReadContextBuilder</a> &amp; paimon::ReadContextBuilder::WithCache </td>
<td>(</td>
<td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> std::shared_ptr&lt; <a class="el" href="classpaimon_1_1_cache.html">Cache</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>cache</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Inject a cache for read operations. </p>
<p>Passing nullptr disables cache. </p><dl class="section return"><dt>Returns</dt><dd>Reference to this builder for method chaining. </dd></dl>
</div>
</div>
<a id="ab2d9a3bf13203069492ddd73961555c1" name="ab2d9a3bf13203069492ddd73961555c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2d9a3bf13203069492ddd73961555c1">&#9670;&#160;</a></span>Finish()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classpaimon_1_1_result.html">Result</a>&lt; std::unique_ptr&lt; <a class="el" href="classpaimon_1_1_read_context.html">ReadContext</a> &gt; &gt; paimon::ReadContextBuilder::Finish </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Build and return a <code><a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a></code> instance with input validation. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classpaimon_1_1_result.html" title="A Result&lt;T&gt; object holds either a value of type T or a Status object explaining why such a value is n...">Result</a> containing the constructed <code><a class="el" href="classpaimon_1_1_read_context.html" title="ReadContext is some configuration for read operations.">ReadContext</a></code> or an error status. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="adf01c36be5deb1ef71dc097225dfb5d4" name="adf01c36be5deb1ef71dc097225dfb5d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf01c36be5deb1ef71dc097225dfb5d4">&#9670;&#160;</a></span>impl_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">Impl</a>&gt; paimon::ReadContextBuilder::impl_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/<a class="el" href="read__context_8h_source.html">read_context.h</a></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>