ClickHouse Version: `22.5.1.2079`

`config.xml`
```xml
<user_defined_path>/etc/clickhouse-server/user_defined/</user_defined_path>
```
`function_test.sql`,use ConfigMap mount.
```shell
root@clickhouse-0-0:/etc/clickhouse-server/user_defined# cat function_test.sql 
CREATE FUNCTION test AS a -> (a * 2)

root@clickhouse-0-0:/etc/clickhouse-server/user_defined# ls -al
total 12
drwxrwxrwx 3 root       root       4096 Jun 14 07:44 .
drwxrwxrwx 1 clickhouse clickhouse 4096 Jun 14 07:44 ..
drwxr-xr-x 2 root       root       4096 Jun 14 07:44 ..2022_06_14_07_44_53.3010880811
lrwxrwxrwx 1 root       root         32 Jun 14 07:44 ..data -> ..2022_06_14_07_44_53.3010880811
lrwxrwxrwx 1 root       root         24 Jun 14 07:44 function_test.sql -> ..data/function_test.sql
```

UserDefinedSQLObjectsLoader.cpp -> `UserDefinedSQLObjectsLoader::loadObjects()` function, skips soft link file,Unable to load `user_defined` directory functions file.
```cpp
void UserDefinedSQLObjectsLoader::loadObjects(ContextPtr context)
{
    if (unlikely(!enable_persistence))
        return;

    LOG_DEBUG(log, "loading user defined objects");

    String dir_path = context->getUserDefinedPath();
    Poco::DirectoryIterator dir_end;
    for (Poco::DirectoryIterator it(dir_path); it != dir_end; ++it)
    {
        if (it->isLink())
            continue;

        const auto & file_name = it.name();

        /// For '.svn', '.gitignore' directory and similar.
        if (file_name.at(0) == '.')
            continue;

        if (!it->isDirectory() && endsWith(file_name, ".sql"))
        {
            std::string_view object_name = file_name;
            object_name.remove_suffix(strlen(".sql"));
            object_name.remove_prefix(strlen("function_"));
            loadUserDefinedObject(context, UserDefinedSQLObjectType::Function, object_name, dir_path + it.name());
        }
    }
}
```
: log(&Poco::Logger::get("UserDefinedSQLObjectsLoader"))
{}
void UserDefinedSQLObjectsLoader::loadUserDefinedObject(ContextPtr context, UserDefinedSQLObjectType object_type, const std::string_view & name, const String & path)
{
    auto name_ref = StringRef(name.data(), name.size());
    LOG_DEBUG(log, "Loading user defined object {} from file {}", backQuote(name_ref), path);
    
    ReadBufferFromFile in(path);
    String object_create_query;
    readStringUntilEOF(object_create_query, in);
    try
    {
        switch (object_type)
        {
            case UserDefinedSQLObjectType::Function:
            {
                ParserCreateFunctionQuery parser;
                ASTPtr ast = parseQuery(
                    parser,
                    object_create_query.data(),
                    object_create_query.data() + object_create_query.size(),
                    "in file " + path,
                    0,
                    context->getSettingsRef().max_parser_depth);
                InterpreterCreateFunctionQuery interpreter(ast, context, false );
                interpreter.execute();
            }
        }
    }
    catch (Exception & e)