fix: pass string to process_template (#31329)

This commit is contained in:
Beto Dealmeida
2024-12-07 09:49:49 -05:00
committed by GitHub
parent 592564b623
commit 9315a8838c
2 changed files with 29 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ from typing import Any, cast, TYPE_CHECKING
import sqlparse
from flask_babel import gettext as __
from jinja2 import nodes
from jinja2 import nodes, Template
from sqlalchemy import and_
from sqlparse import keywords
from sqlparse.lexer import Lexer
@@ -999,10 +999,13 @@ def extract_tables_from_jinja_sql(sql: str, database: Database) -> set[Table]:
node.fields = nodes.TemplateData.fields
node.data = "NULL"
# re-render template back into a string
rendered_template = Template(template).render()
return (
tables
| ParsedQuery(
sql_statement=processor.process_template(template),
sql_statement=processor.process_template(rendered_template),
engine=database.db_engine_spec.engine,
).tables
)