{"record":{"id":"1f3b945200296373","repo":"dbt-labs/dbt-core","slug":"replaystatement-execute-schema","errorCode":null,"errorMessage":"ReplayStatement::execute_schema","messagePattern":"ReplayStatement::execute_schema","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adbc-record-replay/src/replay.rs","lineNumber":332,"sourceCode":"                }\n\n                if let Some(msg) = entry.error {\n                    return Err(AdbcError::with_message_and_status(\n                        msg,\n                        AdbcStatus::Internal,\n                    ));\n                }\n\n                self.recorded_options = entry.options;\n\n                Ok(None)\n            }\n            StorageType::FileArrowIpc | StorageType::FileParquet => Ok(None),\n        }\n    }\n\n    fn execute_schema(&mut self) -> AdbcResult<Schema> {\n        todo!(\"ReplayStatement::execute_schema\")\n    }\n\n    fn execute_partitions(&mut self) -> AdbcResult<adbc_core::PartitionedResult> {\n        todo!(\"ReplayStatement::execute_partitions\")\n    }\n\n    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    }","sourceCodeStart":314,"sourceCodeEnd":350,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/adbc-record-replay/src/replay.rs#L314-L350","documentation":"ReplayStatement::execute_schema is unimplemented in the adbc-record-replay crate. The todo!() placeholder panics when a caller asks the replay statement for its result schema without executing. Schema inference from recorded data is not yet supported.","triggerScenarios":"Calling Statement::execute_schema on a statement from the record-replay driver.","commonSituations":"Client code that inspects result schemas before execution (e.g., for column mapping); frameworks that proactively call execute_schema; metadata-driven pipelines run against a replay database.","solutions":["Execute the statement (execute/execute_update) and read the schema from its results instead","Implement execute_schema by replaying the recorded Arrow schema from the capture file","Return a proper Status::NotImplemented error instead of panicking","Perform schema inspection against the real driver, not the replay one"],"exampleFix":"// before\nfn execute_schema(&mut self) -> AdbcResult<Schema> {\n    todo!(\"ReplayStatement::execute_schema\")\n}\n// after\nfn execute_schema(&mut self) -> AdbcResult<Schema> {\n    self.recorded_schema().ok_or_else(|| {\n        adbc_core::error::Error::with_message(\n            Status::NotImplemented,\n            \"execute_schema is not supported by the replay driver\".into(),\n        )\n    })\n}","handlingStrategy":"fallback","validationCode":"fn replay_supports_execute_schema(stmt: &ReplayStatement) -> bool {\n    false // execute_schema is not implemented in the replay driver\n}","typeGuard":null,"tryCatchPattern":"let schema = if replay_supports_execute_schema(&stmt) {\n    stmt.execute_schema()?\n} else {\n    stmt.execute()?.schema().clone() // fallback: execute and read schema\n};","preventionTips":["Derive schema from executed results during replay","Keep schema introspection on the real driver only","Contribute execute_schema support to the replay driver"],"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"}