From 03009b029732ffedf8e995c9ba42d1f90816247b Mon Sep 17 00:00:00 2001 From: Anton Ivashkin Date: Thu, 15 Oct 2026 17:16:21 +0200 Subject: [PATCH] Pass `ExternalStorageCache` into Iceberg DROP PARTITION metadata reads `getManifestFileEntriesHandle` and `generateManifestList` take the cache after external-path support, but `AlterDropPartitionExecutor` still used the old signatures, so the amd binary build failed. https: //altinity-build-artifacts.s3.amazonaws.com/json.html?PR=2575&sha=de846f87651f582609e740036d2a9ba9db179950&name_0=PR&name_1=Build%20%28amd_binary%29 https: //github.com/Altinity/ClickHouse/pull/2575 Co-authored-by: Cursor --- .../DataLakes/Iceberg/AlterDropPartitionExecutor.cpp | 9 +++++++-- .../DataLakes/Iceberg/AlterDropPartitionExecutor.h | 3 +++ .../ObjectStorage/DataLakes/Iceberg/IcebergMetadata.cpp | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) 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,