diff options
| -rw-r--r-- | sqlparse/lexer.py | 1 | ||||
| -rw-r--r-- | tests/test_parse.py | 14 |
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) |
