From d1abf2e9a6ed9925c6c2bf54e3ef2e6fa0ed4656 Mon Sep 17 00:00:00 2001 From: Anatoliy Romanov Date: Tue, 12 Aug 2025 15:39:37 +0300 Subject: [PATCH] fix: set require_alias=False to fix --empty flag alias errors --- dbt/adapters/clickhouse/relation.py | 1 + .../adapter/compile/test_empty_flag.py | 62 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 tests/integration/adapter/compile/test_empty_flag.py diff --git a/dbt/adapters/clickhouse/relation.py b/dbt/adapters/clickhouse/relation.py index f5ca86d1..b8d36ba1 100644 --- a/dbt/adapters/clickhouse/relation.py +++ b/dbt/adapters/clickhouse/relation.py @@ -44,6 +44,7 @@ class ClickHouseRelation(BaseRelation): quote_character: str = '`' can_exchange: bool = False can_on_cluster: bool = False + require_alias: bool = False def __post_init__(self): if self.database != self.schema and self.database: diff --git a/tests/integration/adapter/compile/test_empty_flag.py b/tests/integration/adapter/compile/test_empty_flag.py new file mode 100644 index 00000000..727bc264 --- /dev/null +++ b/tests/integration/adapter/compile/test_empty_flag.py @@ -0,0 +1,62 @@ +import pytest +from dbt.tests.util import run_dbt + + +class TestAliasesWithEmptyFlag: + @pytest.fixture(scope="class") + def models(self): + return { + "base_table.sql": """ + {{ config(materialized='table') }} + SELECT 1 as id, 'test' as name, true as active + """, + "model_with_alias.sql": """ + {{ config(materialized='table') }} + SELECT + base_alias.id, + base_alias.name, + base_alias.active + FROM {{ ref('base_table') }} base_alias + WHERE base_alias.active = true + """, + + "incremental_base_table.sql": """ + {{ config(materialized='table') }} + SELECT 1 as event_id, 'login' as event_type, '2023-01-01'::date as event_date + UNION ALL + SELECT 2 as event_id, 'logout' as event_type, '2023-01-02'::date as event_date + """, + "incremental_with_alias.sql": """ + {{ config( + materialized='incremental', + incremental_strategy='append', + unique_key='event_id' + ) }} + SELECT + src_alias.event_id, + src_alias.event_type, + src_alias.event_date + FROM {{ ref('incremental_base_table') }} src_alias + """, + + "view_with_alias.sql": """ + {{ config(materialized='view') }} + SELECT + base_alias.id, + base_alias.name + FROM {{ ref('base_table') }} base_alias + WHERE base_alias.name = 'test' + """ + } + + def test_alias_with_empty_flag(self, project): + def run_and_assert(select_model): + results = run_dbt(["run", "--empty", "--select", select_model]) + assert len(results) == 1 + assert results[0].status.lower() == "success" + + run_dbt(["run", "--select", "base_table incremental_base_table"]) + + run_and_assert("model_with_alias") + run_and_assert("incremental_with_alias") + run_and_assert("view_with_alias")