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

This commit is contained in:
robot-clickhouse 2024-11-05 12:10:39 +00:00
parent ecb795c9bc
commit 553b672f38
2 changed files with 15 additions and 1 deletions

View File

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

View File

@ -792,3 +792,17 @@ def test_keeper_storage_remove_on_cluster(cluster, ignore, expected_raise):
node.query(
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!`")