v4.5 cooperative cancellation token. A long-running SELECT /
UPDATE / DELETE checks is_cancelled at row-loop checkpoints
and bails with EngineError::Cancelled. The host
(spg-server) creates an AtomicBool per query, spawns a
watchdog thread that sets it after SPG_QUERY_TIMEOUT_MS,
and passes it via execute_with_cancel / execute_readonly_with_cancel.
CancelToken::none() is a no-op — used by the legacy execute
and execute_readonly entry points so existing callers don’t
change.
v4.41.1 opaque transaction handle. Returned by Engine::alloc_tx_id,
threaded through Engine::execute_in so dispatch can identify which
in-flight TX a statement belongs to. IMPLICIT_TX is the reserved
slot every legacy caller — engine self-tests, spg-cli, spg-embedded,
startup replay — implicitly uses through the unchanged
Engine::execute(sql) API. v4.41.1 keeps at most one active slot at
runtime (dispatch holds engine.write() across the wrap, same as
v4.34); the map shape is here to let v4.42 turn on N in-flight
implicit TXs without reshuffling the engine internals.