If they are defined, they can override table-level settings.
{
public:
    MergeTreeDataRestoreTask(
        const std::shared_ptr<MergeTreeData> & storage_,
        const BackupPtr & backup_,
        const String & data_path_in_backup_,
        const std::unordered_set<String> & partition_ids_,
        SimpleIncrement * increment_)
        : storage(storage_)
        , backup(backup_)
        , data_path_in_backup(data_path_in_backup_)
        , partition_ids(partition_ids_)
        , increment(increment_)
    {
    }
    RestoreTasks run() override