]> git.phdru.name Git - sqlconvert.git/blobdiff - sqlconvert/process_mysql.py
Implement is_insert()
[sqlconvert.git] / sqlconvert / process_mysql.py
index d72479e7111bfc0db29b12c7f6bdb1d8aa0561ed..9e342c2e04ec7c5ad4ba1796731932320762e5f3 100644 (file)
@@ -1,6 +1,7 @@
 
 from sqlparse.sql import Comment
 from sqlparse import tokens as T
+from .process_tokens import escape_strings, is_comment_or_space
 
 
 def _is_directive_token(token):
@@ -56,14 +57,30 @@ def unescape_strings(token_list):
             value = token.value
             for orig, repl in (
                 ('\\"', '"'),
-                ("\\'", "''"),
+                ("\\'", "'"),
+                ("''", "'"),
+                ('\\b', '\b'),
+                ('\\n', '\n'),
+                ('\\r', '\r'),
+                ('\\t', '\t'),
                 ('\\\032', '\032'),
+                ('\\\\', '\\'),
             ):
                 value = value.replace(orig, repl)
             token.normalized = token.value = value
 
 
-def process_statement(statement):
-    remove_directive_tokens(statement)
+def is_insert(statement):
+    for token in statement.tokens:
+        if is_comment_or_space(token):
+            continue
+        return (token.ttype is T.DML) and (token.normalized == 'INSERT')
+
+
+def process_statement(statement, quoting_style='sqlite'):
     requote_names(statement)
     unescape_strings(statement)
+    remove_directive_tokens(statement)
+    escape_strings(statement, quoting_style)
+    yield statement
+    return