GRDB.swift v4.7.0 Release Notes

Release Date: 2019-12-18 // over 4 years ago
  • ๐Ÿš€ Released December 18, 2019 • diff

    ๐Ÿ†• New

    • #656: Type inference of selected columns
    • #659: Database interruption
    • ๐Ÿ”’ #660: Database Lock Prevention
    • โฌ†๏ธ #662: Upgrade custom SQLite builds to version 3.30.1 (thanks to @swiftlyfalling)
    • #668: Database Suspension

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ“š [Custom SQLite builds](Documentation/CustomSQLiteBuilds.md) now disable by default the support for the Double-quoted String Literals misfeature. This is a technically a breaking change, but it fixes an SQLite bug. You can restore the previous behavior if your application relies on it:

    // Enable support for the Double-quoted String Literals misfeature
    var configuration = Configuration()
    configuration.acceptsDoubleQuotedStringLiterals = true
    let dbQueue = try DatabaseQueue(path: ..., configuration: configuration)
    

    ๐Ÿ“š Documentation Diff

    The new [Interrupt a Database](README.md#interrupt-a-database) chapter documents the new interrupt() method.

    ๐Ÿ“š The new [Sharing a Datatase in an App Group Container](Documentation/AppGroupContainers.md) guide explains how to setup GRDB when you share a database in an iOS App Group container.

    API Diff

     struct Configuration {
    +    var observesSuspensionNotifications: Bool // Experimental
    +    var acceptsDoubleQuotedStringLiterals: Bool
     }
    
     class Database {
    +    static let suspendNotification: Notification.Name // Experimental
    +    static let resumeNotification: Notification.Name  // Experimental
     }
    
     extension DatabaseError {
    +    var isInterruptionError: Bool { get }
     }
    
     protocol DatabaseReader {
    +    func interrupt()
     }
    
     extension SQLSpecificExpressible {
    +    #if GRDBCUSTOMSQLITE
    +    var ascNullsLast: SQLOrderingTerm { get }
    +    var descNullsFirst: SQLOrderingTerm { get }
    +    #endif
     }