fix: add missing charset encoding for UTF8MB4_0900_BIN #3855
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix charset encoding mapping for UTF8MB4_0900_BIN
Problem
MySQL2 throws
Encoding not recognized: 'undefined'
error when connecting to MySQL 8.0+ servers usingutf8mb4_0900_bin
collation.Root Cause
Mismatch between
charsets.js
andcharset_encodings.js
:charsets.js
definesUTF8MB4_0900_BIN = 309
charset_encodings.js
array has length 309 (indices 0-308)charset_encodings[309]
returnsundefined
Iconv.getDecoder(undefined)
throws encoding errorSolution
Add missing encoding mapping for index 309 in
charset_encodings.js
.Changes
lib/constants/charset_encodings.js
'utf8'
entry at index 309 forUTF8MB4_0900_BIN
Impact
utf8mb4_0900_bin
collationEncoding not recognized: 'undefined'
errors