summaryrefslogtreecommitdiff
path: root/sqlparse/keywords.py
diff options
context:
space:
mode:
authoratronah <atronah.ds@gmail.com>2017-04-29 14:49:38 +0300
committeratronah <atronah.ds@gmail.com>2017-04-30 19:07:14 +0300
commit4dd31c48c5ef42ea731e0c6a86b99cb3c89f0a6a (patch)
tree08546a16827a0e32fc8e05868f969843304e43c1 /sqlparse/keywords.py
parent662280e5e6fa1953c8a4b93f98f301a40b86ba0f (diff)
downloadsqlparse-4dd31c48c5ef42ea731e0c6a86b99cb3c89f0a6a.tar.gz
adds '1.' option support for float numbers regex
Diffstat (limited to 'sqlparse/keywords.py')
-rw-r--r--sqlparse/keywords.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/sqlparse/keywords.py b/sqlparse/keywords.py
index f742598..fbc77d5 100644
--- a/sqlparse/keywords.py
+++ b/sqlparse/keywords.py
@@ -53,13 +53,14 @@ SQL_REGEX = {
# Spaces around period `schema . name` are valid identifier
# TODO: Spaces before period not implemented
(r'[A-Z]\w*(?=\s*\.)', tokens.Name), # 'Name' .
+ # FIXME(atronah): never match,
+ # because `re.match` doesn't work with lookbehind regexp feature
(r'(?<=\.)[A-Z]\w*', tokens.Name), # .'Name'
(r'[A-Z]\w*(?=\()', tokens.Name), # side effect: change kw to func
- # TODO: `1.` and `.1` are valid numbers
(r'-?0x[\dA-F]+', tokens.Number.Hexadecimal),
(r'-?\d*(\.\d+)?E-?\d+', tokens.Number.Float),
- (r'-?\d*\.\d+', tokens.Number.Float),
+ (r'-?(\d+(\.\d*)|\.\d+)', tokens.Number.Float),
(r'-?\d+', tokens.Number.Integer),
(r"'(''|\\\\|\\'|[^'])*'", tokens.String.Single),