{"record":{"id":"edb5692d62e76db6","repo":"dbt-labs/dbt-core","slug":"oracle-edb569","errorCode":null,"errorMessage":"Oracle","messagePattern":"Oracle","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/relation/factory.rs","lineNumber":31,"sourceCode":"pub fn create_static_relation(\n    adapter_type: AdapterType,\n    quoting: ResolvedQuoting,\n) -> Option<Value> {\n    use AdapterType::*;\n    let result = match adapter_type {\n        Snowflake | Databricks | Spark | Fabric | DuckDB | LakeCompute | Exasol | Postgres\n        | Redshift | Salesforce | Bigquery | ClickHouse => {\n            let relation_type = RelationStatic {\n                adapter_type,\n                quoting,\n            };\n            StaticBaseRelationObject::new(Arc::new(relation_type))\n        }\n        Starburst => todo!(\"Starburst\"),\n        Athena => todo!(\"Athena\"),\n        Trino => todo!(\"Trino\"),\n        Dremio => todo!(\"Dremio\"),\n        Oracle => todo!(\"Oracle\"),\n        Datafusion => todo!(\"Datafusion\"),\n    };\n    Some(Value::from_object(result))\n}\n","sourceCodeStart":13,"sourceCodeEnd":36,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/relation/factory.rs#L13-L36","documentation":"This is a Rust `todo!()` panic from `create_static_relation` in crates/dbt-adapter/src/relation/factory.rs:31. The `Oracle` match arm is an unimplemented placeholder, so a call resolving to `AdapterType::Oracle` panics with the message 'Oracle'. The library raises it as a deliberate marker that Oracle static relation creation is not implemented.","triggerScenarios":"Calling `create_static_relation` (directly, via `get_value`/`adapter_api_value`, or via the static-relation quote-policy tests) with `adapter_type == AdapterType::Oracle`.","commonSituations":"An Oracle-profiled dbt run where jinja code calls `api.Relation.create` through the static factory; a test matrix over all adapter types; wiring an Oracle adapter integration before completing the match arm.","solutions":["Implement the `Oracle` arm in `create_static_relation`, building the Oracle-specific `RelationStatic`/`StaticBaseRelationObject`","Reject or fall back for `AdapterType::Oracle` at call sites until the arm is implemented","Use an adapter with a complete factory arm while Oracle support is pending"],"exampleFix":"// before\nOracle => todo!(\"Oracle\"),\n// after\nOracle => {\n    let relation_type = RelationStatic { adapter_type, quoting };\n    StaticBaseRelationObject::new(Arc::new(relation_type))\n}","handlingStrategy":"validation","validationCode":"if matches!(adapter_type, AdapterType::Oracle) {\n    return Err(\"create_static_relation is not implemented for Oracle\".into());\n}","typeGuard":"fn static_relation_supported(t: AdapterType) -> bool {\n    !matches!(t, AdapterType::Oracle | AdapterType::Starburst | AdapterType::Athena | AdapterType::Trino | AdapterType::Dremio | AdapterType::Datafusion)\n}","tryCatchPattern":"match std::panic::catch_unwind(|| create_static_relation(adapter_type)) {\n    Ok(v) => v,\n    Err(_) => return Err(\"create_static_relation unimplemented for Oracle\"),\n}","preventionTips":["Confirm the Oracle arm is implemented before exercising static relation creation on Oracle","Use explicit unsupported-adapter errors for unported adapters instead of todo!()","Parameterize adapter tests over supported variants only until all arms exist"],"tags":["rust","panic","unimplemented","adapter","oracle"],"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"}