**Describe the bug**
A clear and concise description of what works not as it is supposed to.

```
CREATE TABLE table_repl
(
    number UInt32
)
ENGINE = ReplicatedMergeTree("/clickhouse/{cluster}/tables/{shard}/table_repl", "{replica}")
PARTITION BY intDiv(number, 1000)
ORDER BY number
```

yields an Exception:

`DB::Exception: No macro 'uuid' in config while processing substitutions in '/clickhouse/tables/{uuid}/{shard}' at '20' or macro is not supported here.
`

**How to reproduce**
* Which ClickHouse server version to use: 20.9.1

**Expected**

The error is that the query should contain only single-quoted strings, but the message is quite misleading.
So the exception should be like "You're using double-quoted strings, which is prohibited".

break;
        }
        else
        {
            res.append(s, pos, begin - pos);
        }
        ++begin;
        size_t end = s.find('}', begin);
        if (end == String::npos)
            throw Exception("Unbalanced { and } in string with macros: '" + s + "'", ErrorCodes::SYNTAX_ERROR);
        String macro_name = s.substr(begin, end - begin);
        auto it = macros.find(macro_name);
        
        if (it != macros.end())
            res += it->second;
        else if (macro_name == "database" && !database_name.empty())
            res += database_name;
        else if (macro_name == "table" && !table_name.empty())
            res += table_name;
        else if (macro_name == "uuid" && uuid != UUIDHelpers::Nil)
            res += toString(uuid);
        else
            throw Exception("No macro '" + macro_name +
                "' in config while processing substitutions in '" + s + "' at '"
                + toString(begin) + "' or macro is not supported here", ErrorCodes::SYNTAX_ERROR);
        pos = end + 1;
    }
    return expand(res, level + 1, database_name, table_name);
}
String Macros::getValue(const String & key) const