diff --git a/sqlmesh/core/dialect.py b/sqlmesh/core/dialect.py index d07f3134df..dcdacf4b2a 100644 --- a/sqlmesh/core/dialect.py +++ b/sqlmesh/core/dialect.py @@ -1035,6 +1035,12 @@ def extend_sqlglot() -> None: MacroDef, ) + generator.UNWRAPPED_INTERVAL_VALUES = ( + *generator.UNWRAPPED_INTERVAL_VALUES, + MacroStrReplace, + MacroVar, + ) + _override(Parser, _parse_select) _override(Parser, _parse_statement) _override(Parser, _parse_join) diff --git a/tests/core/test_dialect.py b/tests/core/test_dialect.py index 834bb521e5..f96d10851a 100644 --- a/tests/core/test_dialect.py +++ b/tests/core/test_dialect.py @@ -260,6 +260,8 @@ def test_format_model_expressions(): def test_macro_format(): assert parse_one("@EACH(ARRAY(1,2), x -> x)").sql() == "@EACH(ARRAY(1, 2), x -> x)" + assert parse_one("INTERVAL @x DAY").sql() == "INTERVAL @x DAY" + assert parse_one("INTERVAL @'@{bar}' DAY").sql() == "INTERVAL @'@{bar}' DAY" def test_format_body_macros():