|
1 | 1 | # Changelog
|
2 | 2 |
|
3 |
| -## 1.0.0-BETA29 (unreleased) |
| 3 | +## 1.0.0-BETA31 |
| 4 | + |
| 5 | +* Added helpers for Attachment syncing. |
| 6 | +* Fix `getNextCrudTransaction()` only returning a single item. |
| 7 | + |
| 8 | +## 1.0.0-BETA30 |
| 9 | + |
| 10 | +* Fix a deadlock when calling `connect()` immediately after opening a database. |
| 11 | + The issue has been introduced in version `1.0.0-BETA29`. |
| 12 | + |
| 13 | +## 1.0.0-BETA29 |
4 | 14 |
|
5 | 15 | * Fix potential race condition between jobs in `connect()` and `disconnect()`.
|
6 |
| -* Report real-time progress information about downloads through `SyncStatus.downloadProgress`. |
7 |
| -* Compose: Add `composeState()` extension method on `SyncStatus`. |
| 16 | +* [JVM Windows] Fixed PowerSync Extension temporary file deletion error on process shutdown. |
| 17 | +* [iOS] Fixed issue where automatic driver migrations would fail with the error: |
| 18 | + |
| 19 | +``` |
| 20 | +Sqlite operation failure database is locked attempted to run migration and failed. closing connection |
| 21 | +``` |
| 22 | + |
| 23 | +* Fix race condition causing data received during uploads not to be applied. |
8 | 24 |
|
9 | 25 | ## 1.0.0-BETA28
|
10 | 26 |
|
11 | 27 | * Update PowerSync SQLite core extension to 0.3.12.
|
12 |
| -* Added queing protection and warnings when connecting multiple PowerSync clients to the same database file. |
13 |
| -* Improved concurrent SQLite connection support accross various platforms. All platforms now use a single write connection and multiple read connections for concurrent read queries. |
14 |
| -* Added the ability to open a SQLite database given a custom `dbDirectory` path. This is currently not supported on iOS due to internal driver restrictions. |
| 28 | +* Added queing protection and warnings when connecting multiple PowerSync clients to the same |
| 29 | + database file. |
| 30 | +* Improved concurrent SQLite connection support accross various platforms. All platforms now use a |
| 31 | + single write connection and multiple read connections for concurrent read queries. |
| 32 | +* Added the ability to open a SQLite database given a custom `dbDirectory` path. This is currently |
| 33 | + not supported on iOS due to internal driver restrictions. |
15 | 34 | * Internaly improved the linking of SQLite for iOS.
|
16 | 35 | * Enabled Full Text Search on iOS platforms.
|
17 | 36 | * Added the ability to update the schema for existing PowerSync clients.
|
18 |
| -* Fixed bug where local only, insert only and view name overrides were not applied for schema tables. |
19 |
| -* The Android SQLite driver now uses the [Xerial JDBC library](https://github.com/xerial/sqlite-jdbc). This removes the requirement for users to add the jitpack Maven repository to their projects. |
| 37 | +* Fixed bug where local only, insert only and view name overrides were not applied for schema |
| 38 | + tables. |
| 39 | +* The Android SQLite driver now uses |
| 40 | + the [Xerial JDBC library](https://github.com/xerial/sqlite-jdbc). This removes the requirement for |
| 41 | + users to add the jitpack Maven repository to their projects. |
| 42 | + |
20 | 43 | ```diff
|
21 | 44 | // settings.gradle.kts example
|
22 | 45 | repositories {
|
|
44 | 67 |
|
45 | 68 | ## 1.0.0-BETA24
|
46 | 69 |
|
47 |
| -* Improve internal handling of watch queries to avoid issues where updates are not being received due to transaction commits occurring after the query is run. |
48 |
| -* Fix issue in JVM build where `columnNames` was throwing an error due to the index of the JDBC driver starting at 1 instead of 0 as in the other drivers/ |
| 70 | +* Improve internal handling of watch queries to avoid issues where updates are not being received |
| 71 | + due to transaction commits occurring after the query is run. |
| 72 | +* Fix issue in JVM build where `columnNames` was throwing an error due to the index of the JDBC |
| 73 | + driver starting at 1 instead of 0 as in the other drivers/ |
49 | 74 | * Throw and not just catch `CancellationExceptions` in `runWrappedSuspending`
|
50 | 75 |
|
51 | 76 | ## 1.0.0-BETA23
|
|
63 | 88 |
|
64 | 89 | ## 1.0.0-BETA20
|
65 | 90 |
|
66 |
| -* Add cursor optional functions: `getStringOptional`, `getLongOptional`, `getDoubleOptional`, `getBooleanOptional` and `getBytesOptional` when using the column name which allow for optional return types |
| 91 | +* Add cursor optional functions: `getStringOptional`, `getLongOptional`, `getDoubleOptional`, |
| 92 | + `getBooleanOptional` and `getBytesOptional` when using the column name which allow for optional |
| 93 | + return types |
67 | 94 | * Throw errors for invalid column on all cursor functions
|
68 |
| -* `getString`, `getLong`, `getBytes`, `getDouble` and `getBoolean` used with the column name will now throw an error for non-null values and expect a non optional return type |
| 95 | +* `getString`, `getLong`, `getBytes`, `getDouble` and `getBoolean` used with the column name will |
| 96 | + now throw an error for non-null values and expect a non optional return type |
69 | 97 |
|
70 | 98 | ## 1.0.0-BETA19
|
71 | 99 |
|
72 | 100 | * Allow cursor to get values by column name e.g. `getStringOptional("id")`
|
73 |
| -* BREAKING CHANGE: If you were using `SqlCursor` from SqlDelight previously for your own custom mapper then you must now change to `SqlCursor` exported by the PowerSync module. |
| 101 | +* BREAKING CHANGE: If you were using `SqlCursor` from SqlDelight previously for your own custom |
| 102 | + mapper then you must now change to `SqlCursor` exported by the PowerSync module. |
74 | 103 |
|
75 | 104 | Previously you would import it like this:
|
76 | 105 |
|
|
86 | 115 |
|
87 | 116 | ## 1.0.0-BETA18
|
88 | 117 |
|
89 |
| -* BREAKING CHANGE: Move from async sqldelight calls to synchronous calls. This will only affect `readTransaction` and `writeTransaction`where the callback function is no longer asynchronous. |
| 118 | +* BREAKING CHANGE: Move from async sqldelight calls to synchronous calls. This will only affect |
| 119 | + `readTransaction` and `writeTransaction`where the callback function is no longer asynchronous. |
90 | 120 |
|
91 | 121 | ## 1.0.0-BETA17
|
92 | 122 |
|
|
95 | 125 | ## 1.0.0-BETA16
|
96 | 126 |
|
97 | 127 | * Add `close` method to database methods
|
98 |
| -* Throw when error is a `CancellationError` and remove invalidation for all errors in `streamingSync` catch. |
| 128 | +* Throw when error is a `CancellationError` and remove invalidation for all errors in |
| 129 | + `streamingSync` catch. |
99 | 130 |
|
100 | 131 | ## 1.0.0-BETA15
|
101 | 132 |
|
|
109 | 140 |
|
110 | 141 | ## 1.0.0-BETA13
|
111 | 142 |
|
112 |
| -* Move iOS database driver to use IO dispatcher which should avoid race conditions and improve performance. |
| 143 | +* Move iOS database driver to use IO dispatcher which should avoid race conditions and improve |
| 144 | + performance. |
113 | 145 |
|
114 | 146 | ## 1.0.0-BETA12
|
115 | 147 |
|
|
126 | 158 | ## 1.0.0-BETA9
|
127 | 159 |
|
128 | 160 | * Re-enable SKIE `SuspendInterop`
|
129 |
| -* Move transaction functions out of `PowerSyncTransactionFactory` to avoid threading issues in Swift SDK |
| 161 | +* Move transaction functions out of `PowerSyncTransactionFactory` to avoid threading issues in Swift |
| 162 | + SDK |
130 | 163 |
|
131 | 164 | ## 1.0.0-BETA8
|
132 | 165 |
|
|
155 | 188 | * Add `waitForFirstSync` function - which resolves after the initial sync is completed
|
156 | 189 | * Upgrade to Kotlin 2.0.20 - should not cause any issues with users who are still on Kotlin 1.9
|
157 | 190 | * Upgrade `powersync-sqlite-core` to 0.3.0 - improves incremental sync performance
|
158 |
| -* Add client sync parameters - which allows you specify sync parameters from the client https://docs.powersync.com/usage/sync-rules/advanced-topics/client-parameters-beta |
| 191 | +* Add client sync parameters - which allows you specify sync parameters from the |
| 192 | + client https://docs.powersync.com/usage/sync-rules/advanced-topics/client-parameters-beta |
| 193 | + |
159 | 194 | ```kotlin
|
160 | 195 | val params = JsonParam.Map(
|
161 |
| - mapOf( |
162 |
| - "name" to JsonParam.String("John Doe"), |
163 |
| - "age" to JsonParam.Number(30), |
164 |
| - "isStudent" to JsonParam.Boolean(false) |
165 |
| - ) |
| 196 | + mapOf( |
| 197 | + "name" to JsonParam.String("John Doe"), |
| 198 | + "age" to JsonParam.Number(30), |
| 199 | + "isStudent" to JsonParam.Boolean(false) |
| 200 | + ) |
166 | 201 | )
|
167 | 202 |
|
168 | 203 | connect(
|
169 |
| -... |
170 |
| - params = params |
| 204 | + ... |
| 205 | +params = params |
171 | 206 | )
|
172 | 207 | ```
|
| 208 | + |
173 | 209 | * Add schema validation when schema is generated
|
174 |
| -* Add warning message if there is a crudItem in the queue that has not yet been synced and after a delay rerun the upload |
| 210 | +* Add warning message if there is a crudItem in the queue that has not yet been synced and after a |
| 211 | + delay rerun the upload |
175 | 212 |
|
176 | 213 | ## 1.0.0-BETA2
|
177 | 214 |
|
178 | 215 | * Publish persistence package
|
179 | 216 |
|
180 | 217 | ## 1.0.0-BETA1
|
181 | 218 |
|
182 |
| -* Improve API by changing from Builder pattern to simply instantiating the database `PowerSyncDatabase` |
| 219 | +* Improve API by changing from Builder pattern to simply instantiating the database |
| 220 | + `PowerSyncDatabase` |
183 | 221 | E.g. `val db = PowerSyncDatabase(factory, schema)`
|
184 | 222 | * Use callback context in transactions
|
185 | 223 | E.g. `db.writeTransaction{ ctx -> ctx.execute(...) }`
|
186 | 224 | * Removed unnecessary expiredAt field
|
187 | 225 | * Added table max column validation as there is a hard limit of 63 columns
|
188 | 226 | * Moved SQLDelight models to a separate module to reduce export size
|
189 |
| -* Replaced default Logger with [Kermit Logger](https://kermit.touchlab.co/) which allows users to more easily use and/or change Logger settings |
| 227 | +* Replaced default Logger with [Kermit Logger](https://kermit.touchlab.co/) which allows users to |
| 228 | + more easily use and/or change Logger settings |
190 | 229 | * Add `retryDelay` and `crudThrottle` options when setting up database connection
|
191 | 230 | * Changed `_viewNameOverride` to `viewNameOverride`
|
0 commit comments