- Added attachment sync helpers
- Added support for cancellations in watched queries
- Fix deadlock when
connect()
is called immediately after opening a database.
- Added the ability to specify a custom logging implementation
let db = PowerSyncDatabase(
schema: Schema(
tables: [
Table(
name: "users",
columns: [
.text("name"),
.text("email")
]
)
]
),
logger: DefaultLogger(minSeverity: .debug)
)
- added
.close()
method on PowerSyncDatabaseProtocol
- Update
powersync-kotlin
dependency to version 1.0.0-BETA29
, which fixes these issues:
- Fix potential race condition between jobs in
connect()
and disconnect()
.
- Fix race condition causing data received during uploads not to be applied.
- Fixed issue where automatic driver migrations would fail with the error:
Sqlite operation failure database is locked attempted to run migration and failed. closing connection
- Update PowerSync SQLite core extension to 0.3.12.
- Added queuing protection and warnings when connecting multiple PowerSync clients to the same database file.
- Improved concurrent SQLite connection support. A single write connection and multiple read connections are used for concurrent read queries.
- Internally improved the linking of SQLite.
- Enabled Full Text Search support.
- Added the ability to update the schema for existing PowerSync clients.
- Fixed bug where local only, insert only and view name overrides were not applied for schema tables.
- Improved watch query internals. Added the ability to throttle watched queries.
- Added support for sync bucket priorities.
- Fixed an issue where throwing exceptions in the query
mapper
could cause a runtime crash.
- Internally improved type casting.
- BREAKING CHANGE:
watch
queries are now throwable and therefore will need to be accompanied by a try
e.g.
- BREAKING CHANGE:
transaction
functions are now throwable and therefore will need to be accompanied by a try
e.g.
try await database.writeTransaction { transaction in
try transaction.execute(...)
}
- Allow
execute
errors to be handled
userId
is now set to nil
by default and therefore it is no longer required to be set to nil
when instantiating PowerSyncCredentials
and can therefore be left out.
- Implement improvements to errors originating in Kotlin so that they can be handled in Swift
- Improve
__fetchCredentials
to log the error but not cause an app crash on error
- Allow cursor to use column name to get value by including the following functions that accept a column name parameter:
getBoolean
,getBooleanOptional
,getString
,getStringOptional
, getLong
,getLongOptional
, getDouble
,getDoubleOptional
- BREAKING CHANGE: This should not affect anyone but made
KotlinPowerSyncCredentials
, KotlinPowerSyncDatabase
and KotlinPowerSyncBackendConnector
private as these should never have been public.
- BREAKING CHANGE: Update underlying powersync-kotlin package to BETA18.0 which requires transactions to become synchronous as opposed to asynchronous.
try await database.writeTransaction { transaction in
try await transaction.execute(
sql: "INSERT INTO users (id, name, email) VALUES (?, ?, ?)",
parameters: ["1", "Test User", "[email protected]"]
)
}
to
try await database.writeTransaction { transaction in
transaction.execute( // <- This has become synchronous
sql: "INSERT INTO users (id, name, email) VALUES (?, ?, ?)",
parameters: ["1", "Test User", "[email protected]"]
)
}
- Upgrade PowerSyncSqliteCore to 0.3.8