]> git.phdru.name Git - sqlconvert.git/blobdiff - sqlconvert/process_tokens.py
Make process_statement() a generator
[sqlconvert.git] / sqlconvert / process_tokens.py
index 924ba4abd7ce2f00c8b5ecb477a081c023cc674d..790bf53f8750bb27b5add60f8672989189169155 100644 (file)
@@ -1,4 +1,5 @@
 
+from sqlobject.converters import sqlrepr
 from sqlparse import parse
 from sqlparse.compat import PY3
 from sqlparse import tokens as T
@@ -19,6 +20,15 @@ def is_newline_statement(statement):
     return True
 
 
+def escape_strings(token_list, dbname):
+    """Escape strings"""
+    for token in token_list.flatten():
+        if token.ttype is T.String.Single:
+            value = token.value[1:-1]  # unquote by removing apostrophes
+            value = sqlrepr(value, dbname)
+            token.normalized = token.value = value
+
+
 if PY3:
     xrange = range
 
@@ -54,6 +64,7 @@ class StatementGrouper(object):
         for stmt in self.statements:
             yield stmt
         self.statements = []
+        return
 
     def close(self):
         if not self.lines:
@@ -64,4 +75,6 @@ class StatementGrouper(object):
                                     T.Newline, T.Whitespace)):
                 raise ValueError("Incomplete SQL statement: %s" %
                                  tokens)
+        self.lines = []
+        self.statements = []
         return tokens