Currently MariaDB's has two utf8 character sets:
- utf8 that can store 1 to 3 byte characters and implements Unicode BMP range U+0000..U+FFFF
This character set is also available under name "utf8mb3"
- utf8mb4 that cat store 1 to 4 byte characters and implements the full Unicode standard range U+0000..U+10FFFF.
In long terms we want the name utf8 mean the full featured UTF-8.
We'll do a few preparatory steps:
1. Change the main name of the 3-byte character set from "utf8" to "utf8m3" and make "utf8" alias for "utf8mb3". This will change all SHOW and INFORMATION_SCHEMA output to display utf8mb3 instread of utf8, as well as change mysqldump to dump utf8mb3 instead of just utf8.
2. Add a new server option, say --utf8-is-utf8mb3, which will be true by default, but the DBA will be able to change it to false and thus make "utf8" mean "utf8mb4".
3. A few releases later we'll change --utf8-is-utf8mb3 to be "false" by default.
Another option is to implement this SQL standard statement: