File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -68,6 +68,13 @@ def __init__(
6868 self ._cache : t .List [t .Optional [exp .Expression ]] = []
6969 self ._model_fqn = model_fqn
7070 self ._optimize_query_flag = optimize_query is not False
71+ # Cache of the macro evaluator to be able to reuse it outside the render method
72+ self ._macro_evaluator : t .Optional [MacroEvaluator ] = None
73+
74+ @property
75+ def macro_evaluator (self ) -> t .Optional [MacroEvaluator ]:
76+ """Returns the cached macro evaluator from the last render operation."""
77+ return self ._macro_evaluator
7178
7279 def update_schema (self , schema : t .Dict [str , t .Any ]) -> None :
7380 self .schema = d .normalize_mapping_schema (schema , dialect = self ._dialect )
@@ -171,6 +178,7 @@ def _resolve_table(table: str | exp.Table) -> str:
171178 environment_naming_info = environment_naming_info ,
172179 model_fqn = self ._model_fqn ,
173180 )
181+ self ._macro_evaluator = macro_evaluator
174182
175183 start_time , end_time = (
176184 make_inclusive (start or c .EPOCH , end or c .EPOCH , self ._dialect )
You can’t perform that action at this time.
0 commit comments