Merge pull request #71464 from ClickHouse/backport/24.9/71308

Backport #71308 to 24.9: Added missing unescaping in named collections names.
This commit is contained in:
Kseniia Sumarokova 2024-11-15 12:10:58 +01:00 committed by GitHub
commit 4d1b4c3c41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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!`")