summaryrefslogtreecommitdiff
path: root/sqlparse/lexer.py
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2016-08-13 17:38:21 +0200
committerAndi Albrecht <albrecht.andi@gmail.com>2016-08-13 17:38:21 +0200
commit2893bd1857d685cf892beac3a7429d03cf1a09f1 (patch)
tree1fc1a427841391137820355f33cdaac119c080b6 /sqlparse/lexer.py
parentb7a30d04427e4e4cbc66d08b780ffbb23ab44931 (diff)
downloadsqlparse-2893bd1857d685cf892beac3a7429d03cf1a09f1.tar.gz
Parse double dollars (PostgreSQL) as literal strings (fixes #277).
Diffstat (limited to 'sqlparse/lexer.py')
-rw-r--r--sqlparse/lexer.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py
index e7996b2..1979550 100644
--- a/sqlparse/lexer.py
+++ b/sqlparse/lexer.py
@@ -50,11 +50,14 @@ class Lexer(object):
if not m:
continue
elif isinstance(action, tokens._TokenType):
+ consume_pos = m.end() - pos - 1
yield action, m.group()
elif callable(action):
- yield action(m.group())
+ ttype, value = action(m.group(), text[pos:])
+ consume_pos = len(value) - 1
+ yield ttype, value
- consume(iterable, m.end() - pos - 1)
+ consume(iterable, consume_pos)
break
else:
yield tokens.Error, char