28#include <unordered_map>
29#include <unordered_set>
47 std::shared_ptr<PartitionSpec> spec;
51 std::unordered_set<int32_t> columns_to_keep_stats;
64 std::shared_ptr<FileIO> io, std::shared_ptr<Schema> schema,
65 std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>> specs_by_id_,
66 std::vector<ManifestFile> manifests);
76 std::shared_ptr<FileIO> io, std::shared_ptr<Schema> schema,
77 std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>> specs_by_id,
78 std::vector<ManifestFile> data_manifests,
79 std::vector<ManifestFile> delete_manifests);
169 using CreateTasksFunction =
178 const CreateTasksFunction& create_tasks);
181 class PlanningContext;
182 class FilePlanningStream;
184 struct StatsProjection {
185 std::vector<std::string> columns;
189 ManifestGroup(std::shared_ptr<FileIO> io, std::shared_ptr<Schema> schema,
190 std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>> specs_by_id,
191 std::vector<ManifestFile> data_manifests,
192 DeleteFileIndex::Builder&& delete_index_builder);
195 PlanningContext& context);
198 const ManifestFile& manifest,
const std::vector<std::string>& columns);
200 StatsProjection PrepareStatsProjection(
bool has_equality_deletes)
const;
202 std::shared_ptr<FileIO> io_;
203 std::shared_ptr<Schema> schema_;
204 std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>> specs_by_id_;
205 std::vector<ManifestFile> data_manifests_;
206 DeleteFileIndex::Builder delete_index_builder_;
207 std::shared_ptr<Expression> data_filter_;
208 std::shared_ptr<Expression> file_filter_;
209 std::shared_ptr<Expression> partition_filter_;
210 std::function<bool(
const ManifestEntry&)> manifest_entry_predicate_;
211 std::vector<std::string> columns_;
212 std::unordered_set<int32_t> columns_to_keep_stats_;
213 OptionalExecutor executor_;
214 bool case_sensitive_ =
true;
215 bool ignore_deleted_ =
false;
216 bool ignore_existing_ =
false;
217 bool ignore_residuals_ =
false;
218 std::shared_ptr<ScanMetrics> scan_metrics_;
An index of delete files by sequence number.
Definition delete_file_index.h:229
Base class for collecting errors in the builder pattern.
Definition error_collector.h:99
Represents a boolean expression tree.
Definition expression.h:37
Task representing a data file and its corresponding delete files.
Definition table_scan.h:68
Coordinates reading manifest files and producing scan tasks.
Definition manifest_group.h:55
static Result< std::unique_ptr< ManifestGroup > > Make(std::shared_ptr< FileIO > io, std::shared_ptr< Schema > schema, std::unordered_map< int32_t, std::shared_ptr< PartitionSpec > > specs_by_id_, std::vector< ManifestFile > manifests)
Construct a ManifestGroup with a list of manifests.
static Result< std::unique_ptr< ManifestGroup > > Make(std::shared_ptr< FileIO > io, std::shared_ptr< Schema > schema, std::unordered_map< int32_t, std::shared_ptr< PartitionSpec > > specs_by_id, std::vector< ManifestFile > data_manifests, std::vector< ManifestFile > delete_manifests)
Construct a ManifestGroup with pre-separated manifests.
Finds the residuals for an Expression using the partitions in the given PartitionSpec.
Definition residual_evaluator.h:47
Live scan metrics collected during a table scan operation.
Definition scan_report.h:94
An abstract scan task.
Definition table_scan.h:45
Definition expected.h:1199
Define task executor interfaces.
Define symbol visibility macros for core Iceberg APIs.
Core Apache Iceberg C++ APIs.
Definition arrow_io_util.h:34
std::unique_ptr< FileScanTaskStream > FileScanTaskStreamPtr
Owning pointer to a file scan task stream.
Definition table_scan.h:142
Define Result, Status, and error helpers.
A manifest is an immutable Avro file that lists data files or delete files, along with each file's pa...
Definition manifest_entry.h:319
Entry in a manifest list.
Definition manifest_list.h:86
Context passed to task creation functions.
Definition manifest_group.h:45
Define table scan APIs and scan task types.