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

String needed_params;
    auto add_mandatory_param = [&](const char * desc)
    {
        ++min_num_params;
        ++max_num_params;
        needed_params += needed_params.empty() ? "\n" : ",\n";
        needed_params += desc;
    };
    auto add_optional_param = [&](const char * desc)
    {
        ++max_num_params;
        needed_params += needed_params.empty() ? "\n" : ",\n[";
        needed_params += desc;
        needed_params += "]";
    };
    if (replicated)
    {
        if (is_extended_storage_def)
        {
            add_optional_param("path in ZooKeeper");
            add_optional_param("replica name");
        }
        else
        {
            add_mandatory_param("path in ZooKeeper");
            add_mandatory_param("replica name");
        }
    }
    if (!is_extended_storage_def)
    {