mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-29 19:12:03 +00:00
Fix disk using the same path
This commit is contained in:
parent
d1431fffd2
commit
040b71617c
@ -29,6 +29,7 @@ namespace ErrorCodes
|
|||||||
extern const int CANNOT_TRUNCATE_FILE;
|
extern const int CANNOT_TRUNCATE_FILE;
|
||||||
extern const int CANNOT_UNLINK;
|
extern const int CANNOT_UNLINK;
|
||||||
extern const int CANNOT_RMDIR;
|
extern const int CANNOT_RMDIR;
|
||||||
|
extern const int BAD_ARGUMENTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::mutex DiskLocal::reservation_mutex;
|
std::mutex DiskLocal::reservation_mutex;
|
||||||
@ -458,10 +459,16 @@ void registerDiskLocal(DiskFactory & factory)
|
|||||||
const Poco::Util::AbstractConfiguration & config,
|
const Poco::Util::AbstractConfiguration & config,
|
||||||
const String & config_prefix,
|
const String & config_prefix,
|
||||||
ContextPtr context,
|
ContextPtr context,
|
||||||
const DisksMap & /*map*/) -> DiskPtr {
|
const DisksMap & map) -> DiskPtr {
|
||||||
String path;
|
String path;
|
||||||
UInt64 keep_free_space_bytes;
|
UInt64 keep_free_space_bytes;
|
||||||
loadDiskLocalConfig(name, config, config_prefix, context, path, keep_free_space_bytes);
|
loadDiskLocalConfig(name, config, config_prefix, context, path, keep_free_space_bytes);
|
||||||
|
|
||||||
|
for (const auto & [disk_name, disk_ptr] : map)
|
||||||
|
{
|
||||||
|
if (path == disk_ptr->getPath())
|
||||||
|
throw Exception("Disk " + name + " and Disk " + disk_name + " cannot have the same path" + " (" + path + ")", ErrorCodes::BAD_ARGUMENTS);
|
||||||
|
}
|
||||||
return std::make_shared<DiskLocal>(name, path, keep_free_space_bytes);
|
return std::make_shared<DiskLocal>(name, path, keep_free_space_bytes);
|
||||||
};
|
};
|
||||||
factory.registerDiskType("local", creator);
|
factory.registerDiskType("local", creator);
|
||||||
|
Loading…
Reference in New Issue
Block a user