36#include "iceberg/util/partition_value_util.h"
58 std::shared_ptr<FileIO> file_io, std::shared_ptr<Schema> schema,
59 std::shared_ptr<PartitionSpec> spec,
60 std::unique_ptr<InheritableMetadata> inheritable_metadata,
61 std::optional<int64_t> first_row_id);
63 Result<std::vector<ManifestEntry>>
Entries()
override;
65 Result<std::vector<ManifestEntry>>
LiveEntries()
override;
81 Result<std::vector<ManifestEntry>> ReadEntries(
bool only_live);
84 Status OpenReader(std::shared_ptr<Schema> projection);
87 bool HasPartitionFilter()
const;
90 bool HasRowFilter()
const;
93 Result<Evaluator*> GetEvaluator();
96 Result<InclusiveMetricsEvaluator*> GetMetricsEvaluator();
99 Result<bool> InPartitionSet(
const DataFile& file)
const;
102 const std::string manifest_path_;
103 const std::optional<int64_t> manifest_length_;
104 const std::shared_ptr<FileIO> file_io_;
105 const std::shared_ptr<Schema> schema_;
106 const std::shared_ptr<PartitionSpec> spec_;
107 const std::unique_ptr<InheritableMetadata> inheritable_metadata_;
108 std::optional<int64_t> first_row_id_;
111 std::vector<std::string> columns_;
114 std::shared_ptr<PartitionSet> partition_set_;
115 bool case_sensitive_{
true};
116 bool drop_stats_{
false};
119 std::unique_ptr<Reader> file_reader_;
120 std::shared_ptr<Schema> file_schema_;
121 std::unique_ptr<Evaluator> evaluator_;
122 std::unique_ptr<InclusiveMetricsEvaluator> metrics_evaluator_;
129 std::shared_ptr<Schema> schema)
130 : schema_(std::move(schema)), reader_(std::move(reader)) {}
132 Result<std::vector<ManifestFile>>
Files()
const override;
134 Result<std::unordered_map<std::string, std::string>>
Metadata()
const override;
137 std::shared_ptr<Schema> schema_;
138 std::unique_ptr<Reader> reader_;
141enum class ManifestFileField : int32_t {
144 kPartitionSpecId = 2,
147 kMinSequenceNumber = 5,
148 kAddedSnapshotId = 6,
149 kAddedFilesCount = 7,
150 kExistingFilesCount = 8,
151 kDeletedFilesCount = 9,
152 kAddedRowsCount = 10,
153 kExistingRowsCount = 11,
154 kDeletedRowsCount = 12,
155 kPartitionFieldSummary = 13,
163Result<ManifestFileField> ManifestFileFieldFromIndex(int32_t index);
Read manifest files from a manifest list file.
Definition manifest_reader_internal.h:126
Result< std::vector< ManifestFile > > Files() const override
Read all manifest files in the manifest list file.
Definition manifest_reader.cc:952
Result< std::unordered_map< std::string, std::string > > Metadata() const override
Get the metadata of the manifest list file.
Definition manifest_reader.cc:972
Read manifest files from a manifest list file.
Definition manifest_reader.h:117
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:738
ManifestReader & FilterPartitions(std::shared_ptr< Expression > expr) override
Filter manifest entries by partition filter.
Definition manifest_reader.cc:743
ManifestReader & CaseSensitive(bool case_sensitive) override
Set case sensitivity for column name matching.
Definition manifest_reader.cc:759
Result< std::vector< ManifestEntry > > LiveEntries() override
Read only live (non-deleted) manifest entries.
Definition manifest_reader.cc:855
ManifestReader & FilterRows(std::shared_ptr< Expression > expr) override
Filter manifest entries by row-level filter.
Definition manifest_reader.cc:754
Result< std::vector< ManifestEntry > > Entries() override
Read all manifest entries in the manifest file.
Definition manifest_reader.cc:851
ManifestReader & TryDropStats() override
Try to drop stats from returned DataFile objects.
Definition manifest_reader.cc:764
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