We have so many cursor types that it will be unbearable to properly make
all of them work. Let's simplify this and only focus on lazy cursor
which in the future will load from database in case we need it.
Closes#2333
We have so many cursor types that it will be unbearable to properly make
all of them work. Let's simplify this and only focus on lazy cursor
which in the future will load from database in case we need it.
Various improvements:
- Make promise API the default for `@tursodatabase/turso`
- Add a compatibility test suite for database, serverless, and better-
sqlite3
- Improve serverless driver a bit to be more compatible.
Closes#2322
This PR introduce `turso-sync` package which will provide additional
sync features build on top of the `turso` and `turso-core` packages.
In this PR `turso-sync` introduces simple `DatabaseTape` wrapper which
allows to extract operations from CDC table and apply them (potentially,
to completely different database).
Closes#2306
We need to use sequence requests to handle multiple SQL statements for exec():
```
DatabaseError {
message: 'SQL string contains more than one statement',
}
```
Changes a couple of function signatures to return `Completion`. Also, I
changed `Completion` to be internally `Arc` to abstract the `Arc`
implementation detail, and to be able to attach a `#[must_use]` to the
`Completion` struct, so that cargo check can show us where we are not
tracking completions in the code. I also attached a `#[must_use]` to
`IOResult` so that we can see the places that we are not propagating or
waiting for I/O, demonstrating locations where functions should be
reentrant and are not.
Also, while we are with this refactor in progress I want to relax the
Clippy CI lint on unused_variables.
Closes#2309