**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
const ASTPtr & query_ast,
    const Block & header,
    ContextPtr context,
    QueryProcessingStage::Enum processed_stage,
    UInt32 shard_num,
    UInt32 shard_count,
    std::shared_ptr<ParallelReplicasReadingCoordinator> coordinator)
{
    checkStackSize();
    auto query_plan = std::make_unique<QueryPlan>();
    auto interpreter = InterpreterSelectQuery(
        query_ast, context, SelectQueryOptions(processed_stage).setShardInfo(shard_num, shard_count));
    interpreter.setProperClientInfo();
    if (coordinator)
    {
        interpreter.setMergeTreeReadTaskCallbackAndClientInfo([coordinator](PartitionReadRequest request) -> std::optional<PartitionReadResponse>
        {
            return coordinator->handleRequest(request);
        });
    }
    interpreter.buildQueryPlan(*query_plan);
    addConvertingActions(*query_plan, header);
    return query_plan;
}
}