You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from sqlglot import parse_one
query = 'SELECT name FROM temp WHERE name = ? FOR UPDATE'
parsed_sql = parse_one(query, dialect='mysql')
The stacktrace is:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "buildenv/lib/python3.8/site-packages/sqlglot/__init__.py", line 125, in parse_one
result = dialect.parse(sql, **opts)
File "buildenv/lib/python3.8/site-packages/sqlglot/dialects/dialect.py", line 288, in parse
return self.parser(**opts).parse(self.tokenize(sql), sql)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 921, in parse
return self._parse(
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 987, in _parse
expressions.append(parse_method(self))
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 1177, in _parse_statement
expression = self._parse_set_operations(expression) if expression else self._parse_select()
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 2056, in _parse_select
this = self._parse_query_modifiers(this)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 2162, in _parse_query_modifiers
key, expression = parser(self)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 775, in <lambda>
TokenType.WHERE: lambda self: ("where", self._parse_where()),
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 2765, in _parse_where
exp.Where, comments=self._prev_comments, this=self._parse_conjunction()
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 3001, in _parse_conjunction
return self._parse_tokens(self._parse_equality, self.CONJUNCTION)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 4519, in _parse_tokens
this = parse_method()
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 3004, in _parse_equality
return self._parse_tokens(self._parse_comparison, self.EQUALITY)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 4526, in _parse_tokens
expression=parse_method(),
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 3007, in _parse_comparison
return self._parse_tokens(self._parse_range, self.COMPARISON)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 4519, in _parse_tokens
this = parse_method()
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 3014, in _parse_range
expression = self.RANGE_PARSERS[self._prev.token_type](self, this)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 598, in <lambda>
TokenType.FOR: lambda self, this: self._parse_comprehension(this),
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 4905, in _parse_comprehension
return self.expression(
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 1051, in expression
return self.validate_expression(instance)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 1071, in validate_expression
self.raise_error(error_message)
File "buildenv/lib/python3.8/site-packages/sqlglot/parser.py", line 1031, in raise_error
raise error
sqlglot.errors.ParseError: Required keyword: 'iterator' missing for <class 'sqlglot.expressions.Comprehension'>. Line 1, Col: 47.
SELECT name FROM temp WHERE name = ? FOR UPDATE
This does not error on version 17.16.2 and below. Something happened in version 18.0.0 that caused this issue. I verified that the issue is present in all versions above 18.0.0 as well.
The text was updated successfully, but these errors were encountered:
Fully reproducible code snippet
The stacktrace is:
This does not error on version 17.16.2 and below. Something happened in version 18.0.0 that caused this issue. I verified that the issue is present in all versions above 18.0.0 as well.
The text was updated successfully, but these errors were encountered: