Skip to content

Commit 0acfd2d

Browse files
document execute limitation
1 parent b894538 commit 0acfd2d

File tree

2 files changed

+2
-6
lines changed

2 files changed

+2
-6
lines changed

packages/capacitor/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ const db = new PowerSyncDatabase({
6969

7070
- Encryption for native mobile platforms is not yet supported.
7171
- Multiple tab support is not available for native Android and iOS targets.
72+
- The Capacitor Community SQLite APIs differ for execution and query operations. The `.execute()` method cannot be used for `SELECT` queries or `RETURNING` queries.
7273

7374
## Examples
7475

packages/capacitor/src/adapter/CapacitorSQLiteAdapter.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ export class CapacitorSQLiteAdapter extends BaseObserver<DBAdapterListener> impl
8181

8282
protected generateLockContext(db: SQLiteDBConnection): LockContext {
8383
const execute = async (query: string, params: any[] = []): Promise<QueryResult> => {
84-
// TODO handle this better. This driver does not support returning results
85-
// for execute methods
84+
// This driver does not support returning results for execute methods
8685
if (query.toLowerCase().trim().startsWith('select')) {
8786
let result = await db.query(query, params);
8887
let arrayResult = result.values ?? [];
@@ -96,7 +95,6 @@ export class CapacitorSQLiteAdapter extends BaseObserver<DBAdapterListener> impl
9695
};
9796
} else {
9897
let result = await db.executeSet([{ statement: query, values: params }], false);
99-
// TODO document execute caveat
10098
return {
10199
insertId: result.changes?.lastId,
102100
rowsAffected: result.changes?.changes ?? 0,
@@ -179,9 +177,6 @@ export class CapacitorSQLiteAdapter extends BaseObserver<DBAdapterListener> impl
179177
});
180178
}
181179

182-
/**
183-
* We're not using separate read/write locks here because we can't implement connection pools on top of SQL.js.
184-
*/
185180
readLock<T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T> {
186181
return this.lock.acquire('read_lock', async () => {
187182
await this.initializedPromise;

0 commit comments

Comments
 (0)