Backport #71308 to 24.10: Added missing unescaping in named collections names.

This commit is contained in:
robot-clickhouse 2024-11-05 12:11:04 +00:00
parent efad00478f
commit 0ec3053fbc
2 changed files with 15 additions and 1 deletions

View File

@ -568,7 +568,7 @@ std::vector<std::string> NamedCollectionsMetadataStorage::listCollections() cons
std::vector<std::string> collections; std::vector<std::string> collections;
collections.reserve(paths.size()); collections.reserve(paths.size());
for (const auto & path : paths) for (const auto & path : paths)
collections.push_back(std::filesystem::path(path).stem()); collections.push_back(unescapeForFileName(std::filesystem::path(path).stem()));
return collections; return collections;
} }

View File

@ -794,3 +794,17 @@ def test_keeper_storage_remove_on_cluster(cluster, ignore, expected_raise):
node.query( node.query(
f"DROP NAMED COLLECTION test_nc ON CLUSTER `replicated_nc_nodes_cluster`" f"DROP NAMED COLLECTION test_nc ON CLUSTER `replicated_nc_nodes_cluster`"
) )
@pytest.mark.parametrize(
"instance_name",
[("node"), ("node_with_keeper")],
)
def test_name_escaping(cluster, instance_name):
node = cluster.instances[instance_name]
node.query("DROP NAMED COLLECTION IF EXISTS `test_!strange/symbols!`;")
node.query("CREATE NAMED COLLECTION `test_!strange/symbols!` AS key1=1, key2=2")
node.restart_clickhouse()
node.query("DROP NAMED COLLECTION `test_!strange/symbols!`")