| <?xml version='1.0' encoding='UTF-8' standalone='no'?> |
| <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.8" xml:lang="en-US"> |
| <compounddef id="table__scan_8h" kind="file" language="C++"> |
| <compoundname>table_scan.h</compoundname> |
| <includes local="no">functional</includes> |
| <includes local="no">memory</includes> |
| <includes local="no">optional</includes> |
| <includes local="no">string</includes> |
| <includes local="no">unordered_map</includes> |
| <includes local="no">unordered_set</includes> |
| <includes local="no">vector</includes> |
| <includes refid="arrow__c__data_8h" local="yes">iceberg/arrow_c_data.h</includes> |
| <includes refid="result_8h" local="yes">iceberg/result.h</includes> |
| <includes refid="type__fwd_8h" local="yes">iceberg/type_fwd.h</includes> |
| <includes refid="error__collector_8h" local="yes">iceberg/util/error_collector.h</includes> |
| <includedby refid="manifest__group_8cc" local="yes">iceberg/manifest/manifest_group.cc</includedby> |
| <includedby refid="table_8cc" local="yes">iceberg/table.cc</includedby> |
| <includedby refid="table__scan_8cc" local="yes">iceberg/table_scan.cc</includedby> |
| <includedby refid="file__scan__task__test_8cc" local="yes">iceberg/test/file_scan_task_test.cc</includedby> |
| <includedby refid="manifest__group__test_8cc" local="yes">iceberg/test/manifest_group_test.cc</includedby> |
| <includedby refid="table__scan__test_8cc" local="yes">iceberg/test/table_scan_test.cc</includedby> |
| <incdepgraph> |
| <node id="9"> |
| <label>iceberg/arrow_c_data.h</label> |
| <link refid="arrow__c__data_8h"/> |
| <childnode refid="10" relation="include"> |
| </childnode> |
| </node> |
| <node id="14"> |
| <label>iceberg/iceberg_export.h</label> |
| <link refid="iceberg__export_8h_source"/> |
| </node> |
| <node id="11"> |
| <label>iceberg/result.h</label> |
| <link refid="result_8h_source"/> |
| <childnode refid="12" relation="include"> |
| </childnode> |
| <childnode refid="13" relation="include"> |
| </childnode> |
| <childnode refid="5" relation="include"> |
| </childnode> |
| <childnode refid="14" relation="include"> |
| </childnode> |
| </node> |
| <node id="1"> |
| <label>iceberg/table_scan.h</label> |
| <link refid="table__scan_8h"/> |
| <childnode refid="2" relation="include"> |
| </childnode> |
| <childnode refid="3" relation="include"> |
| </childnode> |
| <childnode refid="4" relation="include"> |
| </childnode> |
| <childnode refid="5" relation="include"> |
| </childnode> |
| <childnode refid="6" relation="include"> |
| </childnode> |
| <childnode refid="7" relation="include"> |
| </childnode> |
| <childnode refid="8" relation="include"> |
| </childnode> |
| <childnode refid="9" relation="include"> |
| </childnode> |
| <childnode refid="11" relation="include"> |
| </childnode> |
| <childnode refid="15" relation="include"> |
| </childnode> |
| <childnode refid="16" relation="include"> |
| </childnode> |
| </node> |
| <node id="15"> |
| <label>iceberg/type_fwd.h</label> |
| <link refid="type__fwd_8h"/> |
| </node> |
| <node id="16"> |
| <label>iceberg/util/error_collector.h</label> |
| <link refid="error__collector_8h"/> |
| <childnode refid="5" relation="include"> |
| </childnode> |
| <childnode refid="8" relation="include"> |
| </childnode> |
| <childnode refid="14" relation="include"> |
| </childnode> |
| <childnode refid="11" relation="include"> |
| </childnode> |
| </node> |
| <node id="10"> |
| <label>cstdint</label> |
| </node> |
| <node id="12"> |
| <label>expected</label> |
| </node> |
| <node id="13"> |
| <label>format</label> |
| </node> |
| <node id="2"> |
| <label>functional</label> |
| </node> |
| <node id="3"> |
| <label>memory</label> |
| </node> |
| <node id="4"> |
| <label>optional</label> |
| </node> |
| <node id="5"> |
| <label>string</label> |
| </node> |
| <node id="6"> |
| <label>unordered_map</label> |
| </node> |
| <node id="7"> |
| <label>unordered_set</label> |
| </node> |
| <node id="8"> |
| <label>vector</label> |
| </node> |
| </incdepgraph> |
| <innerclass refid="classiceberg_1_1ScanTask" prot="public">iceberg::ScanTask</innerclass> |
| <innerclass refid="classiceberg_1_1FileScanTask" prot="public">iceberg::FileScanTask</innerclass> |
| <innerclass refid="classiceberg_1_1ChangelogScanTask" prot="public">iceberg::ChangelogScanTask</innerclass> |
| <innerclass refid="structiceberg_1_1internal_1_1TableScanContext" prot="public">iceberg::internal::TableScanContext</innerclass> |
| <innerclass refid="classiceberg_1_1TableScanBuilder" prot="public">iceberg::TableScanBuilder</innerclass> |
| <innerclass refid="classiceberg_1_1TableScan" prot="public">iceberg::TableScan</innerclass> |
| <innerclass refid="classiceberg_1_1DataTableScan" prot="public">iceberg::DataTableScan</innerclass> |
| <innerclass refid="classiceberg_1_1IncrementalScan" prot="public">iceberg::IncrementalScan</innerclass> |
| <innerclass refid="classiceberg_1_1IncrementalAppendScan" prot="public">iceberg::IncrementalAppendScan</innerclass> |
| <innerclass refid="classiceberg_1_1IncrementalChangelogScan" prot="public">iceberg::IncrementalChangelogScan</innerclass> |
| <innernamespace refid="namespaceiceberg">iceberg</innernamespace> |
| <innernamespace refid="namespaceiceberg_1_1internal">iceberg::internal</innernamespace> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <programlisting> |
| <codeline lineno="1"><highlight class="comment">/*</highlight></codeline> |
| <codeline lineno="2"><highlight class="comment"><sp/>*<sp/>Licensed<sp/>to<sp/>the<sp/>Apache<sp/>Software<sp/>Foundation<sp/>(ASF)<sp/>under<sp/>one</highlight></codeline> |
| <codeline lineno="3"><highlight class="comment"><sp/>*<sp/>or<sp/>more<sp/>contributor<sp/>license<sp/>agreements.<sp/><sp/>See<sp/>the<sp/>NOTICE<sp/>file</highlight></codeline> |
| <codeline lineno="4"><highlight class="comment"><sp/>*<sp/>distributed<sp/>with<sp/>this<sp/>work<sp/>for<sp/>additional<sp/>information</highlight></codeline> |
| <codeline lineno="5"><highlight class="comment"><sp/>*<sp/>regarding<sp/>copyright<sp/>ownership.<sp/><sp/>The<sp/>ASF<sp/>licenses<sp/>this<sp/>file</highlight></codeline> |
| <codeline lineno="6"><highlight class="comment"><sp/>*<sp/>to<sp/>you<sp/>under<sp/>the<sp/>Apache<sp/>License,<sp/>Version<sp/>2.0<sp/>(the</highlight></codeline> |
| <codeline lineno="7"><highlight class="comment"><sp/>*<sp/>"License");<sp/>you<sp/>may<sp/>not<sp/>use<sp/>this<sp/>file<sp/>except<sp/>in<sp/>compliance</highlight></codeline> |
| <codeline lineno="8"><highlight class="comment"><sp/>*<sp/>with<sp/>the<sp/>License.<sp/><sp/>You<sp/>may<sp/>obtain<sp/>a<sp/>copy<sp/>of<sp/>the<sp/>License<sp/>at</highlight></codeline> |
| <codeline lineno="9"><highlight class="comment"><sp/>*</highlight></codeline> |
| <codeline lineno="10"><highlight class="comment"><sp/>*<sp/><sp/><sp/>http://www.apache.org/licenses/LICENSE-2.0</highlight></codeline> |
| <codeline lineno="11"><highlight class="comment"><sp/>*</highlight></codeline> |
| <codeline lineno="12"><highlight class="comment"><sp/>*<sp/>Unless<sp/>required<sp/>by<sp/>applicable<sp/>law<sp/>or<sp/>agreed<sp/>to<sp/>in<sp/>writing,</highlight></codeline> |
| <codeline lineno="13"><highlight class="comment"><sp/>*<sp/>software<sp/>distributed<sp/>under<sp/>the<sp/>License<sp/>is<sp/>distributed<sp/>on<sp/>an</highlight></codeline> |
| <codeline lineno="14"><highlight class="comment"><sp/>*<sp/>"AS<sp/>IS"<sp/>BASIS,<sp/>WITHOUT<sp/>WARRANTIES<sp/>OR<sp/>CONDITIONS<sp/>OF<sp/>ANY</highlight></codeline> |
| <codeline lineno="15"><highlight class="comment"><sp/>*<sp/>KIND,<sp/>either<sp/>express<sp/>or<sp/>implied.<sp/><sp/>See<sp/>the<sp/>License<sp/>for<sp/>the</highlight></codeline> |
| <codeline lineno="16"><highlight class="comment"><sp/>*<sp/>specific<sp/>language<sp/>governing<sp/>permissions<sp/>and<sp/>limitations</highlight></codeline> |
| <codeline lineno="17"><highlight class="comment"><sp/>*<sp/>under<sp/>the<sp/>License.</highlight></codeline> |
| <codeline lineno="18"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="19"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="21"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><functional></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><memory></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><optional></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><string></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><unordered_map></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><unordered_set></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><vector></highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="29"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="arrow__c__data_8h" kindref="compound">iceberg/arrow_c_data.h</ref>"</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"iceberg/result.h"</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="type__fwd_8h" kindref="compound">iceberg/type_fwd.h</ref>"</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="error__collector_8h" kindref="compound">iceberg/util/error_collector.h</ref>"</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="34"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="35"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">iceberg<sp/>{</highlight></codeline> |
| <codeline lineno="36"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="38" refid="classiceberg_1_1ScanTask" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1ScanTask" kindref="compound">ScanTask</ref><sp/>{</highlight></codeline> |
| <codeline lineno="39"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="40"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">enum<sp/>class</highlight><highlight class="normal"><sp/>Kind<sp/>:<sp/>uint8_t<sp/>{</highlight></codeline> |
| <codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/>kFileScanTask,</highlight></codeline> |
| <codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/>kChangelogScanTask,</highlight></codeline> |
| <codeline lineno="43"><highlight class="normal"><sp/><sp/>};</highlight></codeline> |
| <codeline lineno="44"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="46" refid="classiceberg_1_1ScanTask_1a3e223ab9964f78b6e99791567c82e1b6" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/>Kind<sp/><ref refid="classiceberg_1_1ScanTask_1a3e223ab9964f78b6e99791567c82e1b6" kindref="member">kind</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>=<sp/>0;</highlight></codeline> |
| <codeline lineno="47"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="49" refid="classiceberg_1_1ScanTask_1a196044bb4a1fc867fb9dbece6ae3f47c" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/>int64_t<sp/><ref refid="classiceberg_1_1ScanTask_1a196044bb4a1fc867fb9dbece6ae3f47c" kindref="member">size_bytes</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>=<sp/>0;</highlight></codeline> |
| <codeline lineno="50"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="52" refid="classiceberg_1_1ScanTask_1a014e83fb779a07601b71dd503871986b" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/>int32_t<sp/><ref refid="classiceberg_1_1ScanTask_1a014e83fb779a07601b71dd503871986b" kindref="member">files_count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>=<sp/>0;</highlight></codeline> |
| <codeline lineno="53"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="55" refid="classiceberg_1_1ScanTask_1a1065f2e9db3b7d9d42f861bfca839232" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/>int64_t<sp/><ref refid="classiceberg_1_1ScanTask_1a1065f2e9db3b7d9d42f861bfca839232" kindref="member">estimated_row_count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>=<sp/>0;</highlight></codeline> |
| <codeline lineno="56"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="57"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1ScanTask" kindref="compound">~ScanTask</ref>();</highlight></codeline> |
| <codeline lineno="58"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="59"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="61" refid="classiceberg_1_1FileScanTask" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1FileScanTask" kindref="compound">FileScanTask</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1ScanTask" kindref="compound">ScanTask</ref><sp/>{</highlight></codeline> |
| <codeline lineno="62"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="68"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">explicit</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1FileScanTask" kindref="compound">FileScanTask</ref>(std::shared_ptr<DataFile><sp/>data_file,</highlight></codeline> |
| <codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector<std::shared_ptr<DataFile>><sp/>delete_files<sp/>=<sp/>{},</highlight></codeline> |
| <codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<Expression><sp/>filter<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">);</highlight></codeline> |
| <codeline lineno="71"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="73" refid="classiceberg_1_1FileScanTask_1aa01703278a2d290967f5bfcb887a0c49" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<DataFile>&<sp/><ref refid="classiceberg_1_1FileScanTask_1aa01703278a2d290967f5bfcb887a0c49" kindref="member">data_file</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>data_file_;<sp/>}</highlight></codeline> |
| <codeline lineno="74"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="76" refid="classiceberg_1_1FileScanTask_1ac460cab44912a93e186703987d3bd6e7" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector<std::shared_ptr<DataFile>>&<sp/><ref refid="classiceberg_1_1FileScanTask_1ac460cab44912a93e186703987d3bd6e7" kindref="member">delete_files</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline> |
| <codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>delete_files_;</highlight></codeline> |
| <codeline lineno="78"><highlight class="normal"><sp/><sp/>}</highlight></codeline> |
| <codeline lineno="79"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="81" refid="classiceberg_1_1FileScanTask_1aa4a9be432f54a1dcf932cdbb3b1180e5" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<Expression>&<sp/><ref refid="classiceberg_1_1FileScanTask_1aa4a9be432f54a1dcf932cdbb3b1180e5" kindref="member">residual_filter</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>residual_filter_;<sp/>}</highlight></codeline> |
| <codeline lineno="82"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="83" refid="classiceberg_1_1FileScanTask_1a98a4912bc062e02fcdb26b71b9e79480" refkind="member"><highlight class="normal"><sp/><sp/>Kind<sp/><ref refid="classiceberg_1_1FileScanTask_1a98a4912bc062e02fcdb26b71b9e79480" kindref="member">kind</ref>()</highlight><highlight class="keyword"><sp/>const<sp/>override<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>Kind::kFileScanTask;<sp/>}</highlight></codeline> |
| <codeline lineno="84"><highlight class="normal"><sp/><sp/>int64_t<sp/>size_bytes()<sp/></highlight><highlight class="keyword">const<sp/>override</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="85"><highlight class="normal"><sp/><sp/>int32_t<sp/>files_count()<sp/></highlight><highlight class="keyword">const<sp/>override</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="86"><highlight class="normal"><sp/><sp/>int64_t<sp/>estimated_row_count()<sp/></highlight><highlight class="keyword">const<sp/>override</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="87"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="95"><highlight class="normal"><sp/><sp/>Result<ArrowArrayStream><sp/>ToArrow(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<FileIO>&<sp/>io,</highlight></codeline> |
| <codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<Schema><sp/>projected_schema)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="97"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="98"><highlight class="normal"><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="99"><highlight class="normal"><sp/><sp/>std::shared_ptr<DataFile><sp/>data_file_;</highlight></codeline> |
| <codeline lineno="100"><highlight class="normal"><sp/><sp/>std::vector<std::shared_ptr<DataFile>><sp/>delete_files_;</highlight></codeline> |
| <codeline lineno="101"><highlight class="normal"><sp/><sp/>std::shared_ptr<Expression><sp/>residual_filter_;</highlight></codeline> |
| <codeline lineno="102"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="103"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="105" refid="classiceberg_1_1ChangelogScanTask" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1ChangelogScanTask" kindref="compound">ChangelogScanTask</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1ScanTask" kindref="compound">ScanTask</ref><sp/>{</highlight></codeline> |
| <codeline lineno="106"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="107" refid="classiceberg_1_1ChangelogScanTask_1ace10d0cf9753b1b3dbb0289071c2d155" refkind="member"><highlight class="normal"><sp/><sp/>Kind<sp/><ref refid="classiceberg_1_1ChangelogScanTask_1ace10d0cf9753b1b3dbb0289071c2d155" kindref="member">kind</ref>()</highlight><highlight class="keyword"><sp/>const<sp/>override<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>Kind::kChangelogScanTask;<sp/>}</highlight></codeline> |
| <codeline lineno="108"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>TODO():<sp/>Return<sp/>actual<sp/>values<sp/>once<sp/>member<sp/>fields<sp/>are<sp/>implemented</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="109" refid="classiceberg_1_1ChangelogScanTask_1a0a3b4dd22854acb631e33271dd9a1250" refkind="member"><highlight class="normal"><sp/><sp/>int64_t<sp/><ref refid="classiceberg_1_1ChangelogScanTask_1a0a3b4dd22854acb631e33271dd9a1250" kindref="member">size_bytes</ref>()</highlight><highlight class="keyword"><sp/>const<sp/>override<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;<sp/>}</highlight></codeline> |
| <codeline lineno="110" refid="classiceberg_1_1ChangelogScanTask_1af173a61632f2b88e4da007a0859100f4" refkind="member"><highlight class="normal"><sp/><sp/>int32_t<sp/><ref refid="classiceberg_1_1ChangelogScanTask_1af173a61632f2b88e4da007a0859100f4" kindref="member">files_count</ref>()</highlight><highlight class="keyword"><sp/>const<sp/>override<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;<sp/>}</highlight></codeline> |
| <codeline lineno="111" refid="classiceberg_1_1ChangelogScanTask_1a84246b65ec7e10024d3bdf159aea243f" refkind="member"><highlight class="normal"><sp/><sp/>int64_t<sp/><ref refid="classiceberg_1_1ChangelogScanTask_1a84246b65ec7e10024d3bdf159aea243f" kindref="member">estimated_row_count</ref>()</highlight><highlight class="keyword"><sp/>const<sp/>override<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;<sp/>}</highlight></codeline> |
| <codeline lineno="112"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="113"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="114"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">internal<sp/>{</highlight></codeline> |
| <codeline lineno="115"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="116"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Internal<sp/>table<sp/>scan<sp/>context<sp/>used<sp/>by<sp/>different<sp/>scan<sp/>implementations.</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="117" refid="structiceberg_1_1internal_1_1TableScanContext" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">TableScanContext</ref><sp/>{</highlight></codeline> |
| <codeline lineno="118"><highlight class="normal"><sp/><sp/>std::optional<int64_t><sp/>snapshot_id;</highlight></codeline> |
| <codeline lineno="119"><highlight class="normal"><sp/><sp/>std::shared_ptr<Expression><sp/>filter;</highlight></codeline> |
| <codeline lineno="120"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>ignore_residuals{</highlight><highlight class="keyword">false</highlight><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="121"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>case_sensitive{</highlight><highlight class="keyword">true</highlight><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="122"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>return_column_stats{</highlight><highlight class="keyword">false</highlight><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="123"><highlight class="normal"><sp/><sp/>std::unordered_set<int32_t><sp/>columns_to_keep_stats;</highlight></codeline> |
| <codeline lineno="124"><highlight class="normal"><sp/><sp/>std::vector<std::string><sp/>selected_columns;</highlight></codeline> |
| <codeline lineno="125"><highlight class="normal"><sp/><sp/>std::shared_ptr<Schema><sp/>projected_schema;</highlight></codeline> |
| <codeline lineno="126"><highlight class="normal"><sp/><sp/>std::unordered_map<std::string,<sp/>std::string><sp/>options;</highlight></codeline> |
| <codeline lineno="127"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>from_snapshot_id_inclusive{</highlight><highlight class="keyword">false</highlight><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="128"><highlight class="normal"><sp/><sp/>std::optional<int64_t><sp/>from_snapshot_id;</highlight></codeline> |
| <codeline lineno="129"><highlight class="normal"><sp/><sp/>std::optional<int64_t><sp/>to_snapshot_id;</highlight></codeline> |
| <codeline lineno="130"><highlight class="normal"><sp/><sp/>std::string<sp/>branch{};</highlight></codeline> |
| <codeline lineno="131"><highlight class="normal"><sp/><sp/>std::optional<int64_t><sp/>min_rows_requested;</highlight></codeline> |
| <codeline lineno="132"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="133"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Validate<sp/>the<sp/>context<sp/>parameters<sp/>to<sp/>see<sp/>if<sp/>they<sp/>have<sp/>conflicts.</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="134"><highlight class="normal"><sp/><sp/>[[nodiscard]]<sp/>Status<sp/>Validate()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="135"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="136"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="137"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>internal</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="138"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="139"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Concept<sp/>to<sp/>check<sp/>if<sp/>a<sp/>type<sp/>is<sp/>an<sp/>incremental<sp/>scan</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="140"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T></highlight></codeline> |
| <codeline lineno="141" refid="concepticeberg_1_1IsIncrementalScan" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">concept<sp/></highlight><highlight class="normal"><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan</ref><sp/>=<sp/>std::is_base_of_v<IncrementalScan<FileScanTask>,<sp/>T><sp/>||</highlight></codeline> |
| <codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::is_base_of_v<IncrementalScan<ChangelogScanTask>,<sp/>T>;</highlight></codeline> |
| <codeline lineno="143"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="145"><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>ScanType<sp/>=<sp/>DataTableScan></highlight></codeline> |
| <codeline lineno="146" refid="classiceberg_1_1TableScanBuilder" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1ErrorCollector" kindref="compound">ErrorCollector</ref><sp/>{</highlight></codeline> |
| <codeline lineno="147"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="151"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>Result<std::unique_ptr<TableScanBuilder<ScanType>>><sp/>Make(</highlight></codeline> |
| <codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<FileIO><sp/>io);</highlight></codeline> |
| <codeline lineno="153"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="158"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>Option(std::string<sp/>key,<sp/>std::string<sp/>value);</highlight></codeline> |
| <codeline lineno="159"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="162"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>Project(std::shared_ptr<Schema><sp/>schema);</highlight></codeline> |
| <codeline lineno="163"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="167"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>CaseSensitive(</highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>case_sensitive);</highlight></codeline> |
| <codeline lineno="168"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="172"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>IncludeColumnStats();</highlight></codeline> |
| <codeline lineno="173"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="180"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>IncludeColumnStats(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector<std::string>&<sp/>requested_columns);</highlight></codeline> |
| <codeline lineno="181"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="188"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>Select(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector<std::string>&<sp/>column_names);</highlight></codeline> |
| <codeline lineno="189"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="192"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>Filter(std::shared_ptr<Expression><sp/>filter);</highlight></codeline> |
| <codeline lineno="193"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="195"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>IgnoreResiduals();</highlight></codeline> |
| <codeline lineno="196"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="204"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>MinRowsRequested(int64_t<sp/>num_rows);</highlight></codeline> |
| <codeline lineno="205"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="209"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>UseSnapshot(int64_t<sp/>snapshot_id);</highlight></codeline> |
| <codeline lineno="210"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="215"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>UseRef(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&<sp/>ref);</highlight></codeline> |
| <codeline lineno="216"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="222"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>AsOfTime(int64_t<sp/>timestamp_millis);</highlight></codeline> |
| <codeline lineno="223"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="234"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>FromSnapshot(int64_t<sp/>from_snapshot_id,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>inclusive<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">)</highlight></codeline> |
| <codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan<ScanType></ref>;</highlight></codeline> |
| <codeline lineno="236"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="247"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>FromSnapshot(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&<sp/>ref,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>inclusive<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">)</highlight></codeline> |
| <codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan<ScanType></ref>;</highlight></codeline> |
| <codeline lineno="249"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="258"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>ToSnapshot(int64_t<sp/>to_snapshot_id)</highlight></codeline> |
| <codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan<ScanType></ref>;</highlight></codeline> |
| <codeline lineno="260"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="269"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>ToSnapshot(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&<sp/>ref)</highlight></codeline> |
| <codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan<ScanType></ref>;</highlight></codeline> |
| <codeline lineno="271"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="276"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>&<sp/>UseBranch(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&<sp/>branch)</highlight></codeline> |
| <codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/><ref refid="concepticeberg_1_1IsIncrementalScan" kindref="compound">IsIncrementalScan<ScanType></ref>;</highlight></codeline> |
| <codeline lineno="278"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="281"><highlight class="normal"><sp/><sp/>Result<std::unique_ptr<ScanType>><sp/>Build();</highlight></codeline> |
| <codeline lineno="282"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="283"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="284"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScanBuilder" kindref="compound">TableScanBuilder</ref>(std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<FileIO><sp/>io);</highlight></codeline> |
| <codeline lineno="285"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="286"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Return<sp/>the<sp/>schema<sp/>bound<sp/>to<sp/>the<sp/>specified<sp/>snapshot.</highlight><highlight class="normal"></highlight></codeline> |
| <codeline lineno="287"><highlight class="normal"><sp/><sp/>Result<std::reference_wrapper<const<sp/>std::shared_ptr<Schema>>><sp/>ResolveSnapshotSchema();</highlight></codeline> |
| <codeline lineno="288"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="289"><highlight class="normal"><sp/><sp/>std::shared_ptr<TableMetadata><sp/>metadata_;</highlight></codeline> |
| <codeline lineno="290"><highlight class="normal"><sp/><sp/>std::shared_ptr<FileIO><sp/>io_;</highlight></codeline> |
| <codeline lineno="291"><highlight class="normal"><sp/><sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context_;</highlight></codeline> |
| <codeline lineno="292"><highlight class="normal"><sp/><sp/>std::shared_ptr<Schema><sp/>snapshot_schema_;</highlight></codeline> |
| <codeline lineno="293"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="294"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="296" refid="classiceberg_1_1TableScan" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1TableScan" kindref="compound">TableScan</ref><sp/>{</highlight></codeline> |
| <codeline lineno="297"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="298"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1TableScan" kindref="compound">~TableScan</ref>();</highlight></codeline> |
| <codeline lineno="299"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="301"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<TableMetadata>&<sp/>metadata()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="302"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="304"><highlight class="normal"><sp/><sp/>Result<std::shared_ptr<Snapshot>><sp/>snapshot()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="305"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="307"><highlight class="normal"><sp/><sp/>Result<std::shared_ptr<Schema>><sp/>schema()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="308"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="310"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref>&<sp/>context()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="311"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="313"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<FileIO>&<sp/>io()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="314"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="316"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<Expression>&<sp/>filter()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="317"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="319"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>is_case_sensitive()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="320"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="321"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="322"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1TableScan" kindref="compound">TableScan</ref>(std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<Schema><sp/>schema,</highlight></codeline> |
| <codeline lineno="323"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<FileIO><sp/>io,<sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context);</highlight></codeline> |
| <codeline lineno="324"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="325"><highlight class="normal"><sp/><sp/>Result<std::reference_wrapper<const<sp/>std::shared_ptr<Schema>>><sp/>ResolveProjectedSchema()</highlight></codeline> |
| <codeline lineno="326"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="327"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="328"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector<std::string>&<sp/>ScanColumns()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="329"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="330"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<TableMetadata><sp/>metadata_;</highlight></codeline> |
| <codeline lineno="331"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<Schema><sp/>schema_;</highlight></codeline> |
| <codeline lineno="332"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::shared_ptr<FileIO><sp/>io_;</highlight></codeline> |
| <codeline lineno="333"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context_;</highlight></codeline> |
| <codeline lineno="334"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">mutable</highlight><highlight class="normal"><sp/>std::shared_ptr<Schema><sp/>projected_schema_;</highlight></codeline> |
| <codeline lineno="335"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="336"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="338" refid="classiceberg_1_1DataTableScan" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1DataTableScan" kindref="compound">DataTableScan</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1TableScan" kindref="compound">TableScan</ref><sp/>{</highlight></codeline> |
| <codeline lineno="339"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="340"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1DataTableScan" kindref="compound">~DataTableScan</ref>()<sp/></highlight><highlight class="keyword">override</highlight><highlight class="normal"><sp/>=<sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="341"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="343"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>Result<std::unique_ptr<DataTableScan>><sp/>Make(</highlight></codeline> |
| <codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<Schema><sp/>schema,</highlight></codeline> |
| <codeline lineno="345"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<FileIO><sp/>io,<sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context);</highlight></codeline> |
| <codeline lineno="346"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="349"><highlight class="normal"><sp/><sp/>Result<std::vector<std::shared_ptr<FileScanTask>>><sp/>PlanFiles()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="350"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="351"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="352"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TableScan::TableScan;</highlight></codeline> |
| <codeline lineno="353"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="354"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="357"><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>ScanTaskType></highlight></codeline> |
| <codeline lineno="358" refid="classiceberg_1_1IncrementalScan" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1IncrementalScan" kindref="compound">IncrementalScan</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1TableScan" kindref="compound">TableScan</ref><sp/>{</highlight></codeline> |
| <codeline lineno="359"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="360"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1IncrementalScan" kindref="compound">~IncrementalScan</ref>()<sp/></highlight><highlight class="keyword">override</highlight><highlight class="normal"><sp/>=<sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="361"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="364" refid="classiceberg_1_1IncrementalScan_1ac00b462f2e751f4adacc0c21a9d77a37" refkind="member"><highlight class="normal"><sp/><sp/>Result<std::vector<std::shared_ptr<ScanTaskType>>><sp/><ref refid="classiceberg_1_1IncrementalScan_1ac00b462f2e751f4adacc0c21a9d77a37" kindref="member">PlanFiles</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline> |
| <codeline lineno="365"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>NotImplemented(</highlight><highlight class="stringliteral">"IncrementalScan::PlanFiles<sp/>is<sp/>not<sp/>implemented"</highlight><highlight class="normal">);</highlight></codeline> |
| <codeline lineno="366"><highlight class="normal"><sp/><sp/>}</highlight></codeline> |
| <codeline lineno="367"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="368"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="369"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/>Result<std::vector<std::shared_ptr<ScanTaskType>>><sp/>PlanFiles(</highlight></codeline> |
| <codeline lineno="370"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::optional<int64_t><sp/>from_snapshot_id_exclusive,</highlight></codeline> |
| <codeline lineno="371"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>int64_t<sp/>to_snapshot_id_inclusive)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>=<sp/>0;</highlight></codeline> |
| <codeline lineno="372"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="373"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TableScan::TableScan;</highlight></codeline> |
| <codeline lineno="374"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="375"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="377" refid="classiceberg_1_1IncrementalAppendScan" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1IncrementalAppendScan" kindref="compound">IncrementalAppendScan</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1IncrementalScan" kindref="compound">IncrementalScan</ref><FileScanTask><sp/>{</highlight></codeline> |
| <codeline lineno="378"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="380"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>Result<std::unique_ptr<IncrementalAppendScan>><sp/>Make(</highlight></codeline> |
| <codeline lineno="381"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<Schema><sp/>schema,</highlight></codeline> |
| <codeline lineno="382"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<FileIO><sp/>io,<sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context);</highlight></codeline> |
| <codeline lineno="383"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="384"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1IncrementalAppendScan" kindref="compound">~IncrementalAppendScan</ref>()<sp/></highlight><highlight class="keyword">override</highlight><highlight class="normal"><sp/>=<sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="385"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="386"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="387"><highlight class="normal"><sp/><sp/>Result<std::vector<std::shared_ptr<FileScanTask>>><sp/>PlanFiles(</highlight></codeline> |
| <codeline lineno="388"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::optional<int64_t><sp/>from_snapshot_id_exclusive,</highlight></codeline> |
| <codeline lineno="389"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>int64_t<sp/>to_snapshot_id_inclusive)<sp/></highlight><highlight class="keyword">const<sp/>override</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="390"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="391"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">IncrementalScan::IncrementalScan;</highlight></codeline> |
| <codeline lineno="392"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="393"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="395" refid="classiceberg_1_1IncrementalChangelogScan" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1IncrementalChangelogScan" kindref="compound">IncrementalChangelogScan</ref></highlight></codeline> |
| <codeline lineno="396"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1IncrementalScan" kindref="compound">IncrementalScan</ref><ChangelogScanTask><sp/>{</highlight></codeline> |
| <codeline lineno="397"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="399"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>Result<std::unique_ptr<IncrementalChangelogScan>><sp/>Make(</highlight></codeline> |
| <codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<TableMetadata><sp/>metadata,<sp/>std::shared_ptr<Schema><sp/>schema,</highlight></codeline> |
| <codeline lineno="401"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::shared_ptr<FileIO><sp/>io,<sp/><ref refid="structiceberg_1_1internal_1_1TableScanContext" kindref="compound">internal::TableScanContext</ref><sp/>context);</highlight></codeline> |
| <codeline lineno="402"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="403"><highlight class="normal"><sp/><sp/><ref refid="classiceberg_1_1IncrementalChangelogScan" kindref="compound">~IncrementalChangelogScan</ref>()<sp/></highlight><highlight class="keyword">override</highlight><highlight class="normal"><sp/>=<sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="404"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="405"><highlight class="normal"><sp/></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline> |
| <codeline lineno="406"><highlight class="normal"><sp/><sp/>Result<std::vector<std::shared_ptr<ChangelogScanTask>>><sp/>PlanFiles(</highlight></codeline> |
| <codeline lineno="407"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::optional<int64_t><sp/>from_snapshot_id_exclusive,</highlight></codeline> |
| <codeline lineno="408"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>int64_t<sp/>to_snapshot_id_inclusive)<sp/></highlight><highlight class="keyword">const<sp/>override</highlight><highlight class="normal">;</highlight></codeline> |
| <codeline lineno="409"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="410"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">IncrementalScan::IncrementalScan;</highlight></codeline> |
| <codeline lineno="411"><highlight class="normal">};</highlight></codeline> |
| <codeline lineno="412"><highlight class="normal"></highlight></codeline> |
| <codeline lineno="413"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>iceberg</highlight><highlight class="normal"></highlight></codeline> |
| </programlisting> |
| <location file="iceberg/table_scan.h"/> |
| </compounddef> |
| </doxygen> |