Skip to content

Commit d1833c0

Browse files
authored
fix: catch more errors from macros so that debugging is easier (#3711)
1 parent 48e6775 commit d1833c0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

sqlmesh/core/renderer.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
from sqlmesh.utils.date import TimeLike, date_dict, make_inclusive, to_datetime
1919
from sqlmesh.utils.errors import (
2020
ConfigError,
21-
MacroEvalError,
2221
ParsetimeAdapterCallError,
2322
SQLMeshError,
2423
raise_config_error,
@@ -198,7 +197,7 @@ def _render(
198197
for definition in self._macro_definitions:
199198
try:
200199
macro_evaluator.evaluate(definition)
201-
except MacroEvalError as ex:
200+
except Exception as ex:
202201
raise_config_error(f"Failed to evaluate macro '{definition}'. {ex}", self._path)
203202

204203
macro_evaluator.locals.update(render_kwargs)
@@ -211,8 +210,11 @@ def _render(
211210
for expression in expressions:
212211
try:
213212
transformed_expressions = ensure_list(macro_evaluator.transform(expression))
214-
except MacroEvalError as ex:
215-
raise_config_error(f"Failed to resolve macro for expression. {ex}", self._path)
213+
except Exception as ex:
214+
raise_config_error(
215+
f"Failed to resolve macros for\n{expression.sql(dialect=self._dialect, pretty=True)}\n{ex}",
216+
self._path,
217+
)
216218

217219
for expression in t.cast(t.List[exp.Expression], transformed_expressions):
218220
with self._normalize_and_quote(expression) as expression:

0 commit comments

Comments
 (0)