If they are defined, they can override table-level settings.
AlterConversions getAlterConversionsForPart(MergeTreeDataPartPtr part) const;
    
    
    SpacePtr getDestinationForMoveTTL(const TTLDescription & move_ttl, bool is_insert = false) const;
    
    
    bool isPartInTTLDestination(const TTLDescription & ttl, const IMergeTreeDataPart & part) const;
    
    
    
    size_t getTotalMergesWithTTLInMergeList() const;
    using WriteAheadLogPtr = std::shared_ptr<MergeTreeWriteAheadLog>;
    WriteAheadLogPtr getWriteAheadLog();
    MergeTreeDataFormatVersion format_version;
    
    const MergingParams merging_params;
    bool is_custom_partitioned = false;
    
    Int64 minmax_idx_date_column_pos = -1; 
    Int64 minmax_idx_time_column_pos = -1; 
    
    static ExpressionActionsPtr getMinMaxExpr(const KeyDescription & partition_key, const ExpressionActionsSettings & settings);
    
    static Names getMinMaxColumnsNames(const KeyDescription & partition_key);
    
    static DataTypes getMinMaxColumnsTypes(const KeyDescription & partition_key);
    ExpressionActionsPtr getPrimaryKeyAndSkipIndicesExpression(const StorageMetadataPtr & metadata_snapshot) const;
    ExpressionActionsPtr getSortingKeyAndSkipIndicesExpression(const StorageMetadataPtr & metadata_snapshot) const;