summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sqlparse/lexer.py1
-rw-r--r--tests/test_parse.py9
2 files changed, 10 insertions, 0 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py
index 631c267..611835f 100644
--- a/sqlparse/lexer.py
+++ b/sqlparse/lexer.py
@@ -200,6 +200,7 @@ class Lexer(object):
(r'END(\s+IF|\s+LOOP)?\b', tokens.Keyword),
(r'NOT NULL\b', tokens.Keyword),
(r'CREATE(\s+OR\s+REPLACE)?\b', tokens.Keyword.DDL),
+ (r'DOUBLE\s+PRECISION\b', tokens.Name.Builtin),
(r'(?<=\.)[^\W\d_]\w*', tokens.Name),
(r'[^\W\d_]\w*', is_keyword),
(r'[;:()\[\],\.]', tokens.Punctuation),
diff --git a/tests/test_parse.py b/tests/test_parse.py
index fd48127..2650d7f 100644
--- a/tests/test_parse.py
+++ b/tests/test_parse.py
@@ -166,6 +166,14 @@ def test_psql_quotation_marks(): # issue83
assert len(t) == 2
+def test_double_precision_is_builtin():
+ sql = 'DOUBLE PRECISION'
+ t = sqlparse.parse(sql)[0].tokens
+ assert (len(t) == 1
+ and t[0].ttype == sqlparse.tokens.Name.Builtin
+ and t[0].value == 'DOUBLE PRECISION')
+
+
@pytest.mark.parametrize('ph', ['?', ':1', ':foo', '%s', '%(foo)s'])
def test_placeholder(ph):
p = sqlparse.parse(ph)[0].tokens
@@ -196,3 +204,4 @@ def test_single_quotes_with_linebreaks(): # issue118
p = sqlparse.parse("'f\nf'")[0].tokens
assert len(p) == 1
assert p[0].ttype is T.String.Single
+