Skip to content

Commit 404c68e

Browse files
authored
Fix: Parsing of session properties when only one key-value pair is provided (#2610)
1 parent f0d7bda commit 404c68e

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

sqlmesh/core/model/definition.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1887,6 +1887,8 @@ def _resolve_session_properties(
18871887
if isinstance(provided, dict):
18881888
session_properties = {k: exp.Literal.string(k).eq(v) for k, v in provided.items()}
18891889
elif provided:
1890+
if isinstance(provided, exp.Paren):
1891+
provided = exp.Tuple(expressions=[provided.this])
18901892
session_properties = {expr.this.name: expr for expr in provided}
18911893
else:
18921894
session_properties = {}

tests/core/test_model.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2833,6 +2833,24 @@ def test_model_session_properties(sushi_context):
28332833
"unquoted_identifier": exp.column("unquoted_identifier", quoted=False),
28342834
}
28352835

2836+
model = load_sql_based_model(
2837+
d.parse(
2838+
"""
2839+
MODEL (
2840+
name test_schema.test_model,
2841+
session_properties (
2842+
'warehouse' = 'test_warehouse'
2843+
)
2844+
);
2845+
SELECT a FROM tbl;
2846+
""",
2847+
default_dialect="snowflake",
2848+
)
2849+
)
2850+
assert model.session_properties == {
2851+
"warehouse": "test_warehouse",
2852+
}
2853+
28362854

28372855
def test_model_jinja_macro_rendering():
28382856
expressions = d.parse(

0 commit comments

Comments
 (0)