From 5eb61ec1b69edb85a2d4e0173be74806ca7efb42 Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Fri, 25 Jul 2025 05:06:15 -0700 Subject: [PATCH] fix: extract tables from jinja (#34307) --- superset/sql_parse.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/superset/sql_parse.py b/superset/sql_parse.py index e82e88ea754..0e4aa637571 100644 --- a/superset/sql_parse.py +++ b/superset/sql_parse.py @@ -943,11 +943,11 @@ def extract_tables_from_jinja_sql(sql: str, database: Database) -> set[Table]: ) processor = get_template_processor(database) - template = processor.env.parse(sql) + ast = processor.env.parse(sql) tables = set() - for node in template.find_all(nodes.Call): + for node in ast.find_all(nodes.Call): if isinstance(node.node, nodes.Getattr) and node.node.attr in ( "latest_partition", "latest_sub_partition", @@ -972,7 +972,9 @@ def extract_tables_from_jinja_sql(sql: str, database: Database) -> set[Table]: node.data = "NULL" # re-render template back into a string - rendered_sql = Template(template).render(processor.get_context()) + code = processor.env.compile(ast) + template = Template.from_code(processor.env, code, globals=processor.env.globals) + rendered_sql = template.render(processor.get_context()) return ( tables