Skip to content

Commit 18a0eee

Browse files
Document the connect() timeout split and safety caps
stdlib's timeout is the busy-wait budget; here timeout is a per-RPC-phase deadline and busy_timeout is the SQLITE_BUSY budget, which silently trips up ports from sqlite3. Note the distinction plus the message/continuation/row safety caps and trust_server_heartbeat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 2d8412f commit 18a0eee

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

docs/differences-from-sqlite3.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ covers the differences you are most likely to notice when porting code.
2222
SQLite's legacy unenforced behavior.
2323
- **SERIALIZABLE isolation only.** Every statement is ordered by Raft;
2424
weaker isolation levels are not exposed.
25+
- **`connect()` timeouts differ from stdlib.** stdlib's `timeout` is the
26+
busy (lock-wait) budget; here `timeout` is a per-RPC-phase deadline and
27+
the busy budget is the separate `busy_timeout` argument. `connect()` also
28+
exposes safety caps — `max_message_size`, `max_continuation_frames`,
29+
`max_total_rows` — and `trust_server_heartbeat`.
2530
- **Result sets are fully materialized at `execute()` time.** Stdlib streams
2631
rows lazily from the C engine; dqlite drains every continuation frame into
2732
the cursor's in-memory buffer before `execute()` returns, and `fetchone()`

0 commit comments

Comments
 (0)