**Describe the bug**

I have a table like:

```
CREATE TABLE test (
    time DateTime64(3)
    ...
) ENGINE = MergeTree()
PARTITION BY toStartOfInterval(time, INTERVAL 1 HOUR)
...
```

But when I search in `system.parts` it does not appear to have the `min/max` columns appropriately set?

```
partition:                             2020-06-01 01:00:00
min_date:                              1970-01-01
max_date:                              1970-01-01
min_time:                              1970-01-01 00:00:00
max_time:                              1970-01-01 00:00:00
```

I assume that if these were correctly set, doing a `select toStartOfInterval(time, interval 1 day), count()` type query would be pretty instant rather than trying to scan everything? I am guessing this is due to the `DateTime64` type in use?

Clickhouse 20.11.3.3

String getTypeName() const { return getType().toString(); }
    void setColumns(const NamesAndTypesList & new_columns);
    const NamesAndTypesList & getColumns() const { return columns; }
    
    void assertOnDisk() const;
    void remove(bool keep_s3 = false) const;
    
    
    void loadColumnsChecksumsIndexes(bool require_columns_checksums, bool check_consistency);
    String getMarksFileExtension() const { return index_granularity_info.marks_file_extension; }
    
    
    String getNewName(const MergeTreePartInfo & new_part_info) const;
    
    
    
    
    
    std::optional<size_t> getColumnPosition(const String & column_name) const;
    
    
    String getColumnNameWithMinimumCompressedSize(const StorageMetadataPtr & metadata_snapshot) const;
    bool contains(const IMergeTreeDataPart & other) const { return info.contains(other.info); }
    
    DayNum getMinDate() const;
    DayNum getMaxDate() const;
    
    time_t getMinTime() const;
    time_t getMaxTime() const;
    bool isEmpty() const { return rows_count == 0; }