36#include "iceberg/util/partition_value_util.h"
59 std::shared_ptr<FileIO> file_io, std::shared_ptr<Schema> schema,
60 std::shared_ptr<PartitionSpec> spec,
61 std::unique_ptr<InheritableMetadata> inheritable_metadata,
62 std::optional<int64_t> first_row_id,
bool is_committed);
64 Result<std::vector<ManifestEntry>>
Entries()
override;
66 Result<std::vector<ManifestEntry>>
LiveEntries()
override;
82 Result<std::vector<ManifestEntry>> ReadEntries(
bool only_live);
85 Status OpenReader(std::shared_ptr<Schema> projection);
88 bool HasPartitionFilter()
const;
91 bool HasRowFilter()
const;
94 Result<Evaluator*> GetEvaluator();
97 Result<InclusiveMetricsEvaluator*> GetMetricsEvaluator();
100 Result<bool> InPartitionSet(
const DataFile& file)
const;
103 const std::string manifest_path_;
104 const std::optional<int64_t> manifest_length_;
105 const std::shared_ptr<FileIO> file_io_;
106 const std::shared_ptr<Schema> schema_;
107 const std::shared_ptr<PartitionSpec> spec_;
108 const std::unique_ptr<InheritableMetadata> inheritable_metadata_;
109 std::optional<int64_t> first_row_id_;
113 std::vector<std::string> columns_;
116 std::shared_ptr<PartitionSet> partition_set_;
117 bool case_sensitive_{
true};
118 bool drop_stats_{
false};
121 std::unique_ptr<Reader> file_reader_;
122 std::shared_ptr<Schema> file_schema_;
123 std::unique_ptr<Evaluator> evaluator_;
124 std::unique_ptr<InclusiveMetricsEvaluator> metrics_evaluator_;
131 std::shared_ptr<Schema> schema)
132 : schema_(std::move(schema)), reader_(std::move(reader)) {}
134 Result<std::vector<ManifestFile>>
Files()
const override;
136 Result<std::unordered_map<std::string, std::string>>
Metadata()
const override;
139 std::shared_ptr<Schema> schema_;
140 std::unique_ptr<Reader> reader_;
143enum class ManifestFileField : int32_t {
146 kPartitionSpecId = 2,
149 kMinSequenceNumber = 5,
150 kAddedSnapshotId = 6,
151 kAddedFilesCount = 7,
152 kExistingFilesCount = 8,
153 kDeletedFilesCount = 9,
154 kAddedRowsCount = 10,
155 kExistingRowsCount = 11,
156 kDeletedRowsCount = 12,
157 kPartitionFieldSummary = 13,
165Result<ManifestFileField> ManifestFileFieldFromIndex(int32_t index);
Read manifest files from a manifest list file.
Definition manifest_reader_internal.h:128
Result< std::vector< ManifestFile > > Files() const override
Read all manifest files in the manifest list file.
Definition manifest_reader.cc:958
Result< std::unordered_map< std::string, std::string > > Metadata() const override
Get the metadata of the manifest list file.
Definition manifest_reader.cc:978
Read manifest files from a manifest list file.
Definition manifest_reader.h:134
Read manifest entries from a manifest file.
Definition manifest_reader_internal.h:45
ManifestReader & Select(const std::vector< std::string > &columns) override
Select specific columns of data file to read from the manifest entries.
Definition manifest_reader.cc:744
ManifestReader & FilterPartitions(std::shared_ptr< Expression > expr) override
Filter manifest entries by partition filter.
Definition manifest_reader.cc:749
ManifestReader & CaseSensitive(bool case_sensitive) override
Set case sensitivity for column name matching.
Definition manifest_reader.cc:765
Result< std::vector< ManifestEntry > > LiveEntries() override
Read only live (non-deleted) manifest entries.
Definition manifest_reader.cc:861
ManifestReader & FilterRows(std::shared_ptr< Expression > expr) override
Filter manifest entries by row-level filter.
Definition manifest_reader.cc:760
Result< std::vector< ManifestEntry > > Entries() override
Read all manifest entries in the manifest file.
Definition manifest_reader.cc:857
ManifestReader & TryDropStats() override
Try to drop stats from returned DataFile objects.
Definition manifest_reader.cc:770
Read manifest entries from a manifest file.
Definition manifest_reader.h:39
static const std::shared_ptr< True > & Instance()
Returns the singleton instance.
Definition expression.cc:32
DataFile carries data file path, partition tuple, metrics, ...
Definition manifest_entry.h:62