提交 56b316bf 编写于 作者: A Alexey Milovidov

Fixed error when symlinked part couldn't be removed [#METR-20080].

上级 9e81f3ee
......@@ -350,8 +350,8 @@ size_t MergeTreeDataPart::calcTotalSize(const String & from)
void MergeTreeDataPart::remove() const
{
String from = storage.full_path + name + "/";
String to = storage.full_path + "tmp2_" + name + "/";
String from = storage.full_path + name;
String to = storage.full_path + "tmp2_" + name;
Poco::File from_dir{from};
Poco::File to_dir{to};
......
include_directories (${CMAKE_CURRENT_BINARY_DIR})
set(SRCS )
add_executable (system_numbers system_numbers.cpp ${SRCS})
add_executable (system_numbers system_numbers.cpp)
target_link_libraries (system_numbers dbms)
add_executable (storage_log storage_log.cpp ${SRCS})
add_executable (storage_log storage_log.cpp)
target_link_libraries (storage_log dbms)
add_executable (hit_log hit_log.cpp ${SRCS})
add_executable (hit_log hit_log.cpp)
target_link_libraries (hit_log dbms)
add_executable (merge_tree merge_tree.cpp ${SRCS})
add_executable (merge_tree merge_tree.cpp)
target_link_libraries (merge_tree dbms)
add_executable (seek_speed_test seek_speed_test.cpp ${SRCS})
add_executable (seek_speed_test seek_speed_test.cpp)
target_link_libraries (seek_speed_test dbms)
add_executable (pk_condition pk_condition.cpp ${SRCS})
add_executable (pk_condition pk_condition.cpp)
target_link_libraries (pk_condition dbms)
add_check(pk_condition)
add_executable (part_checker part_checker.cpp ${SRCS})
add_executable (part_checker part_checker.cpp)
target_link_libraries (part_checker dbms)
add_executable (part_name part_name.cpp ${SRCS})
add_executable (part_name part_name.cpp)
target_link_libraries (part_name dbms)
add_executable (remove_symlink_directory remove_symlink_directory.cpp)
target_link_libraries (remove_symlink_directory dbms)
#include <unistd.h>
#include <iostream>
#include <Poco/File.h>
#include <Poco/Path.h>
#include <DB/Common/Exception.h>
int main(int argc, char ** argv)
try
{
Poco::File dir("./test_dir/");
dir.createDirectories();
Poco::File("./test_dir/file").createFile();
if (0 != symlink("./test_dir", "./test_link"))
DB::throwFromErrno("Cannot create symlink");
Poco::File link("./test_link");
link.renameTo("./test_link2");
Poco::File("./test_link2").remove(true);
return 0;
}
catch (...)
{
std::cerr << DB::getCurrentExceptionMessage(false) << "\n";
return 1;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册