pub struct StatementDurationTimeout { /* private fields */ }Expand description
A statement-DURATION timeout that rivet itself raised — distinct from a driver-native timeout that carries a structured code (PG 57014, MySQL 3024).
The MSSQL engine has no server-side statement-duration SET, so rivet
enforces tuning.statement_timeout_s client-side and raises this when the
budget is exceeded (see mssql). Before this type the retry classifier’s
permanence hinged on substring-matching rivet’s OWN prose (“statement
timeout after …”); a reworded message would silently flip the error back to
transient, and the identical query would be retried until it burned the
budget N times (measured: 3×300 s = 20 min for 0 rows). Carrying a typed
marker means [crate::pipeline::retry::classify_error] downcasts the TYPE,
so permanence survives any change to the human-facing wording. The string
branches in the classifier remain a fallback for genuinely driver-native
timeout messages we do not control.
Implementations§
Trait Implementations§
Source§impl Debug for StatementDurationTimeout
impl Debug for StatementDurationTimeout
Source§impl Display for StatementDurationTimeout
impl Display for StatementDurationTimeout
Source§impl Error for StatementDurationTimeout
impl Error for StatementDurationTimeout
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()