File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,6 +13,8 @@ MODEL (
1313 grain (waiter_id, event_date)
1414);
1515
16+ @DEF(where_filter, o .event_date BETWEEN @start_date AND @end_date);
17+
1618SELECT
1719 o .waiter_id ::INT AS waiter_id, /* Waiter id */
1820 SUM (oi .quantity * i .price )::DOUBLE AS revenue, /* Revenue from orders taken by this waiter */
@@ -23,7 +25,7 @@ LEFT JOIN sushi.order_items AS oi
2325LEFT JOIN sushi .items AS i
2426 ON oi .item_id = i .id AND oi .event_date = i .event_date
2527WHERE
26- o . event_date BETWEEN @start_date AND @end_date
28+ @where_filter
2729GROUP BY
2830 o .waiter_id ,
2931 o .event_date
Original file line number Diff line number Diff line change @@ -213,17 +213,17 @@ def _render(
213213 environment_naming_info = environment_naming_info ,
214214 )
215215
216+ macro_evaluator .locals .update (render_kwargs )
217+
218+ if variables :
219+ macro_evaluator .locals .setdefault (c .SQLMESH_VARS , {}).update (variables )
220+
216221 for definition in self ._macro_definitions :
217222 try :
218223 macro_evaluator .evaluate (definition )
219224 except Exception as ex :
220225 raise_config_error (f"Failed to evaluate macro '{ definition } '. { ex } " , self ._path )
221226
222- macro_evaluator .locals .update (render_kwargs )
223-
224- if variables :
225- macro_evaluator .locals .setdefault (c .SQLMESH_VARS , {}).update (variables )
226-
227227 resolved_expressions : t .List [t .Optional [exp .Expression ]] = []
228228
229229 for expression in expressions :
Original file line number Diff line number Diff line change @@ -8983,3 +8983,29 @@ def test_model(context, **kwargs):
89838983
89848984 assert python_model .kind .disable_restatement is False
89858985 assert python_model .optimize_query is False
8986+
8987+
8988+ def test_var_in_def (assert_exp_eq ):
8989+ expressions = d .parse (
8990+ """
8991+ MODEL (
8992+ name db.table,
8993+ kind INCREMENTAL_BY_TIME_RANGE(
8994+ time_column ds
8995+ ),
8996+ );
8997+
8998+ @DEF(var, @start_ds);
8999+
9000+ SELECT @var AS ds
9001+ """
9002+ )
9003+
9004+ model = load_sql_based_model (expressions )
9005+
9006+ assert_exp_eq (
9007+ model .render_query (),
9008+ """
9009+ SELECT '1970-01-01' AS "ds"
9010+ """ ,
9011+ )
You can’t perform that action at this time.
0 commit comments