99preprocessors = ()
1010
1111
12+ def escape_for_sql_statement (value ):
13+ if isinstance (value , bytes ):
14+ return f"X'{ value .hex ()} '"
15+ else :
16+ return formatter .mycli .sqlexecute .conn .escape (value )
17+
18+
1219def adapter (data , headers , table_format = None , ** kwargs ):
1320 tables = extract_tables (formatter .query )
1421 if len (tables ) > 0 :
@@ -19,13 +26,12 @@ def adapter(data, headers, table_format=None, **kwargs):
1926 table_name = table [1 ]
2027 else :
2128 table_name = "`DUAL`"
22- escape = formatter .mycli .sqlexecute .conn .escape
2329 if table_format == 'sql-insert' :
2430 h = "`, `" .join (headers )
2531 yield "INSERT INTO {} (`{}`) VALUES" .format (table_name , h )
2632 prefix = " "
2733 for d in data :
28- values = ", " .join (escape (v ) for i , v in enumerate (d ))
34+ values = ", " .join (escape_for_sql_statement (v ) for i , v in enumerate (d ))
2935 yield "{}({})" .format (prefix , values )
3036 if prefix == " " :
3137 prefix = ", "
@@ -39,11 +45,11 @@ def adapter(data, headers, table_format=None, **kwargs):
3945 yield "UPDATE {} SET" .format (table_name )
4046 prefix = " "
4147 for i , v in enumerate (d [keys :], keys ):
42- yield "{}`{}` = {}" .format (prefix , headers [i ], escape (v ))
48+ yield "{}`{}` = {}" .format (prefix , headers [i ], escape_for_sql_statement (v ))
4349 if prefix == " " :
4450 prefix = ", "
4551 f = "`{}` = {}"
46- where = (f .format (headers [i ], escape (d [i ])) for i in range (keys ))
52+ where = (f .format (headers [i ], escape_for_sql_statement (d [i ])) for i in range (keys ))
4753 yield "WHERE {};" .format (" AND " .join (where ))
4854
4955
0 commit comments