@@ -453,34 +453,32 @@ Result<std::shared_ptr<DataFile>> DeleteFileIndex::FindDV(
453453}
454454
455455Result<DeleteFileIndex::Builder> DeleteFileIndex::BuilderFor (
456- std::shared_ptr<FileIO> io, std::vector<ManifestFile> delete_manifests) {
456+ std::shared_ptr<FileIO> io, std::shared_ptr<Schema> schema,
457+ std::unordered_map<int32_t , std::shared_ptr<PartitionSpec>> specs_by_id,
458+ std::vector<ManifestFile> delete_manifests) {
457459 ICEBERG_PRECHECK (io != nullptr , " FileIO cannot be null" );
458- return Builder (std::move (io), std::move (delete_manifests));
460+ ICEBERG_PRECHECK (schema != nullptr , " Schema cannot be null" );
461+ ICEBERG_PRECHECK (!specs_by_id.empty (), " Partition specs cannot be empty" );
462+ return Builder (std::move (io), std::move (schema), std::move (specs_by_id),
463+ std::move (delete_manifests));
459464}
460465
461466// Builder implementation
462467
463- DeleteFileIndex::Builder::Builder (std::shared_ptr<FileIO> io,
464- std::vector<ManifestFile> delete_manifests)
465- : io_(std::move(io)), delete_manifests_(std::move(delete_manifests)) {}
468+ DeleteFileIndex::Builder::Builder (
469+ std::shared_ptr<FileIO> io, std::shared_ptr<Schema> schema,
470+ std::unordered_map<int32_t , std::shared_ptr<PartitionSpec>> specs_by_id,
471+ std::vector<ManifestFile> delete_manifests)
472+ : io_(std::move(io)),
473+ schema_(std::move(schema)),
474+ specs_by_id_(std::move(specs_by_id)),
475+ delete_manifests_(std::move(delete_manifests)) {}
466476
467477DeleteFileIndex::Builder::~Builder () = default ;
468478DeleteFileIndex::Builder::Builder (Builder&&) noexcept = default;
469479DeleteFileIndex::Builder& DeleteFileIndex::Builder::operator =(Builder&&) noexcept =
470480 default ;
471481
472- DeleteFileIndex::Builder& DeleteFileIndex::Builder::SpecsById (
473- std::unordered_map<int32_t , std::shared_ptr<PartitionSpec>> specs_by_id) {
474- specs_by_id_ = std::move (specs_by_id);
475- return *this ;
476- }
477-
478- DeleteFileIndex::Builder& DeleteFileIndex::Builder::WithSchema (
479- std::shared_ptr<Schema> schema) {
480- schema_ = std::move (schema);
481- return *this ;
482- }
483-
484482DeleteFileIndex::Builder& DeleteFileIndex::Builder::AfterSequenceNumber (int64_t seq) {
485483 min_sequence_number_ = seq;
486484 return *this ;
@@ -721,10 +719,6 @@ Status DeleteFileIndex::Builder::AddEqualityDelete(
721719
722720Result<std::unique_ptr<DeleteFileIndex>> DeleteFileIndex::Builder::Build () {
723721 ICEBERG_RETURN_UNEXPECTED (CheckErrors ());
724- ICEBERG_PRECHECK (io_ != nullptr , " FileIO is required to load delete files" );
725- ICEBERG_PRECHECK (schema_ != nullptr , " Schema is required to load delete files" );
726- ICEBERG_PRECHECK (!specs_by_id_.empty (),
727- " Partition specs are required to load delete files" );
728722
729723 std::vector<ManifestEntry> entries;
730724 if (!delete_manifests_.empty ()) {
0 commit comments