Page MenuHomePhabricator

When "utf8mb4" is available, use it as the default client charset when invoking standalone "mysql" commands
ClosedPublic

Authored by epriestley on Aug 27 2019, 10:33 PM.
Tags
None
Referenced Files
F18182127: D20742.id49456.diff
Sat, Aug 16, 9:06 AM
F18173397: D20742.id49455.diff
Fri, Aug 15, 7:43 PM
F17834256: D20742.id49456.diff
Jul 26 2025, 2:12 PM
F17834255: D20742.id49455.diff
Jul 26 2025, 2:12 PM
F17833733: D20742.id.diff
Jul 26 2025, 1:48 PM
F17827696: D20742.id.diff
Jul 26 2025, 8:27 AM
F17800275: D20742.diff
Jul 25 2025, 6:14 AM
F17755981: D20742.diff
Jul 22 2025, 1:30 PM
Subscribers
None

Details

Summary

Fixes T13390. We have some old code which doesn't dynamically select between "utf8mb4" and "utf8". This can lead to dumping utf8mb4 data over a utf8 connection in bin/storage dump, which possibly corrupts some emoji/whales.

Instead, prefer "utf8mb4" if it's available.

Test Plan

Ran bin/storage dump and bin/storage shell, saw sub-commands select utf8mb4 as the client charset.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable