X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=sqlconvert%2Fprocess_mysql.py;h=9bfef92de598c09c68f99623d1b2cdd1de157273;hb=6f433a4531f0e301f3534de7f0278afbcf79d50e;hp=f91f516d2d9236f53dd320f5eb2a958545d54c9d;hpb=bc473dfbbebeea2e2f4e0f368408632e047949ac;p=sqlconvert.git diff --git a/sqlconvert/process_mysql.py b/sqlconvert/process_mysql.py index f91f516..9bfef92 100644 --- a/sqlconvert/process_mysql.py +++ b/sqlconvert/process_mysql.py @@ -1,6 +1,7 @@ from sqlparse.sql import Comment from sqlparse import tokens as T +from .process_tokens import escape_strings def _is_directive_token(token): @@ -49,6 +50,30 @@ def requote_names(token_list): token.normalized = token.value = '"%s"' % value -def process_statement(statement): +def unescape_strings(token_list): + """Unescape strings""" + for token in token_list.flatten(): + if token.ttype is T.String.Single: + 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, quoting_style='sqlite'): remove_directive_tokens(statement) requote_names(statement) + unescape_strings(statement) + escape_strings(statement, quoting_style) + yield statement + return