Skip to content

Commit b370c66

Browse files
authored
fix(sqllab): template validation error within comments (apache#25626)
1 parent 4a01b60 commit b370c66

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

superset/sqllab/query_render.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
from superset import is_feature_enabled
2727
from superset.errors import SupersetErrorType
28+
from superset.sql_parse import ParsedQuery
2829
from superset.sqllab.commands.execute import SqlQueryRender
2930
from superset.sqllab.exceptions import SqlLabException
3031
from superset.utils import core as utils
@@ -57,8 +58,9 @@ def render(self, execution_context: SqlJsonExecutionContext) -> str:
5758
database=query_model.database, query=query_model
5859
)
5960

61+
parsed_query = ParsedQuery(query_model.sql, strip_comments=True)
6062
rendered_query = sql_template_processor.process_template(
61-
query_model.sql, **execution_context.template_params
63+
parsed_query.stripped(), **execution_context.template_params
6264
)
6365
self._validate(execution_context, rendered_query, sql_template_processor)
6466
return rendered_query

tests/integration_tests/sqllab_tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,13 @@ def test_sql_json_parameter_error(self):
514514
)
515515
assert data["status"] == "success"
516516

517+
data = self.run_sql(
518+
"SELECT * FROM birth_names WHERE state = '{{ state }}' -- blabblah {{ extra1 }} {{fake.fn()}}\nLIMIT 10",
519+
"3",
520+
template_params=json.dumps({"state": "CA"}),
521+
)
522+
assert data["status"] == "success"
523+
517524
data = self.run_sql(
518525
"SELECT * FROM birth_names WHERE state = '{{ stat }}' LIMIT 10",
519526
"2",

0 commit comments

Comments
 (0)