58 using PartitionSpecsById = std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>>;
62 std::function<Status(
const std::string&)> delete_file = {});
111 const std::vector<ManifestFile>& manifests,
112 const PartitionSpecsById& specs_by_id)
const;
170 const TableMetadata& metadata,
const std::shared_ptr<Snapshot>& base_snapshot,
178 const std::shared_ptr<Schema>& schema,
const TableMetadata& metadata,
179 const std::shared_ptr<Snapshot>& base_snapshot,
193 const std::shared_ptr<Schema>& schema,
const PartitionSpecsById& specs_by_id,
194 const std::vector<const ManifestFile*>& manifests,
203 std::function<Status(
const std::string&)> delete_file);
207 const std::shared_ptr<Schema>& schema,
208 const PartitionSpecsById& specs_by_id);
222 const std::shared_ptr<Schema>& schema,
223 const PartitionSpecsById& specs_by_id,
224 bool trust_manifest_references);
226 bool CanTrustManifestReferences(
227 const std::vector<const ManifestFile*>& manifests)
const;
229 struct FilteredManifestDeletes {
230 std::vector<std::shared_ptr<DataFile>> files;
231 int32_t duplicate_deletes_count = 0;
235 const PartitionSpecsById& specs_by_id,
237 bool trust_manifest_references,
240 Result<bool> ManifestHasDeletedFiles(
const std::vector<ManifestEntry>& entries,
241 const std::shared_ptr<Schema>& schema,
242 const PartitionSpecsById& specs_by_id,
243 int32_t manifest_spec_id);
246 const std::vector<ManifestEntry>& entries, int32_t manifest_spec_id,
247 const std::shared_ptr<Schema>& schema,
const PartitionSpecsById& specs_by_id,
250 Status ValidateRequiredDeletes()
const;
252 Status InvalidateFilteredCache();
253 void ResetDeletedFiles();
257 const PartitionSpecsById& specs_by_id,
262 const PartitionSpecsById& specs_by_id,
267 const std::shared_ptr<Schema>& schema,
268 const PartitionSpecsById& specs_by_id,
269 int32_t manifest_spec_id);
272 std::shared_ptr<FileIO> file_io_;
273 std::function<Status(
const std::string&)> delete_file_;
275 std::shared_ptr<Expression> delete_expr_;
276 std::unordered_set<std::string> delete_paths_;
285 std::unordered_map<ManifestFile, FilteredManifestDeletes>
286 filtered_manifest_to_deleted_files_;
288 std::vector<std::shared_ptr<DataFile>> deleted_files_;
294 bool fail_missing_delete_paths_{
false};
295 bool fail_any_delete_{
false};
296 bool case_sensitive_{
true};
297 int32_t duplicate_deletes_count_{0};
298 int32_t replaced_manifests_count_{0};
301 int64_t min_sequence_number_{0};
303 std::unordered_set<std::string> removed_data_file_paths_;
305 std::unordered_map<ManifestFile, ManifestFile> filtered_manifests_;
307 std::unordered_map<int32_t, std::unique_ptr<ManifestEvaluator>>
308 manifest_evaluator_cache_;
309 std::unordered_map<int32_t, std::unique_ptr<ResidualEvaluator>>
310 residual_evaluator_cache_;
A manifest is an immutable Avro file that lists data files or delete files, along with each file's pa...
Definition manifest_entry.h:318