You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,7 @@ GRDB adheres to [Semantic Versioning](https://semver.org/), with one exception:
7
7
8
8
#### 7.x Releases
9
9
10
+
- `7.11.x` Releases - [7.11.0](#7110)
10
11
- `7.10.x` Releases - [7.10.0](#7100)
11
12
- `7.9.x` Releases - [7.9.0](#790)
12
13
- `7.8.x` Releases - [7.8.0](#780)
@@ -142,9 +143,16 @@ GRDB adheres to [Semantic Versioning](https://semver.org/), with one exception:
142
143
143
144
---
144
145
146
+
## 7.11.0
147
+
148
+
Released June 1, 2026
149
+
150
+
- **New**: Add option to disable database change filtering in `TransactionObserver` by [@simolus3](https://github.com/simolus3) in [#1864](https://github.com/groue/GRDB.swift/pull/1864)
151
+
- **Fixed**: Fix upsert for WITHOUT ROWID tables by [@groue](https://github.com/groue) in [#1858](https://github.com/groue/GRDB.swift/pull/1858)
152
+
145
153
## 7.10.0
146
154
147
-
Released February 15, 2025
155
+
Released February 15, 2026
148
156
149
157
- **Documentation fixes** by [@bellebethcooper](https://github.com/bellebethcooper), [@Cykelero](https://github.com/Cykelero), and [@leejungyeob](https://github.com/leejungyeob) in [#1842](https://github.com/groue/GRDB.swift/pull/1842), [#1846](https://github.com/groue/GRDB.swift/pull/1846), [#1848](https://github.com/groue/GRDB.swift/pull/1848)
150
158
- **New**: Linux adjustments by [@thinkpractice](https://github.com/thinkpractice) in [#1825](https://github.com/groue/GRDB.swift/pull/1825)
Copy file name to clipboardExpand all lines: GRDB/Documentation.docc/Extension/TransactionObserver.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,7 +97,7 @@ do {
97
97
98
98
**Transaction observers can choose the database changes they are interested in.**
99
99
100
-
The``observes(eventsOfKind:)`` method filters events that are notified to ``databaseDidChange(with:)``. It is the most efficient and recommended change filtering technique, because it is only called once before a database query is executed, and can completely disable change tracking:
100
+
By default, the``observes(eventsOfKind:)`` method filters events that are notified to ``databaseDidChange(with:)``. It is the most efficient and recommended change filtering technique, because it is only called once before a database query is executed, and can completely disable change tracking:
101
101
102
102
```swift
103
103
// Calls `observes(eventsOfKind:)` once.
@@ -125,6 +125,8 @@ class PlayerObserver: TransactionObserver {
125
125
126
126
When the `observes(eventsOfKind:)` method returns false for all event kinds, the observer is still notified of transactions.
127
127
128
+
The filtering performed by ``observes(eventsOfKind:)`` makes a transaction observer unaware of changes performed by SQLite statements that are not a `DELETE`, `INSERT` or `UPDATE` statement compiled and executed by GRDB. You can lift this limitation with the ``TransactionObserver/databaseEventObservationStrategy``.
129
+
128
130
## Observation Extent
129
131
130
132
**You can specify how long an observer is notified of database changes and transactions.**
@@ -232,7 +234,7 @@ The changes and transactions that are not automatically notified to transaction
232
234
233
235
-Read-only transactions.
234
236
-Changesand transactions performed by external database connections.
235
-
-Changes performed by SQLite statements that are notboth compiled and executed throughGRDBAPIs.
237
+
-Changes performed by SQLite statements that are nota `DELETE`, `INSERT`or`UPDATE` statement compiled and executed byGRDB(this limitation can be lifted, in your custom `TransactionObserver` type, with ``TransactionObserver/databaseEventObservationStrategy``).
236
238
-Changes to the database schema, changes to internal system tables such as `sqlite_master`.
237
239
-Changes to [`WITHOUT ROWID`](https://www.sqlite.org/withoutrowid.html) tables.
238
240
-The deletion of duplicate rows triggered by [`ON CONFLICT REPLACE`](https://www.sqlite.org/lang_conflict.html) clauses (this last exception might change in a future release of SQLite).
0 commit comments