{"record":{"id":"3fc5c2b2fe2f721d","repo":"dbt-labs/dbt-core","slug":"replaystatement-cancel","errorCode":null,"errorMessage":"ReplayStatement::cancel","messagePattern":"ReplayStatement::cancel","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adbc-record-replay/src/replay.rs","lineNumber":357,"sourceCode":"    fn get_parameter_schema(&self) -> AdbcResult<Schema> {\n        todo!(\"ReplayStatement::get_parameter_schema\")\n    }\n\n    fn prepare(&mut self) -> AdbcResult<()> {\n        todo!(\"ReplayStatement::prepare\")\n    }\n\n    fn set_sql_query(&mut self, sql: &str) -> AdbcResult<()> {\n        self.sql = Some(sql.to_string());\n        Ok(())\n    }\n\n    fn set_substrait_plan(&mut self, _plan: &[u8]) -> AdbcResult<()> {\n        unimplemented!(\"ReplayStatement::set_substrait_plan\")\n    }\n\n    fn cancel(&mut self) -> AdbcResult<()> {\n        todo!(\"ReplayStatement::cancel\")\n    }\n\n    fn set_option(&mut self, key: OptionStatement, value: OptionValue) -> AdbcResult<()> {\n        if let OptionStatement::Other(ref name) = key {\n            self.ctx.absorb_option(name, &value);\n        }\n        Ok(())\n    }\n\n    fn get_option_string(&self, key: OptionStatement) -> AdbcResult<String> {\n        // Serve back what the live driver reported for this option when the\n        // recording was made. Anything not captured keeps the historical\n        // behavior of reporting an empty value rather than an error, so replays\n        // that never depended on an option are unaffected.\n        if let OptionStatement::Other(ref name) = key\n            && let Some(value) = self.recorded_options.get(name)\n        {\n            return Ok(value.clone());","sourceCodeStart":339,"sourceCodeEnd":375,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/adbc-record-replay/src/replay.rs#L339-L375","documentation":"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.","triggerScenarios":"Thrown at crates/adbc-record-replay/src/replay.rs:357 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}