diff --git a/CHANGELOG b/CHANGELOG index e28bd0e1..194309af 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,9 @@ Development Version ------------------- -Nothing yet. +Bug Fixes + +* Fix parsing of backticks (issue588). Release 0.4.1 (Oct 08, 2020) diff --git a/sqlparse/keywords.py b/sqlparse/keywords.py index a5deb938..c967b26c 100644 --- a/sqlparse/keywords.py +++ b/sqlparse/keywords.py @@ -93,7 +93,7 @@ def is_keyword(value): (r'[0-9_A-ZÀ-Ü][_$#\w]*', is_keyword), (r'[;:()\[\],\.]', tokens.Punctuation), (r'[<>=~!]+', tokens.Operator.Comparison), - (r'[+/@#%^&|`?^-]+', tokens.Operator), + (r'[+/@#%^&|^-]+', tokens.Operator), ]} FLAGS = re.IGNORECASE | re.UNICODE diff --git a/tests/test_regressions.py b/tests/test_regressions.py index b247ce21..38d18404 100644 --- a/tests/test_regressions.py +++ b/tests/test_regressions.py @@ -411,3 +411,10 @@ def test_format_invalid_where_clause(): # did raise ValueError formatted = sqlparse.format('where, foo', reindent=True) assert formatted == 'where, foo' + + +def test_splitting_at_and_backticks_issue588(): + splitted = sqlparse.split( + 'grant foo to user1@`myhost`; grant bar to user1@`myhost`;') + assert len(splitted) == 2 + assert splitted[-1] == 'grant bar to user1@`myhost`;'