**Describe the issue**
We have to set macro or to pass explicitly shard and replica name to create table in DatabaseReplicated

MacroExpansionInfo & info) const
{
    
    assert(info.level == 0 || !info.expand_special_macros_only);
    if (s.find('{') == String::npos)
        return s;
    if (info.level && s.size() > 65536)
        throw Exception("Too long string while expanding macros", ErrorCodes::SYNTAX_ERROR);
    if (info.level >= 10)
        throw Exception("Too deep recursion while expanding macros: '" + s + "'", ErrorCodes::SYNTAX_ERROR);
    
    if (!enable_special_macros && info.expand_special_macros_only)
        return s;
    String res;
    size_t pos = 0;
    while (true)
    {
        size_t begin = s.find('{', pos);
        if (begin == String::npos)
        {
            res.append(s, pos, String::npos);
            break;
        }
        else
        {
            res.append(s, pos, begin - pos);
        }
        ++begin;
        size_t end = s.find('}', begin);
        if (end == String::npos)