• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

joaoh82 / rust_sqlite / 25655045701
69%

Build:
DEFAULT BRANCH: main
Ran 11 May 2026 06:58AM UTC
Jobs 1
Files 60
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 May 2026 06:54AM UTC coverage: 68.331%. Remained the same
25655045701

push

github

web-flow
feat(sdk): Phase 11.7 SDK propagation of Busy / BusySnapshot (SQLR-22) (#128)

* feat(sdk): Phase 11.7 SDK propagation of Busy / BusySnapshot (SQLR-22)

Surfaces retryable engine errors through the C FFI and every
language SDK so Python / Node / Go callers can actually write
BEGIN CONCURRENT retry loops with idiomatic per-language
patterns. Picked ahead of plan-doc 11.5 (checkpoint integration)
for the same reason 11.5 / 11.6 jumped the queue — durability
already works through the legacy save_database mirror, but
SDK users hitting BEGIN CONCURRENT had no way to distinguish
retryable errors from real failures.

Plan-doc 11.8 ("SDK + REPL propagation") split into two:
- FFI/SDK error propagation ships here as roadmap 11.7
- Multi-handle SDK shape + REPL .spawn → roadmap 11.10

C FFI:
- new SqlriteStatus::Busy = 5 + BusySnapshot = 6 codes
- SqlriteStatus::is_retryable() covers both
- new status_of_sqlrite() mapper routes engine-typed errors to
  the dedicated codes; generic status_of() keeps mapping every
  error to Error for non-engine result types
- sqlrite_execute switched to the engine-aware mapper
- header regenerated via build.rs

Python SDK:
- new sqlrite.BusyError + sqlrite.BusySnapshotError pyo3
  exception classes, both inheriting from sqlrite.SQLRiteError
- new map_engine_err() helper inspects the engine variant and
  raises the matching exception class
- all engine-typed call sites (open / execute / prepare /
  query / rows.next) routed through it
- existing `except sqlrite.SQLRiteError` blocks still catch
  both; retry helpers branch with `except sqlrite.BusyError`

Node.js SDK:
- new exported ErrorKind string enum ('Busy' | 'BusySnapshot'
  | 'Other') and errorKind(message) classifier function
- engine's thiserror Display already prefixes the error
  message with 'Busy: ' / 'BusySnapshot: '; classifier matches
  the prefix (longest-first to avoid mis-classifying snapshot
  errors)
- JS pattern: try { ... } catch (err) {
    if (errorKind(er... (continued)

0 of 7 new or added lines in 1 file covered. (0.0%)

10577 of 15479 relevant lines covered (68.33%)

1.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
0.0
0.0% sdk/python/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 25655045701.1 11 May 2026 06:58AM UTC 60
68.33
GitHub Action Run
Source Files on build 25655045701
  • Tree
  • List 60
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 358d9951 on github
  • Prev Build on main (#25652227157)
  • Next Build on main (#25655926923)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc