{"record":{"id":"f3d313d34a607434","repo":"dbt-labs/dbt-core","slug":"starburst-f3d313","errorCode":null,"errorMessage":"Starburst","messagePattern":"Starburst","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/column/column_builder.rs","lineNumber":36,"sourceCode":"impl ColumnBuilder {\n    pub fn new(adapter_type: AdapterType) -> Self {\n        Self { adapter_type }\n    }\n\n    pub fn build(&self, field: &FieldRef, type_ops: &dyn TypeOps) -> AdapterResult<Column> {\n        use AdapterType::*;\n        match self.adapter_type {\n            Snowflake => Ok(Self::build_snowflake(field, type_ops)),\n            Bigquery => Ok(Self::build_bigquery(field, type_ops)),\n            Databricks | Spark => Ok(Self::build_databricks(field, type_ops)),\n            Redshift => Ok(Self::build_redshift(field, type_ops)),\n            Postgres | Salesforce | DuckDB | LakeCompute => {\n                Ok(Self::build_postgres_like(field, type_ops))\n            }\n            Fabric => Ok(Self::build_fabric(field, type_ops)),\n            ClickHouse => Self::build_clickhouse(field, type_ops),\n            Exasol => Ok(Self::build_exasol(field, type_ops)),\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    }\n\n    pub fn build_from_parts(\n        &self,\n        name: String,\n        dtype: String,\n        char_size: Option<u32>,\n        numeric_precision: Option<u64>,\n        numeric_scale: Option<u64>,\n        mode: Option<BigqueryColumnMode>,\n    ) -> Column {\n        use AdapterType::*;","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/column/column_builder.rs#L18-L54","documentation":"A `todo!()` panic in `ColumnBuilder::build` (crates/dbt-adapter/src/column/column_builder.rs:36). The method maps an adapter type to a column-building strategy, and the Starburst arm was never implemented. Building column metadata from an Arrow field/type_ops while using the Starburst adapter panics with the message 'Starburst'.","triggerScenarios":"Any call path into `ColumnBuilder::build` — schema_to_columns, get_column_schema_from_query, update_node_columns — while the adapter type is Starburst. E.g. catalog/query-result schema introspection on a Starburst connection.","commonSituations":"Running `dbt docs generate` or query-result column extraction against a Starburst adapter before the builder arm was added. Developers enabling the Starburst adapter for testing hit this on the first schema query.","solutions":["Use a currently supported adapter (Postgres/DuckDB/LakeCompute-like, Fabric, ClickHouse, or Exasol) for schema-to-column workflows.","Implement the Starburst arm by delegating to `build_postgres_like` (Trino/Starburst types are PostgreSQL-like) in column_builder.rs:36.","Gate Starburst usage behind a feature flag until the builder is implemented so the failure is a clean error, not a panic."],"exampleFix":"// before\nStarburst => todo!(\"Starburst\"),\n// after\nStarburst | Trino => Ok(Self::build_postgres_like(field, type_ops)),","handlingStrategy":"type-guard","validationCode":"const SUPPORTED: &[AdapterType] = &[AdapterType::Postgres, AdapterType::Salesforce, AdapterType::DuckDB, AdapterType::LakeCompute, AdapterType::Fabric, AdapterType::ClickHouse, AdapterType::Exasol];\nif !SUPPORTED.contains(&adapter) {\n    return Err(anyhow!(\"column building not implemented for {:?}\", adapter));\n}","typeGuard":"fn build_supported(t: AdapterType) -> bool {\n    matches!(t, Postgres | Salesforce | DuckDB | LakeCompute | Fabric | ClickHouse | Exasol)\n}","tryCatchPattern":"let res = std::panic::catch_unwind(AssertUnwindSafe(|| ColumnBuilder::new(adapter).build(field, type_ops)));\nif res.is_err() { eprintln!(\"column builder unimplemented for this adapter\"); }","preventionTips":["Verify the adapter arm exists in ColumnBuilder::build before enabling a new adapter profile","Share build_postgres_like for Trino-family adapters (Starburst/Trino/Athena) when contributing support","Add exhaustiveness tests that iterate all AdapterType variants through build","Prefer a typed unsupported-adapter error over todo!() in new adapter code"],"tags":["rust","adapter","todo-panic","starburst","column-builder"],"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"}