[sqllab] fix, strip comments before parsing statements (#9692)
This commit is contained in:
parent
5d167afb94
commit
4c522ac65f
|
|
@ -89,7 +89,10 @@ class ParsedQuery:
|
|||
self._limit: Optional[int] = None
|
||||
|
||||
logger.debug("Parsing with sqlparse statement: %s", self.sql)
|
||||
self._parsed = sqlparse.parse(self.stripped())
|
||||
self._parsed = sqlparse.parse(
|
||||
sqlparse.format(self.stripped(), strip_comments=True)
|
||||
)
|
||||
|
||||
for statement in self._parsed:
|
||||
self._limit = _extract_limit_from_query(statement)
|
||||
|
||||
|
|
|
|||
|
|
@ -535,6 +535,17 @@ class SupersetTestCase(unittest.TestCase):
|
|||
expected = ["SELECT * FROM birth_names", "SELECT * FROM birth_names LIMIT 1"]
|
||||
self.assertEqual(statements, expected)
|
||||
|
||||
def test_comment_breakdown_statements(self):
|
||||
multi_sql = """
|
||||
SELECT * FROM birth_names;
|
||||
-- some comment
|
||||
"""
|
||||
parsed = sql_parse.ParsedQuery(multi_sql)
|
||||
statements = parsed.get_statements()
|
||||
self.assertEqual(len(statements), 1)
|
||||
expected = ["SELECT * FROM birth_names"]
|
||||
self.assertEqual(statements, expected)
|
||||
|
||||
def test_messy_breakdown_statements(self):
|
||||
multi_sql = """
|
||||
SELECT 1;\t\n\n\n \t
|
||||
|
|
|
|||
Loading…
Reference in New Issue