diff --git a/CHANGELOG.md b/CHANGELOG.md index ac2f6794..396df53e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ - Drop support for Python 3.8 ([713](https://github.com/databricks/dbt-databricks/pull/713)) - Upgrade databricks-sql-connector dependency to 3.5.0 ([833](https://github.com/databricks/dbt-databricks/pull/833)) - Prepare for python typing deprecations ([837](https://github.com/databricks/dbt-databricks/pull/837)) +- Fix behavior flag use in init of DatabricksAdapter (thanks @VersusFacit!) ([836](https://github.com/databricks/dbt-databricks/pull/836)) ## dbt-databricks 1.8.7 (October 10, 2024) diff --git a/dbt/adapters/databricks/impl.py b/dbt/adapters/databricks/impl.py index 130d4521..2f40fb49 100644 --- a/dbt/adapters/databricks/impl.py +++ b/dbt/adapters/databricks/impl.py @@ -78,6 +78,7 @@ from dbt_common.behavior_flags import BehaviorFlag from dbt_common.utils import executor from dbt_common.utils.dict import AttrDict +from dbt_common.exceptions import CompilationError from dbt_common.exceptions import DbtConfigError from dbt_common.exceptions import DbtInternalError from dbt_common.contracts.config.base import BaseConfig @@ -175,10 +176,15 @@ class DatabricksAdapter(SparkAdapter): def __init__(self, config: Any, mp_context: SpawnContext) -> None: super().__init__(config, mp_context) - if self.behavior.use_info_schema_for_columns.no_warn: # type: ignore[attr-defined] - self.get_column_behavior = GetColumnsByInformationSchema() - else: - self.get_column_behavior = GetColumnsByDescribe() + + # dbt doesn't propogate flags for certain workflows like dbt debug so this requires + # an additional guard + self.get_column_behavior = GetColumnsByDescribe() + try: + if self.behavior.use_info_schema_for_columns.no_warn: # type: ignore[attr-defined] + self.get_column_behavior = GetColumnsByInformationSchema() + except CompilationError: + pass @property def _behavior_flags(self) -> list[BehaviorFlag]: diff --git a/tests/functional/adapter/columns/test_get_columns.py b/tests/functional/adapter/columns/test_get_columns.py index cf0a9e24..04e73a66 100644 --- a/tests/functional/adapter/columns/test_get_columns.py +++ b/tests/functional/adapter/columns/test_get_columns.py @@ -13,6 +13,9 @@ def models(self): @pytest.fixture(scope="class", autouse=True) def setup(self, project): + # debug uses different rules for managing project flags than run + util.run_dbt(["debug", "--connection"]) + util.run_dbt(["run"]) @pytest.fixture(scope="class")