diff --git a/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.cpp b/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.cpp index af38b06ed41aa..faf3b30e2a176 100644 --- a/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.cpp +++ b/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.cpp @@ -215,6 +215,7 @@ AlterDropPartitionExecutor::AlterDropPartitionExecutor( const IcebergMetadata & metadata_, ContextPtr context_, ObjectStoragePtr object_storage_, + ExternalStorageCache & external_storages_, const PersistentTableComponents & components_, const DataLakeStorageSettings & data_lake_settings_, String write_format_, @@ -223,6 +224,7 @@ AlterDropPartitionExecutor::AlterDropPartitionExecutor( , metadata(metadata_) , context(context_) , object_storage(std::move(object_storage_)) + , external_storages(external_storages_) , components(components_) , data_lake_settings(data_lake_settings_) , write_format(std::move(write_format_)) @@ -365,7 +367,8 @@ AlterDropPartitionExecutor::discoverTargetFilePaths(const SnapshotState & state, for (const auto & manifest_key : state.snapshot->manifest_list_entries) { - auto handle = getManifestFileEntriesHandle(object_storage, components, context, log, manifest_key, state.schema_id); + auto handle = getManifestFileEntriesHandle( + object_storage, components, context, log, manifest_key, state.schema_id, external_storages); collect(handle.getFilesWithoutDeleted(FileContentType::DATA)); collect(handle.getFilesWithoutDeleted(FileContentType::POSITION_DELETE)); @@ -460,7 +463,8 @@ AlterDropPartitionExecutor::buildDropPlan(const SnapshotState & state, const Tar for (const auto & manifest_key : state.snapshot->manifest_list_entries) { - auto handle = getManifestFileEntriesHandle(object_storage, components, context, log, manifest_key, state.schema_id); + auto handle = getManifestFileEntriesHandle( + object_storage, components, context, log, manifest_key, state.schema_id, external_storages); size_t entries_to_keep = 0; size_t entries_to_remove = 0; @@ -575,6 +579,7 @@ AlterDropPartitionExecutor::ManifestListWriteResult AlterDropPartitionExecutor:: components.path_resolver, state.metadata_object, object_storage, + external_storages, context, /*manifest_entry_names=*/{}, new_snapshot, diff --git a/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.h b/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.h index de47a35ab9ec4..a462b94962a57 100644 --- a/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.h +++ b/src/Storages/ObjectStorage/DataLakes/Iceberg/AlterDropPartitionExecutor.h @@ -30,6 +30,7 @@ namespace DB class FileNamesGenerator; class IcebergMetadata; +struct ExternalStorageCache; namespace Iceberg { @@ -42,6 +43,7 @@ class AlterDropPartitionExecutor const IcebergMetadata & metadata_, ContextPtr context_, ObjectStoragePtr object_storage_, + ExternalStorageCache & external_storages_, const PersistentTableComponents & components_, const DataLakeStorageSettings & data_lake_settings_, String write_format_, @@ -106,6 +108,7 @@ class AlterDropPartitionExecutor const IcebergMetadata & metadata; ContextPtr context; ObjectStoragePtr object_storage; + ExternalStorageCache & external_storages; const PersistentTableComponents & components; const DataLakeStorageSettings & data_lake_settings; String write_format; diff --git a/src/Storages/ObjectStorage/DataLakes/Iceberg/IcebergMetadata.cpp b/src/Storages/ObjectStorage/DataLakes/Iceberg/IcebergMetadata.cpp index 2eb3feca93452..b892c9b105ae7 100644 --- a/src/Storages/ObjectStorage/DataLakes/Iceberg/IcebergMetadata.cpp +++ b/src/Storages/ObjectStorage/DataLakes/Iceberg/IcebergMetadata.cpp @@ -973,6 +973,7 @@ void IcebergMetadata::alterPartitionDropImpl(const PartitionCommand & command, C *this, context, object_storage, + *external_storages, persistent_components, data_lake_settings, write_format,