diff --git a/dbms/src/Common/ErrorCodes.cpp b/dbms/src/Common/ErrorCodes.cpp index f15d066f8cf2c18eaafdbbf552d02b59b9d1003b..5881f6bc501987a3c847fd30ffec805261158250 100644 --- a/dbms/src/Common/ErrorCodes.cpp +++ b/dbms/src/Common/ErrorCodes.cpp @@ -430,6 +430,7 @@ namespace ErrorCodes extern const int MYSQL_CLIENT_INSUFFICIENT_CAPABILITIES = 453; extern const int OPENSSL_ERROR = 454; extern const int SUSPICIOUS_TYPE_FOR_LOW_CARDINALITY = 455; + extern const int CANNOT_UNLINK = 458; extern const int KEEPER_EXCEPTION = 999; extern const int POCO_EXCEPTION = 1000; diff --git a/dbms/src/Storages/MergeTree/MergeTreeDataPart.cpp b/dbms/src/Storages/MergeTree/MergeTreeDataPart.cpp index 0ff198398c2da8da12552fd34068dff7a7cde08c..fb18d381d31bb7719180aef5d4ee70966db1f24f 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeDataPart.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeDataPart.cpp @@ -402,15 +402,19 @@ void MergeTreeDataPart::remove() const for (const auto & [file, _] : checksums.files) { - if (0 != unlink((to + "/" + file).c_str())) - throwFromErrno("Cannot unlink file", ErrorCodes::CANNOT_UNLINK); + String path_to_remove = to + "/" + file; + if (0 != unlink(path_to_remove.c_str())) + throwFromErrno("Cannot unlink file " + path_to_remove, ErrorCodes::CANNOT_UNLINK); } - if (0 != unlink((to + "/checksums.txt").c_str())) - throwFromErrno("Cannot unlink file", ErrorCodes::CANNOT_UNLINK); + { + String path_to_remove = to + "/checksums.txt"; + if (0 != unlink(path_to_remove.c_str())) + throwFromErrno("Cannot unlink file", ErrorCodes::CANNOT_UNLINK); + } if (0 != rmdir(to.c_str())) - throwFromErrno("Cannot rmdir file", ErrorCodes::CANNOT_UNLINK); + throwFromErrno("Cannot rmdir file " + to, ErrorCodes::CANNOT_UNLINK); } catch (...) {