mirror of
https://github.com/PyMySQL/mysqlclient.git
synced 2025-08-15 02:54:29 +08:00
Use db.unicode_literal.charset in cursors.py
This commit is contained in:
@ -47,9 +47,6 @@ from _mysql_exceptions import Warning, Error, InterfaceError, DataError, \
|
|||||||
NotSupportedError, ProgrammingError
|
NotSupportedError, ProgrammingError
|
||||||
|
|
||||||
|
|
||||||
def normalize_utf8mb4(charset):
|
|
||||||
return 'utf8' if charset == 'utf8mb4' else charset
|
|
||||||
|
|
||||||
class BaseCursor(object):
|
class BaseCursor(object):
|
||||||
|
|
||||||
"""A base for Cursor classes. Useful attributes:
|
"""A base for Cursor classes. Useful attributes:
|
||||||
@ -180,9 +177,8 @@ class BaseCursor(object):
|
|||||||
"""
|
"""
|
||||||
del self.messages[:]
|
del self.messages[:]
|
||||||
db = self._get_db()
|
db = self._get_db()
|
||||||
charset = normalize_utf8mb4(db.character_set_name())
|
|
||||||
if isinstance(query, unicode):
|
if isinstance(query, unicode):
|
||||||
query = query.encode(charset)
|
query = query.encode(db.unicode_literal.charset)
|
||||||
if args is not None:
|
if args is not None:
|
||||||
query = query % db.literal(args)
|
query = query % db.literal(args)
|
||||||
try:
|
try:
|
||||||
@ -228,8 +224,8 @@ class BaseCursor(object):
|
|||||||
del self.messages[:]
|
del self.messages[:]
|
||||||
db = self._get_db()
|
db = self._get_db()
|
||||||
if not args: return
|
if not args: return
|
||||||
charset = normalize_utf8mb4(db.character_set_name())
|
if isinstance(query, unicode):
|
||||||
if isinstance(query, unicode): query = query.encode(charset)
|
query = query.encode(db.unicode_literal.charset)
|
||||||
m = insert_values.search(query)
|
m = insert_values.search(query)
|
||||||
if not m:
|
if not m:
|
||||||
r = 0
|
r = 0
|
||||||
@ -288,12 +284,11 @@ class BaseCursor(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
db = self._get_db()
|
db = self._get_db()
|
||||||
charset = db.character_set_name()
|
|
||||||
for index, arg in enumerate(args):
|
for index, arg in enumerate(args):
|
||||||
q = "SET @_%s_%d=%s" % (procname, index,
|
q = "SET @_%s_%d=%s" % (procname, index,
|
||||||
db.literal(arg))
|
db.literal(arg))
|
||||||
if isinstance(q, unicode):
|
if isinstance(q, unicode):
|
||||||
q = q.encode(charset)
|
q = q.encode(db.unicode_literal.charset)
|
||||||
self._query(q)
|
self._query(q)
|
||||||
self.nextset()
|
self.nextset()
|
||||||
|
|
||||||
@ -301,7 +296,7 @@ class BaseCursor(object):
|
|||||||
','.join(['@_%s_%d' % (procname, i)
|
','.join(['@_%s_%d' % (procname, i)
|
||||||
for i in range(len(args))]))
|
for i in range(len(args))]))
|
||||||
if type(q) is UnicodeType:
|
if type(q) is UnicodeType:
|
||||||
q = q.encode(charset)
|
q = q.encode(db.unicode_literal.charset)
|
||||||
self._query(q)
|
self._query(q)
|
||||||
self._executed = q
|
self._executed = q
|
||||||
if not self._defer_warnings: self._warning_check()
|
if not self._defer_warnings: self._warning_check()
|
||||||
|
Reference in New Issue
Block a user