'use strict'; // see tools/generate-charset-mapping.js // basicalliy result of "SHOW COLLATION" query const encodings = [ 'utf8', 'big5', 'latin2', 'dec8', 'cp850', 'latin1', 'hp8', 'koi8r', 'latin1', 'latin2', 'swe7', 'ascii', 'eucjp', 'sjis', 'cp1251', 'latin1', 'hebrew', 'utf8', 'tis620', 'euckr', 'latin7', 'latin2', 'koi8u', 'cp1251', 'gb2312', 'greek', 'cp1250', 'latin2', 'gbk', 'cp1257', 'latin5', 'latin1', 'armscii8', 'cesu8', 'cp1250', 'ucs2', 'cp866', 'keybcs2', 'macintosh', 'macroman', 'cp852', 'latin7', 'latin7', 'macintosh', 'cp1250', 'utf8', 'utf8', 'latin1', 'latin1', 'latin1', 'cp1251', 'cp1251', 'cp1251', 'macroman', 'utf16', 'utf16', 'utf16-le', 'cp1256', 'cp1257', 'cp1257', 'utf32', 'utf32', 'utf16-le', 'binary', 'armscii8', 'ascii', 'cp1250', 'cp1256', 'cp866', 'dec8', 'greek', 'hebrew', 'hp8', 'keybcs2', 'koi8r', 'koi8u', 'cesu8', 'latin2', 'latin5', 'latin7', 'cp850', 'cp852', 'swe7', 'cesu8', 'big5', 'euckr', 'gb2312', 'gbk', 'sjis', 'tis620', 'ucs2', 'eucjp', 'geostd8', 'geostd8', 'latin1', 'cp932', 'cp932', 'eucjpms', 'eucjpms', 'cp1250', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf16', 'utf8', 'utf8', 'utf8', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'ucs2', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'ucs2', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf32', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'cesu8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'cesu8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'gb18030', 'gb18030', 'gb18030', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', 'utf8', ]; // MariaDB NO PAD collations mirror their PAD SPACE counterparts: // collation id = PAD SPACE collation id + 1024 const padSpaceLength = encodings.length; for (let id = 1025; id < 1024 + padSpaceLength; id++) { encodings[id] = encodings[id - 1024]; } // MariaDB UCA-14.0.0 (uca1400) collations use fixed 256-id blocks // per character set, each covering the PAD SPACE and NO PAD variants const uca1400Blocks = [ [2048, 'cesu8'], // utf8mb3 [2304, 'utf8'], // utf8mb4 [2560, 'ucs2'], // ucs2 [2816, 'utf16'], // utf16 [3072, 'utf32'], // utf32 ]; for (const [start, encoding] of uca1400Blocks) { for (let id = start; id < start + 256; id++) { encodings[id] = encoding; } } module.exports = encodings;