From 0ec64528c5fb1efb71122985eab9c7137a80603d Mon Sep 17 00:00:00 2001 From: Andi Albrecht Date: Mon, 25 Jul 2011 18:24:02 +0200 Subject: Detection of placeholders in paramterized queries (fixes issue22). --- sqlparse/lexer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sqlparse') diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py index 507217a..950ef1b 100644 --- a/sqlparse/lexer.py +++ b/sqlparse/lexer.py @@ -175,6 +175,9 @@ class Lexer: (r'CASE\b', tokens.Keyword), # extended CASE(foo) (r"`(``|[^`])*`", tokens.Name), (r"´(´´|[^´])*´", tokens.Name), + (r'\$([a-zA-Z_][a-zA-Z0-9_]*)?\$', tokens.Name.Builtin), + (r'\?{1}', tokens.Name.Placeholder), + (r'[$:?%][a-zA-Z0-9_]+[^$:?%]?', tokens.Name.Placeholder), (r'@[a-zA-Z_][a-zA-Z0-9_]+', tokens.Name), (r'[a-zA-Z_][a-zA-Z0-9_]*(?=[.(])', tokens.Name), # see issue39 (r'[<>=~!]+', tokens.Operator.Comparison), @@ -191,7 +194,6 @@ class Lexer: (r'NOT NULL\b', tokens.Keyword), (r'CREATE( OR REPLACE)?\b', tokens.Keyword.DDL), (r'[a-zA-Z_][a-zA-Z0-9_]*', is_keyword), - (r'\$([a-zA-Z_][a-zA-Z0-9_]*)?\$', tokens.Name.Builtin), (r'[;:()\[\],\.]', tokens.Punctuation), ], 'multiline-comments': [ -- cgit v1.2.1