#include #include #include namespace DB { TemporaryFileOnDisk::TemporaryFileOnDisk(const DiskPtr & disk_, const String & prefix_) : disk(disk_) { String dummy_prefix = "a/"; filepath = Poco::TemporaryFile::tempName(dummy_prefix); dummy_prefix += "tmp"; assert(filepath.starts_with(dummy_prefix)); filepath.replace(0, dummy_prefix.length(), prefix_); } TemporaryFileOnDisk::~TemporaryFileOnDisk() { try { if (disk && !filepath.empty() && disk->exists(filepath)) disk->removeRecursive(filepath); } catch (...) { } } }