All Versions
267
Latest Version
Avg Release Cycle
15 days
Latest Release
-
Changelog History
Page 3
Changelog History
Page 3
-
v5.18.0 Changes
๐ Released January 9, 2022 • diff
- ๐ New: #1075 by @mallman: Progress-reporting database backups
- ๐ New: #1129 by @groue: Detached columns
- ๐ New: #1132 by @groue: Bump custom SQLite builds v3.72.2
- ๐ New: #1133 by @groue: Support for STRICT tables
- ๐ Fixed: #1120 by @jnross: Fix typos
- ๐ Fixed: #1121 by @byohay: Quote PROJECT_DIR and SRCROOT environment variables
- ๐ Fixed: #1128 by @groue: Deal with authorization callbacks from cursors of FetchableRecord
- ๐ Documentation Update: A new [Embedding SQL in Query Interface Requests](README.md#embedding-sql-in-query-interface-requests) chapter describes the ways to leverage your SQL skills and extend GRDB apis.
-
v5.17.0 Changes
๐ Released December 14, 2021 • diff
- ๐ New: :star: #1079 by @groue: Async / Await
- ๐ New:
DatabaseRegion(table: tableName)
is deprecated. UseTable(tableName)
instead. - ๐ New: The
ABS
andLENGTH
SQL functions are now available on association aggregates, throughabs(aggregate)
andlength(aggregate)
. - ๐ New: Support for the
TOTAL
aggregate function. You can usetotal
in Swift, at all placessum
is available. - ๐ New:
ValueObservation.removeDuplicates(by:)
with a closure argument. - ๐ New: Testing for the existence of an associated record with
TableAlias.exists
now supports associated views, and associated tables WITHOUT ROWID that have a compound primary key. - ๐ Fixed:
Database.primaryKey(_:)
throws when given the name of a view. - ๐ Documentation Update: :star: The [Concurrency Guide](Documentation/Concurrency.md) was updated for the new support for asynchronous Swift.
- ๐ Documentation Update: :star: [GRDBAsyncDemo](Documentation/DemoApps/GRDBAsyncDemo/README.md) is a new SwiftUI demo app that uses the new async apis.
- ๐ Documentation Update: A new FAQ gives hints for avoiding a [Mutation of captured var in concurrently-executing code](README.md##mutation-of-captured-var-in-concurrently-executing-code) compiler error.
- ๐ Documentation Update: #1107 by @tcwalther: Fix docstring for Database.create(index: ...)
- ๐ Documentation Update: #1110 by @maxhumber: Minor changes to a tip in the README
-
v5.16.0 Changes
๐ Released December 5, 2021 • diff
- ๐ New: #1106 by @groue: Sugar for fetching only a few columns of associated records
- ๐ Documentation Update: The [Joining And Prefetching Associated Records](Documentation/AssociationsBasics.md#joining-and-prefetching-associated-records) chapter was fully rewritten. The joining methods
including(required:)
and others are much more detailed, with an exploration of frequent use cases. - ๐ Documentation Update: The [Joining And Prefetching Associated Records](Documentation/AssociationsBasics.md#joining-and-prefetching-associated-records) chapter introduces the new
annotated(withRequired:)
andannotated(withOptional:)
joining methods. - ๐ Documentation Update: The new [Choosing a Joining Method Given the Shape of the Decoded Type](Documentation/AssociationsBasics.md#choosing-a-joining-method-given-the-shape-of-the-decoded-type) chapter helps choosing a joining method, given the shape of the fetched data.
-
v5.15.0 Changes
๐ Released December 2, 2021 • diff
- ๐ Fixed:
ValueObservation
now always fetches fresh values in an isolated fashion. This prevents all risks of fetching inconsistent data even if an external connection modifies the database. - ๐ New:
Table
now conforms toDatabaseRegionConvertible
. You can writeDatabaseRegionObservation(tracking: Table("player"))
. - ๐ New: #1102 by @groue: Explicit tracked region for ValueObservation
- ๐ Fixed:
-
v5.14.0 Changes
๐ Released November 25, 2021 • diff
- ๐ Fix:
ForeignKeyViolation.failureDescription(_:)
now accepts table names that require quoting. - ๐ Fix: Add missing
public
qualifier onForeignKeyViolation
properties. - ๐ New:
ForeignKeyViolation.databaseError(_:)
turns a foreign key violation into aDatabaseError
. - ๐ Documentation Update: the demo apps were modernized for iOS 15+. The SwiftUI demo app now uses the GRDBQuery package in order to update its views according to the database content.
- ๐ Fix:
-
v5.13.0 Changes
๐ Released November 7, 2021 • diff
- ๐ฅ Breaking Change: #1076 by @groue: Require Swift 5.3 and Xcode 12
- ๐ New: :star: #1088 by @groue: Shared ValueObservation
- ๐ New: :star: #1095 by @groue: Precise foreign key checks for migrations
- ๐ New: #1078 by @groue: Non-mutating persistence methods
saved
andinserted
, and existence-checking methodsisEmpty
andexists
- ๐ New:
DatabasePool.erase()
prevents concurrent reads until it has completed. - ๐ New: The
close()
method allows precise closing of database connections. - ๐ New: Filtering records by single-column primary key now properly encodes dates and uuids according to the customized strategies (
filter(id:)
,deleteAll(_:keys:)
, etc.) - ๐ New:
DatabaseUUIDEncodingStrategy.lowercaseString
can encode UUID as a lowercased string. For clarity, thestring
strategy has been deprecated and renameduppercaseString
. - ๐ Documentation Update: :star: The [Concurrency Guide](Documentation/Concurrency.md) got a major overhaul.
- ๐ Documentation Update: :star: A new [ValueObservation Sharing](README.md#valueobservation-sharing) chapter describes how to share database observations and spare database resources.
- ๐ Documentation Update: :star: The [Migrations](Documentation/Migrations.md) guide tells how you can mitigate slow foreign key checks during schema changes.
- ๐ Documentation Update: The [Date and UUID Coding Strategies](README.md#date-and-uuid-coding-strategies) chapter describes the new support for date and uuid primary key coding in requests by single-column primary key.
- ๐ Documentation Update: A new [Testing for Record Existence](README.md#testing-for-record-existence) chapter describes the new
request.isEmpty(_:)
,Record.exists(_:id:)
andRecord.exists(_:key:)
methods.
-
v5.12.0 Changes
๐ Released September 25, 2021 • diff
- ๐ฅ Breaking Change: Minimum iOS version is now iOS 11.0, and 32-bits devices are no longer supported. This fixes issues introduced by Xcode 13 (#1033, #1059).
- ๐ New:
FTS3Pattern(matchingAllPrefixesIn:)
andFTS5Pattern(matchingAllPrefixesIn:)
let you build full-text search patterns suitable for prefix queries. - ๐ New:
FTS3.tokenize(_:)
andFTS5Tokenizer.tokenize(_:)
let you tokenize input strings. - ๐ Documentation Update: Full-text search documentation was updated for the new search pattern initializers ([FTS3/4](Documentation/FullTextSearch.md#fts3pattern), [FTS5](Documentation/FullTextSearch.md#fts5pattern)), and tokenization methods ([FTS3/4](Documentation/FullTextSearch.md#fts3-and-fts4-tokenization), [FTS5](Documentation/FullTextSearch.md#fts5-tokenization)).
-
v5.11.0 Changes
๐ Released September 3, 2021 • diff
- ๐ Fixed: Version 5.10.0, when embedded as an Xcode project, would enable the FTS5 full-text engine on system versions that do not provide it.
- ๐ New: #1046 by @groue: Improve performance of by-index row decoding
- ๐ New: #1029 by @sberrevoets, @groue: Column coding strategies for Codable records
-
v5.10.0 Changes
๐ Released August 22, 2021 • diff
- ๐ New: #1036 by @groue: Restore minimal CI tests
- ๐ New: #1037 by @groue: Support BUILD_LIBRARY_FOR_DISTRIBUTION
- ๐ New: #1038 by @GetToSet: Add match operator in ColumnExpression for FTS5
- ๐ New: With Swift 5.5+, enhance access to
Column.rowID
. Row and PersistenceContainer subscripts now acceptrow[.rowID]
andcontainer[.rowID]
(SE-0299) - ๐ Documentation Update: A new [Combine and Data Consistency](Documentation/Combine.md#combine-and-data-consistency) chapter explains how to make sure database publishers do not break important database invariants.