**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
bool only_analyze = false;
    bool modify_inplace = false;
    bool remove_duplicates = false;
    
    bool reorder_columns_as_required_header = false;
    bool ignore_quota = false;
    bool ignore_limits = false;
    
    
    
    bool ignore_projections = false;
    
    
    
    bool is_projection_query = false;
    
    
    bool ignore_ast_optimizations = false;
    bool ignore_alias = false;
    bool is_internal = false;
    bool is_subquery = false; 
    bool with_all_cols = false; 
    bool settings_limit_offset_done = false;
    bool is_explain = false; 
    
    
    
    std::optional<UInt32> shard_num;
    std::optional<UInt32> shard_count;
    SelectQueryOptions(