If they are defined, they can override table-level settings.
std::optional<Int64> getMinPartDataVersion() const;
    
    DetachedPartsInfo getDetachedParts() const;
    static void validateDetachedPartName(const String & name);
    void dropDetached(const ASTPtr & partition, bool part, ContextPtr context);
    MutableDataPartsVector tryLoadPartsToAttach(const ASTPtr & partition, bool attach_part,
                                                ContextPtr context, PartsTemporaryRename & renamed_parts);
    
    
    void delayInsertOrThrowIfNeeded(Poco::Event * until = nullptr) const;
    
    
    
    
    
    
    
    bool renameTempPartAndAdd(
        MutableDataPartPtr & part,
        MergeTreeTransaction * txn,
        SimpleIncrement * increment = nullptr,
        Transaction * out_transaction = nullptr,
        MergeTreeDeduplicationLog * deduplication_log = nullptr,
        std::string_view deduplication_token = std::string_view());
    
    
    
    DataPartsVector renameTempPartAndReplace(