summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sqlparse/lexer.py1
-rw-r--r--tests/test_parse.py14
2 files changed, 15 insertions, 0 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py
index 8ef2bab..d381e36 100644
--- a/sqlparse/lexer.py
+++ b/sqlparse/lexer.py
@@ -177,6 +177,7 @@ class Lexer:
(r'@[a-zA-Z_][a-zA-Z0-9_]+', tokens.Name),
(r'[<>=~!]+', tokens.Operator.Comparison),
(r'[+/@#%^&|`?^-]+', tokens.Operator),
+ (r'[0-9]*\.[0-9]+', tokens.Number.Float),
(r'[0-9]+', tokens.Number.Integer),
# TODO: Backslash escapes?
(r"(''|'.*?[^\\]')", tokens.String.Single),
diff --git a/tests/test_parse.py b/tests/test_parse.py
index d14e329..bcde674 100644
--- a/tests/test_parse.py
+++ b/tests/test_parse.py
@@ -61,3 +61,17 @@ class SQLParseTest(TestCaseBase):
self.assert_(baz.has_ancestor(p.tokens[-1].tokens[1]))
self.assert_(baz.has_ancestor(p.tokens[-1]))
self.assert_(baz.has_ancestor(p))
+
+ def test_float(self):
+ t = sqlparse.parse('.5')[0].tokens
+ self.assertEqual(len(t), 1)
+ self.assert_(t[0].ttype is sqlparse.tokens.Number.Float)
+ t = sqlparse.parse('.51')[0].tokens
+ self.assertEqual(len(t), 1)
+ self.assert_(t[0].ttype is sqlparse.tokens.Number.Float)
+ t = sqlparse.parse('1.5')[0].tokens
+ self.assertEqual(len(t), 1)
+ self.assert_(t[0].ttype is sqlparse.tokens.Number.Float)
+ t = sqlparse.parse('12.5')[0].tokens
+ self.assertEqual(len(t), 1)
+ self.assert_(t[0].ttype is sqlparse.tokens.Number.Float)