Skip to content

Commit

Permalink
fix(sqllab): template validation error within comments (apache#25626)
Browse files Browse the repository at this point in the history
  • Loading branch information
justinpark committed Oct 13, 2023
1 parent 4a01b60 commit b370c66
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
4 changes: 3 additions & 1 deletion superset/sqllab/query_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

from superset import is_feature_enabled
from superset.errors import SupersetErrorType
from superset.sql_parse import ParsedQuery
from superset.sqllab.commands.execute import SqlQueryRender
from superset.sqllab.exceptions import SqlLabException
from superset.utils import core as utils
Expand Down Expand Up @@ -57,8 +58,9 @@ def render(self, execution_context: SqlJsonExecutionContext) -> str:
database=query_model.database, query=query_model
)

parsed_query = ParsedQuery(query_model.sql, strip_comments=True)
rendered_query = sql_template_processor.process_template(
query_model.sql, **execution_context.template_params
parsed_query.stripped(), **execution_context.template_params
)
self._validate(execution_context, rendered_query, sql_template_processor)
return rendered_query
Expand Down
7 changes: 7 additions & 0 deletions tests/integration_tests/sqllab_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,13 @@ def test_sql_json_parameter_error(self):
)
assert data["status"] == "success"

data = self.run_sql(
"SELECT * FROM birth_names WHERE state = '{{ state }}' -- blabblah {{ extra1 }} {{fake.fn()}}\nLIMIT 10",
"3",
template_params=json.dumps({"state": "CA"}),
)
assert data["status"] == "success"

data = self.run_sql(
"SELECT * FROM birth_names WHERE state = '{{ stat }}' LIMIT 10",
"2",
Expand Down

0 comments on commit b370c66

Please sign in to comment.