Reset cached statements after using them #90
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes two instances of a pending statement being busy after a
powersycnc_control
invocation, which would make some database operations (like a vacuum) impossible.StorageAdapter.now
, reset the statement after running it.StorageAdapter.local_progress
to not use streaming iterators (they're tricky here because closing them can't return an error code). Instead, we make the prepared statement public and add a method to step and interpret typed results.To test this across platforms, I've adopted theActually I'll probably have to revert that because it means we can't test with a stable SDK. Not sure how we'd test regressions then.sqlite3_native_assets
package in tests. It relies on native assets to compile and link SQLite instead of using the one from the operating system. This allows us to enable the statement vtab, used in tests to assert no statements remain busy in the end.