I am unable to start the Clickhouse-local with --config-file option , However clickhouse-server is running with same configuration xml files.

I am getting below error :
<img width="1247" alt="image" src="https://user-images.githubusercontent.com/86018844/179818457-c75ab326-7169-4f4e-9cbb-3aa3b08c77e8.png">

After debugging , It seems that Clickhouse-local is searching for "<users_config>" in config() and if not , setting the user_config_path to config.xml. Since config.xml doesn't have any user related storage info, throwing error.
https://github.com/ClickHouse/ClickHouse/blob/master/programs/local/LocalServer.cpp#L328

Adding <users_config> in config.xml loaded the user configuration successfully , However it fails with default database exists error. Since Clickhouse-local already creates default database as part of DatabaseMemory and try to create database again here.
https://github.com/ClickHouse/ClickHouse/blob/master/src/Interpreters/loadMetadata.cpp#L89
<img width="1247" alt="image" src="https://user-images.githubusercontent.com/86018844/179818409-8e72eea4-ed19-4187-b0a6-45a014e2e7a5.png">


PS: , In clickhouse-server, CH automatically searches for user.xml in same path as in config.xml. There is no constraint with <users_config> tag .
{
    Poco::Util::Application::initialize(self);
    
    if (config().has("config-file") || fs::exists("config.xml"))
    {
        const auto config_path = config().getString("config-file", "config.xml");
        ConfigProcessor config_processor(config_path, false, true);
        config_processor.setConfigPath(fs::path(config_path).parent_path());
        auto loaded_config = config_processor.loadConfig();
        config().add(loaded_config.configuration.duplicate(), PRIO_DEFAULT, false);
    }
    GlobalThreadPool::initialize(
        config().getUInt("max_thread_pool_size", 10000),
        config().getUInt("max_thread_pool_free_size", 1000),
        config().getUInt("thread_pool_queue_size", 10000)
    );
    IOThreadPool::initialize(
        config().getUInt("max_io_thread_pool_size", 100),
        config().getUInt("max_io_thread_pool_free_size", 0),
        config().getUInt("io_thread_pool_queue_size", 10000));
}
static DatabasePtr createMemoryDatabaseIfNotExists(ContextPtr context, const String & database_name)