From 0c472a7b3e48be7c221c8ed34cafb9ffba62ff4e Mon Sep 17 00:00:00 2001 From: "joey.ljy" Date: Wed, 5 Aug 2026 22:55:55 +0800 Subject: [PATCH] fix(commit): allow disabled manifest delete stats option Parse manifest.delete-file-drop-stats and reject it only when enabled, because false matches the existing C++ commit behavior. Co-Authored-By: Codex AI-Model: gpt-5 AI-Contributed/Feature: 8/8 AI-Contributed/UT: 6/6 --- src/paimon/core/operation/file_store_commit_impl.cpp | 8 +++++++- src/paimon/core/operation/file_store_commit_impl_test.cpp | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/paimon/core/operation/file_store_commit_impl.cpp b/src/paimon/core/operation/file_store_commit_impl.cpp index 6342f9b34..d70f84e2c 100644 --- a/src/paimon/core/operation/file_store_commit_impl.cpp +++ b/src/paimon/core/operation/file_store_commit_impl.cpp @@ -42,6 +42,7 @@ #include "paimon/common/utils/binary_row_partition_computer.h" #include "paimon/common/utils/date_time_utils.h" #include "paimon/common/utils/fields_comparator.h" +#include "paimon/common/utils/options_utils.h" #include "paimon/common/utils/path_util.h" #include "paimon/common/utils/scope_guard.h" #include "paimon/core/catalog/catalog_snapshot_commit.h" @@ -116,7 +117,12 @@ Status FileStoreCommitImpl::ValidateCommitOptions(const CoreOptions& options) { unsupported_options.emplace_back(kCommitStrictModeLastSafeSnapshot); } if (raw_options.find(kManifestDeleteFileDropStats) != raw_options.end()) { - unsupported_options.emplace_back(kManifestDeleteFileDropStats); + PAIMON_ASSIGN_OR_RAISE( + bool manifest_delete_file_drop_stats, + OptionsUtils::GetValueFromMap(raw_options, kManifestDeleteFileDropStats)); + if (manifest_delete_file_drop_stats) { + unsupported_options.emplace_back(kManifestDeleteFileDropStats); + } } if (raw_options.find(kSequenceSnapshotOrdering) != raw_options.end()) { unsupported_options.emplace_back(kSequenceSnapshotOrdering); diff --git a/src/paimon/core/operation/file_store_commit_impl_test.cpp b/src/paimon/core/operation/file_store_commit_impl_test.cpp index 405b82802..309766ddc 100644 --- a/src/paimon/core/operation/file_store_commit_impl_test.cpp +++ b/src/paimon/core/operation/file_store_commit_impl_test.cpp @@ -2550,6 +2550,12 @@ TEST_F(FileStoreCommitImplTest, ValidateCommitOptionsRejectsUnsupportedOptions) ASSERT_OK(FileStoreCommitImpl::ValidateCommitOptions(ok_options)); } +TEST_F(FileStoreCommitImplTest, ValidateCommitOptionsAllowsDisabledManifestDeleteFileDropStats) { + ASSERT_OK_AND_ASSIGN(CoreOptions options, + CoreOptions::FromMap({{"manifest.delete-file-drop-stats", "false"}})); + ASSERT_OK(FileStoreCommitImpl::ValidateCommitOptions(options)); +} + TEST_F(FileStoreCommitImplTest, DropPartitionWithEmptyPartitionsFails) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context,