{"record":{"id":"984e9526425fb858","repo":"dbt-labs/dbt-core","slug":"replaystatement-bind","errorCode":null,"errorMessage":"ReplayStatement::bind","messagePattern":"ReplayStatement::bind","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adbc-record-replay/src/replay.rs","lineNumber":217,"sourceCode":"impl ReplayStatement {\n    pub(crate) fn new(\n        recordings_path: PathBuf,\n        config: SharedConfig,\n        ctx: RecordingContext,\n    ) -> Self {\n        Self {\n            recordings_path,\n            config,\n            ctx,\n            sql: None,\n            recorded_options: BTreeMap::new(),\n        }\n    }\n}\n\nimpl Statement for ReplayStatement {\n    fn bind(&mut self, _batch: RecordBatch) -> AdbcResult<()> {\n        todo!(\"ReplayStatement::bind\")\n    }\n\n    fn bind_stream(&mut self, _reader: Box<dyn RecordBatchReader + Send>) -> AdbcResult<()> {\n        todo!(\"ReplayStatement::bind_stream\")\n    }\n\n    #[allow(deprecated)]\n    fn execute<'a>(&'a mut self) -> AdbcResult<Box<dyn RecordBatchReader + Send + 'a>> {\n        let replay_sql = match &self.sql {\n            Some(sql) => sql,\n            None => \"none\",\n        };\n\n        let path = self.recordings_path.clone();\n        let unique_id = compute_file_name(\n            &path,\n            self.ctx.node_id.as_ref(),\n            Some(replay_sql),","sourceCodeStart":199,"sourceCodeEnd":235,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/adbc-record-replay/src/replay.rs#L199-L235","documentation":"ReplayStatement::bind is unimplemented in the adbc-record-replay crate. The method body is todo!(\"ReplayStatement::bind\"), a deliberate placeholder that panics when reached. The replay driver currently does not support binding Arrow record batches to statements.","triggerScenarios":"Calling Statement::bind with a RecordBatch on a statement obtained from the record-replay ADBC driver.","commonSituations":"Replaying a recorded session whose original query used bound parameters; porting application code that uses bind() to the replay driver; automated replay of parameterized workloads.","solutions":["Avoid bind() in workloads you intend to record and replay; inline parameters into the SQL instead","Implement ReplayStatement::bind to record and replay bind parameters","Capture bound-parameter data in the recording format and apply it during replay","Fall back to a real ADBC driver for statements that require binding"],"exampleFix":"// before\nfn bind(&mut self, _batch: RecordBatch) -> AdbcResult<()> {\n    todo!(\"ReplayStatement::bind\")\n}\n// after\nfn bind(&mut self, _batch: RecordBatch) -> AdbcResult<()> {\n    Err(adbc_core::error::Error::with_message(\n        Status::NotImplemented,\n        \"bind is not supported by the replay driver\".into(),\n    ))\n}","handlingStrategy":"validation","validationCode":"fn replay_supports_bind(stmt: &ReplayStatement) -> bool {\n    false // bind is not implemented in the replay driver\n}","typeGuard":null,"tryCatchPattern":"// avoid todo! panic by feature-checking before use:\nif replay_supports_bind(&stmt) {\n    stmt.bind(batch)?;\n} else {\n    return Err(anyhow!(\"bind unsupported on replay driver\"));\n}","preventionTips":["Do not call bind() on statements from the record-replay driver","Inline parameters into SQL for replayable workloads","Track upstream implementation of ReplayStatement::bind before adopting bind flows"],"tags":["adbc","unimplemented","replay","placeholder"],"backgroundTag":"method-not-implemented","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}