{"record":{"id":"8a290e8dca34bddf","repo":"dbt-labs/dbt-core","slug":"oracle-8a290e","errorCode":null,"errorMessage":"Oracle","messagePattern":"Oracle","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/metadata/get_relation.rs","lineNumber":87,"sourceCode":"            spark_get_relation(adapter, state, ctx, conn, schema, identifier, token)\n        }\n        AdapterType::DuckDB | AdapterType::LakeCompute => duckdb_get_relation(\n            adapter, state, ctx, conn, database, schema, identifier, token,\n        ),\n        AdapterType::Fabric => fabric_get_relation(\n            adapter, state, ctx, conn, database, schema, identifier, token,\n        ),\n        AdapterType::ClickHouse => clickhouse_get_relation(\n            adapter, state, ctx, conn, database, schema, identifier, token,\n        ),\n        AdapterType::Exasol => exasol_get_relation(\n            adapter, state, ctx, conn, database, schema, identifier, token,\n        ),\n        AdapterType::Starburst => todo!(\"Starburst\"),\n        AdapterType::Athena => todo!(\"Athena\"),\n        AdapterType::Trino => todo!(\"Trino\"),\n        AdapterType::Dremio => todo!(\"Dremio\"),\n        AdapterType::Oracle => todo!(\"Oracle\"),\n        AdapterType::Datafusion => todo!(\"Datafusion\"),\n    }\n}\n\n/// Parses an `INFORMATION_SCHEMA.ROUTINES`-shaped result batch into a\n/// [`Relation`].\npub(crate) fn relation_from_routines_batch(\n    adapter: &AdapterImpl,\n    database: &str,\n    schema: &str,\n    identifier: &str,\n    batch: &arrow::record_batch::RecordBatch,\n) -> AdapterResult<Option<Relation>> {\n    if batch.num_rows() == 0 {\n        return Ok(None);\n    }\n\n    let column = batch.column_by_name(\"table_type\").unwrap();","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/metadata/get_relation.rs#L69-L105","documentation":"This is a Rust `todo!()` panic: the `get_relation` dispatcher has `todo!(\"Oracle\")` because Oracle relation lookup is not implemented yet. Any relation resolution with an Oracle adapter panics with the message 'Oracle'. It indicates an incomplete adapter, not a database error.","triggerScenarios":"Calling `get_relation` (public) with AdapterType::Oracle; the arm at crates/dbt-adapter/src/metadata/get_relation.rs:87 executes `todo!(\"Oracle\")`.","commonSituations":"Running dbt against an Oracle Database (on-prem or Autonomous DB) while the Oracle adapter is still stubbed in dbt-adapter; the panic occurs the first time dbt checks whether a relation exists.","solutions":["Switch to an adapter type with implemented metadata lookup until Oracle support lands","Implement oracle_get_relation querying ALL_TAB_COLUMNS/ALL_OBJECTS or the adapter's INFORMATION_SCHEMA bridge and wire it into the match","Pin a dbt-adapter version where the Oracle arm is implemented","Validate adapter capabilities at startup so unimplemented adapters are rejected with a clear message"],"exampleFix":"// before\nAdapterType::Oracle => todo!(\"Oracle\"),\n// after\nAdapterType::Oracle => oracle_get_relation(\n    adapter, state, ctx, conn, database, schema, identifier, token,\n),","handlingStrategy":"validation","validationCode":"if adapter_type == AdapterType::Oracle {\n    return Err(\"Oracle get_relation is unimplemented in this version\".into());\n}","typeGuard":"fn oracle_ready(t: &AdapterType) -> bool { !matches!(t, AdapterType::Oracle) }","tryCatchPattern":"let ok = std::panic::catch_unwind(|| get_relation(...));\nif let Err(_) = ok { return Err(AdapterError::NotImplemented(\"Oracle get_relation\")); }","preventionTips":["Check that your Oracle target's operations are implemented before running dbt","Fail fast at profile validation for unimplemented adapters","Maintain tests covering all enum variants of the get_relation dispatch","Prefer released adapters with implemented metadata APIs"],"tags":["rust","todo-panic","adapter","unimplemented"],"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"}