{"record":{"id":"9b3a2c2ee9d94063","repo":"dbt-labs/dbt-core","slug":"update-tblproperties-for-uniform-iceberg-is-only-s","errorCode":null,"errorMessage":"update_tblproperties_for_uniform_iceberg is only supported in Databricks","messagePattern":"update_tblproperties_for_uniform_iceberg is only supported in Databricks","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/adapter/mod.rs","lineNumber":2867,"sourceCode":"    /// Add UniForm Iceberg table properties.\n    ///\n    /// https://github.com/databricks/dbt-databricks/blob/bfcb5c7c7714e97e67023119f674d2938b04acb0/dbt/adapters/databricks/impl.py#L280\n    ///\n    /// ```python\n    /// def update_tblproperties_for_uniform_iceberg(\n    ///     self, config: BaseConfig, tblproperties: Optional[dict[str, str]] = None\n    /// )  -> dict[str, str]\n    /// ```\n    #[tracing::instrument(skip(self, state), level = \"trace\")]\n    pub fn update_tblproperties_for_uniform_iceberg(\n        &self,\n        state: &State,\n        args: &[Value],\n    ) -> Result<Value, minijinja::Error> {\n        match &self.inner {\n            Typed { adapter, .. } => {\n                if adapter.adapter_type() != AdapterType::Databricks {\n                    unimplemented!(\n                        \"update_tblproperties_for_uniform_iceberg is only supported in Databricks\"\n                    )\n                }\n\n                let iter = ArgsIter::new(\n                    \"update_tblproperties_for_uniform_iceberg\",\n                    &[\"config\"],\n                    args,\n                );\n                let config_val = iter.next_arg::<&Value>()?;\n                let tblproperties_val = iter.next_kwarg::<Option<Value>>(\"tblproperties\")?;\n                iter.finish()?;\n\n                let model_val = config_val.get_attr(\"model\").map_err(|e| {\n                    minijinja::Error::new(\n                        minijinja::ErrorKind::InvalidArgument,\n                        format!(\n                            \"update_tblproperties_for_uniform_iceberg: config.model is required: {e}\"","sourceCodeStart":2849,"sourceCodeEnd":2885,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/adapter/mod.rs#L2849-L2885","documentation":"The `update_tblproperties_for_uniform_iceberg` Jinja adapter method is implemented only for the Databricks adapter; when the inner typed adapter is any other type, the method panics with this `unimplemented!` message. Uniform Iceberg table-property management is a Databricks-specific feature, so the generic Adapter wrapper refuses to run it elsewhere. It is a capability gate, not a failure of your arguments.","triggerScenarios":"Calling `adapter.update_tblproperties_for_uniform_iceberg(...)` from a macro/model while the active adapter is not Databricks (Snowflake, BigQuery, DuckDB, etc.).","commonSituations":"Running Databricks-specific models/materializations (that touch tblproperties for Uniform/Iceberg) against another warehouse; a shared package whose macros assume Databricks; profile misconfiguration pointing at the wrong adapter.","solutions":["Run this code path only on Databricks; add an `adapter.type() == 'databricks'` guard around the call.","Check that your profile/target selects the Databricks adapter when the models depend on Databricks features.","For other platforms, use platform-native mechanisms to manage table properties instead of this Databricks-only helper."],"exampleFix":"// before\n{% do adapter.update_tblproperties_for_uniform_iceberg(config) %}\n// after\n{% if adapter.type() == 'databricks' %}\n  {% do adapter.update_tblproperties_for_uniform_iceberg(config) %}\n{% endif %}","handlingStrategy":"type-guard","validationCode":"// Jinja\n{% set is_databricks = adapter.type() == 'databricks' %}","typeGuard":"fn is_databricks(a: &Adapter) -> bool {\n    a.adapter_type() == AdapterType::Databricks\n}","tryCatchPattern":"// Guard before the call; unimplemented! is not recoverable\n{% if adapter.type() == 'databricks' %}\n  {% do adapter.update_tblproperties_for_uniform_iceberg(config) %}\n{% endif %}","preventionTips":["Keep Databricks Uniform logic in databricks__ dispatched macros","Validate the target adapter in CI before running Databricks-specific models","Document adapter requirements in packages exposing this helper"],"tags":["unimplemented","databricks","iceberg","adapter"],"backgroundTag":"operation-not-supported","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"}