{"record":{"id":"b138253d6371dccb","repo":"dbt-labs/dbt-core","slug":"not-yet-implemented","errorCode":null,"errorMessage":"not yet implemented","messagePattern":"not yet implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/sql_types.rs","lineNumber":556,"sourceCode":"            metadata.insert(\n                ARROW_FIELD_SNOWFLAKE_FIELD_WIDTH_METADATA_KEY.to_string(),\n                max_len.to_string(),\n            );\n        }\n        _ => {}\n    }\n\n    let field = field.with_metadata(metadata);\n\n    Ok(field)\n}\n\npub const fn get_field_sql_type_metadata_key(adapter_type: AdapterType) -> &'static str {\n    match adapter_type {\n        AdapterType::Bigquery => BIGQUERY_METADATA_SQL_TYPE_KEY,\n        AdapterType::Redshift => REDSHIFT_METADATA_SQL_TYPE_KEY,\n        AdapterType::Snowflake => SNOWFLAKE_METADATA_SQL_TYPE_KEY,\n        AdapterType::Databricks => todo!(),\n        AdapterType::Postgres => todo!(),\n        AdapterType::Salesforce => todo!(),\n        AdapterType::Spark => todo!(),\n        AdapterType::DuckDB | AdapterType::LakeCompute => todo!(),\n        AdapterType::Fabric => FABRIC_METADATA_SQL_TYPE_KEY,\n        AdapterType::ClickHouse => CLICKHOUSE_METADATA_SQL_TYPE_KEY,\n        AdapterType::Exasol => \"DATA_TYPE\",\n        AdapterType::Starburst => todo!(),\n        AdapterType::Athena => todo!(),\n        AdapterType::Trino => todo!(),\n        AdapterType::Dremio => todo!(),\n        AdapterType::Oracle => todo!(),\n        AdapterType::Datafusion => todo!(),\n    }\n}\n\npub fn original_type_string<'a>(\n    adapter_type: AdapterType,","sourceCodeStart":538,"sourceCodeEnd":574,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/sql_types.rs#L538-L574","documentation":"This is a Rust `todo!()` panic from `get_field_sql_type_metadata_key` in crates/dbt-adapter/src/sql_types.rs:556. The function maps an `AdapterType` to the metadata column key used to read field SQL types (e.g. `BIGQUERY_METADATA_SQL_TYPE_KEY`); the `Databricks` arm was left as a placeholder, so it panics with 'not yet implemented'. It marks Databricks metadata-key mapping as unfinished.","triggerScenarios":"Calling `get_field_sql_type_metadata_key(AdapterType::Databricks)`, which happens via `field_to_string` when serializing a field's SQL type for a Databricks adapter during column-type rendering.","commonSituations":"Rendering a Databricks model's schema/column types (e.g. building DDL or a `describe` result) and hitting `field_to_string`; a developer adding Databricks support who has not yet defined its metadata SQL-type key.","solutions":["Implement the `Databricks` arm, returning the correct metadata column key constant (Databricks/Spark SQL typically uses `data_type`)","Add a compile/test-time guard so Databricks column rendering fails fast with a descriptive error instead of a raw panic","Use an adapter whose metadata key is implemented while rendering fields, or extend `field_to_string` to handle Databricks explicitly"],"exampleFix":"// before\nAdapterType::Databricks => todo!(),\n// after\nAdapterType::Databricks => \"DATA_TYPE\",","handlingStrategy":"validation","validationCode":"fn metadata_key_supported(t: AdapterType) -> bool {\n    !matches!(t, AdapterType::Databricks)\n}\nif !metadata_key_supported(adapter_type) {\n    return Err(format!(\"no metadata sql type key defined for {adapter_type:?}\"));\n}","typeGuard":"fn metadata_key_supported(t: AdapterType) -> bool {\n    matches!(t, AdapterType::Bigquery | AdapterType::Redshift | AdapterType::Snowflake | AdapterType::Fabric | AdapterType::ClickHouse | AdapterType::Exasol)\n}","tryCatchPattern":"match std::panic::catch_unwind(|| get_field_sql_type_metadata_key(adapter_type)) {\n    Ok(k) => k,\n    Err(_) => return Err(\"metadata sql type key unimplemented for this adapter\"),\n}","preventionTips":["Check which adapters have metadata keys in sql_types.rs before rendering fields via field_to_string","Define the Databricks key constant when porting the adapter rather than leaving todo!()","Add a unit test iterating all AdapterType variants against get_field_sql_type_metadata_key"],"tags":["rust","panic","unimplemented","sql-types","databricks"],"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"}