If they are defined, they can override table-level settings.
friend class MergeTreeDataMergerMutator;
    friend struct ReplicatedMergeTreeTableMetadata;
    friend class StorageReplicatedMergeTree;
    friend class MergeTreeDataWriter;
    friend class MergeTask;
    friend class IPartMetadataManager;
    bool require_part_metadata;
    
    
    String relative_data_path;
    
    ColumnSizeByName column_sizes;
    
    IndexSizeByName secondary_index_sizes;
    
    BrokenPartCallback broken_part_callback;
    String log_name;
    Poco::Logger * log;
    
    
    MultiVersion<MergeTreeSettings> storage_settings;
    
    mutable std::shared_mutex pinned_part_uuids_mutex;
    PinnedPartUUIDsPtr pinned_part_uuids;
    
    mutable std::atomic_bool transactions_enabled = false;
    
    struct TagByInfo{};
    struct TagByStateAndInfo{};
    static const MergeTreePartInfo & dataPartPtrToInfo(const DataPartPtr & part)