Skip to content

Commit 78ffff8

Browse files
committed
Revert "BUG#36570707: Collation set on connect using C-Extension is ignored"
This reverts commit 9f12cb6.
1 parent 9f12cb6 commit 78ffff8

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

CHANGES.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ v9.0.0
1515
- WL#16318: Deprecate Cursors Prepared Raw and Named Tuple
1616
- WL#16283: Remove OpenTelemetry Bundled Installation
1717
- BUG#36611371: Update dnspython required versions to allow latest 2.6.1
18-
- BUG#36570707: Collation set on connect using C-Extension is ignored
1918
- BUG#36476195: Incorrect escaping in pure Python mode if sql_mode includes NO_BACKSLASH_ESCAPES
2019
- BUG#36289767: MySQLCursorBufferedRaw does not skip conversion
2120

mysql-connector-python/lib/mysql/connector/abstracts.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,6 +1269,13 @@ def set_charset_collation(
12691269

12701270
self._execute_query(f"SET NAMES '{charset_name}' COLLATE '{collation_name}'")
12711271

1272+
try:
1273+
# Required for C Extension
1274+
self.set_character_set_name(charset_name)
1275+
except AttributeError:
1276+
# Not required for pure Python connection
1277+
pass
1278+
12721279
if self.converter:
12731280
self.converter.set_charset(charset_name, character_set=self._character_set)
12741281

mysql-connector-python/tests/cext/test_cext_connection.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,11 @@ def test_connection_id(self):
197197
def test_cursor(self):
198198
"""Test CEXT cursors."""
199199

200-
class FalseCursor: ...
200+
class FalseCursor:
201+
...
201202

202-
class TrueCursor(cursor_cext.CMySQLCursor): ...
203+
class TrueCursor(cursor_cext.CMySQLCursor):
204+
...
203205

204206
self.assertRaises(
205207
errors.ProgrammingError, self.cnx.cursor, cursor_class=FalseCursor
@@ -283,9 +285,6 @@ def test_character_set(self):
283285
self.assertTupleEqual(("ascii", "ascii_general_ci"), res)
284286

285287
for charset_id, charset, collation in [
286-
(303, "utf8mb4", "utf8mb4_ja_0900_as_cs"),
287-
(46, "utf8mb4", "utf8mb4_bin"),
288-
(45, "utf8mb4", "utf8mb4_general_ci"),
289288
(26, "cp1250", "cp1250_general_ci"),
290289
(8, "latin1", "latin1_swedish_ci"),
291290
]:
@@ -297,11 +296,6 @@ def test_character_set(self):
297296
cur.execute("SELECT @@character_set_client, @@collation_connection")
298297
res = cur.fetchone()
299298
self.assertTupleEqual((config["charset"], config["collation"]), res)
300-
cnx.cmd_change_user(config["user"], config["password"], config["database"], charset=charset_id)
301-
with cnx.cursor() as cur:
302-
cur.execute("SELECT @@character_set_client, @@collation_connection")
303-
res = cur.fetchone()
304-
self.assertTupleEqual((config["charset"], config["collation"]), res)
305299

306300
config["client_flags"] = (
307301
ClientFlag.get_default() | ClientFlag.CAN_HANDLE_EXPIRED_PASSWORDS

0 commit comments

Comments
 (0)