Skip to content

Commit aebfac9

Browse files
authored
fix(model): raise ConfigError for empty time_column tuple (#5886)
Signed-off-by: Anas Khan <83116240+anxkhn@users.noreply.github.com>
1 parent 6ed313d commit aebfac9

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

sqlmesh/core/model/kind.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ def to_property(self, dialect: str = "") -> exp.Property:
341341
@classmethod
342342
def create(cls, v: t.Any, dialect: str) -> Self:
343343
if isinstance(v, exp.Tuple):
344+
if not v.expressions:
345+
raise ConfigError("Time Column cannot be empty.")
344346
column_expr = v.expressions[0]
345347
column = (
346348
exp.column(column_expr) if isinstance(column_expr, exp.Identifier) else column_expr

tests/core/test_model.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2680,6 +2680,21 @@ def test_time_column():
26802680
assert model.time_column.format == "%Y-%m"
26812681
assert model.time_column.expression == d.parse_one("(\"ds\", '%Y-%m')")
26822682

2683+
expressions = d.parse(
2684+
"""
2685+
MODEL (
2686+
name db.table,
2687+
kind INCREMENTAL_BY_TIME_RANGE(
2688+
time_column ()
2689+
)
2690+
);
2691+
2692+
SELECT col::text, ds::text
2693+
"""
2694+
)
2695+
with pytest.raises(ConfigError, match="Time Column cannot be empty."):
2696+
load_sql_based_model(expressions)
2697+
26832698

26842699
def test_default_time_column():
26852700
expressions = d.parse(

0 commit comments

Comments
 (0)