47
47
NotSupportedError , ProgrammingError
48
48
49
49
50
- def normalize_utf8mb4 (charset ):
51
- return 'utf8' if charset == 'utf8mb4' else charset
52
-
53
50
class BaseCursor (object ):
54
51
55
52
"""A base for Cursor classes. Useful attributes:
@@ -180,9 +177,8 @@ def execute(self, query, args=None):
180
177
"""
181
178
del self .messages [:]
182
179
db = self ._get_db ()
183
- charset = normalize_utf8mb4 (db .character_set_name ())
184
180
if isinstance (query , unicode ):
185
- query = query .encode (charset )
181
+ query = query .encode (db . unicode_literal . charset )
186
182
if args is not None :
187
183
query = query % db .literal (args )
188
184
try :
@@ -228,8 +224,8 @@ def executemany(self, query, args):
228
224
del self .messages [:]
229
225
db = self ._get_db ()
230
226
if not args : return
231
- charset = normalize_utf8mb4 ( db . character_set_name ())
232
- if isinstance ( query , unicode ): query = query .encode (charset )
227
+ if isinstance ( query , unicode ):
228
+ query = query .encode (db . unicode_literal . charset )
233
229
m = insert_values .search (query )
234
230
if not m :
235
231
r = 0
@@ -288,20 +284,19 @@ def callproc(self, procname, args=()):
288
284
"""
289
285
290
286
db = self ._get_db ()
291
- charset = db .character_set_name ()
292
287
for index , arg in enumerate (args ):
293
288
q = "SET @_%s_%d=%s" % (procname , index ,
294
289
db .literal (arg ))
295
290
if isinstance (q , unicode ):
296
- q = q .encode (charset )
291
+ q = q .encode (db . unicode_literal . charset )
297
292
self ._query (q )
298
293
self .nextset ()
299
294
300
295
q = "CALL %s(%s)" % (procname ,
301
296
',' .join (['@_%s_%d' % (procname , i )
302
297
for i in range (len (args ))]))
303
298
if type (q ) is UnicodeType :
304
- q = q .encode (charset )
299
+ q = q .encode (db . unicode_literal . charset )
305
300
self ._query (q )
306
301
self ._executed = q
307
302
if not self ._defer_warnings : self ._warning_check ()
0 commit comments