**How to check**
```
CREATE TABLE test_local on cluster '{cluster}' (number UInt64) ENGINE = MergeTree() ORDER BY number;
CREATE TABLE test_distruted (number UInt64) ENGINE = Distributed('{cluster}', currentDatabase(), test_local);

INSERT INTO test_local SELECT number from system.numbers limit 3;

select number from test_distruted order by toDateTime(number) DESC;
```

Without distributed table (only merge tree) it work's correctly

**Versions**
21.12.4 - ok
22.2.3 - ok
22.3.2 - not ok
{
    auto it = map.find(projection_name);
    if (it == map.end())
    {
        if (if_exists)
            return;
        String exception_message = fmt::format("There is no projection {} in table", projection_name);
        appendHintsMessage(exception_message, projection_name);
        throw Exception(exception_message, ErrorCodes::NO_SUCH_PROJECTION_IN_TABLE);
    }
    projections.erase(it->second);
    map.erase(it);
}
std::vector<String> ProjectionsDescription::getAllRegisteredNames() const