dbt-labs/dbt-core · error
ReplayStatement::cancel
Error message
ReplayStatement::cancel
What it means
todo!() stub: ReplayStatement::cancel (ADBC statement cancellation) is unimplemented in the record-replay backend, so a driver-level cancel request panics instead of aborting an in-flight replayed query.
Solutions
- Implement cancel as a no-op returning Ok(()) — replayed execution has nothing to cancel
- Track a cancelled flag and check it between replay steps
- Return ADBC NOT_IMPLEMENTED instead of panicking
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/adbc-record-replay/src/replay.rs:357 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07).
Data as JSON: /api/errors/3fc5c2b2fe2f721d.
Report an issue: GitHub.
Appendix: source
Thrown at crates/adbc-record-replay/src/replay.rs:357
fn get_parameter_schema(&self) -> AdbcResult<Schema> {
todo!("ReplayStatement::get_parameter_schema")
}
fn prepare(&mut self) -> AdbcResult<()> {
todo!("ReplayStatement::prepare")
}
fn set_sql_query(&mut self, sql: &str) -> AdbcResult<()> {
self.sql = Some(sql.to_string());
Ok(())
}
fn set_substrait_plan(&mut self, _plan: &[u8]) -> AdbcResult<()> {
unimplemented!("ReplayStatement::set_substrait_plan")
}
fn cancel(&mut self) -> AdbcResult<()> {
todo!("ReplayStatement::cancel")
}
fn set_option(&mut self, key: OptionStatement, value: OptionValue) -> AdbcResult<()> {
if let OptionStatement::Other(ref name) = key {
self.ctx.absorb_option(name, &value);
}
Ok(())
}
fn get_option_string(&self, key: OptionStatement) -> AdbcResult<String> {
// Serve back what the live driver reported for this option when the
// recording was made. Anything not captured keeps the historical
// behavior of reporting an empty value rather than an error, so replays
// that never depended on an option are unaffected.
if let OptionStatement::Other(ref name) = key
&& let Some(value) = self.recorded_options.get(name)
{
return Ok(value.clone());View on GitHub (pinned to 0267ce9170)