**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".

{
    if (auto it = macros.find(key); it != macros.end())
        return it->second;
    throw Exception("No macro " + key + " in config", ErrorCodes::SYNTAX_ERROR);
}
String Macros::expand(const String & s, const StorageID & table_id, bool allow_uuid) const
{
    return expand(s, 0, table_id.database_name, table_id.table_name, allow_uuid ? table_id.uuid : UUIDHelpers::Nil);
}
Names Macros::expand(const Names & source_names, size_t level) const
{
    Names result_names;
    result_names.reserve(source_names.size());
    for (const String & name : source_names)
        result_names.push_back(expand(name, level));
    return result_names;
}
}