Skip to content

Commit 091ff58

Browse files
committed
Fix: Support dialects with normalization strategies for dbt projects
1 parent 4772446 commit 091ff58

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

sqlmesh/dbt/builtin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from dbt import version
1313
from dbt.adapters.base import BaseRelation, Column
1414
from ruamel.yaml import YAMLError
15+
from sqlglot import Dialect
1516

1617
from sqlmesh.core.engine_adapter import EngineAdapter
1718
from sqlmesh.core.snapshot.definition import DeployabilityIndex
@@ -49,7 +50,9 @@ def warn(self, msg: str) -> str:
4950
class Api:
5051
def __init__(self, dialect: t.Optional[str]) -> None:
5152
if dialect:
52-
config_class = TARGET_TYPE_TO_CONFIG_CLASS[dialect]
53+
config_class = TARGET_TYPE_TO_CONFIG_CLASS[
54+
Dialect.get_or_raise(dialect).__class__.__name__.lower()
55+
]
5356
self.Relation = config_class.relation_class
5457
self.Column = config_class.column_class
5558
self.quote_policy = config_class.quote_policy

tests/core/test_integration.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4263,6 +4263,14 @@ def test_dbt_requirements(sushi_dbt_context: Context):
42634263
assert sushi_dbt_context.requirements["dbt-duckdb"].startswith("1.")
42644264

42654265

4266+
@time_machine.travel("2023-01-08 15:00:00 UTC")
4267+
def test_dbt_dialect_with_normalization_strategy(init_and_plan_context: t.Callable):
4268+
context, _ = init_and_plan_context(
4269+
"tests/fixtures/dbt/sushi_test", config="test_config_with_normalization_strategy"
4270+
)
4271+
assert context.default_dialect == "duckdb,normalization_strategy=UPPERCASE"
4272+
4273+
42664274
@pytest.mark.parametrize(
42674275
"context_fixture",
42684276
["sushi_context", "sushi_dbt_context", "sushi_test_dbt_context", "sushi_no_default_catalog"],

tests/fixtures/dbt/sushi_test/config.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,9 @@
1212

1313

1414
test_config = config
15+
16+
test_config_with_normalization_strategy = sqlmesh_config(
17+
Path(__file__).parent,
18+
variables=variables,
19+
model_defaults=ModelDefaultsConfig(dialect="duckdb,normalization_strategy=UPPERCASE"),
20+
)

0 commit comments

Comments
 (0)