Skip to content

Commit 1fd1678

Browse files
committed
Recognize backticks quoting identifiers.
1 parent f544473 commit 1fd1678

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

CHANGES

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
Release 0.1.0 (In Development)
2-
------------------------------
1+
In Development
2+
--------------
3+
* Recognize backticks quoting identifiers.
4+
5+
6+
Release 0.1.0
7+
-------------
38
* Initial.

sqlparse/lexer.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
13
# Copyright (C) 2008 Andi Albrecht, albrecht.andi@gmail.com
24
#
35
# This module is part of python-sqlparse and is released under
@@ -162,6 +164,8 @@ class Lexer:
162164
(r':=', Assignment),
163165
(r'::', Punctuation),
164166
(r'[*]', Wildcard),
167+
(r"`(``|[^`])*`", Name),
168+
(r"´(´´|[^´])*´", Name),
165169
(r'[+/<>=~!@#%^&|`?^-]', Operator),
166170
(r'[0-9]+', Number.Integer),
167171
# TODO: Backslash escapes?

tests/test_tokenize.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ def test_simple(self):
1919
self.assertEqual(tokens[0], (Keyword.DML, u'select'))
2020
self.assertEqual(tokens[-1], (Punctuation, u';'))
2121

22+
def test_backticks(self):
23+
sql = '`foo`.`bar`'
24+
tokens = list(lexer.tokenize(sql))
25+
self.assertEqual(len(tokens), 3)
26+
self.assertEqual(tokens[0], (Name, u'`foo`'))

0 commit comments

Comments
 (0)