Adicionando um Novo Conjunto de Caracteres
Para adicionar outro conjunto de caracteres ao MySQL, utilize o seguinte procedimento.
Decida se o conjunto é simples ou complexo. Se o conjunto de caracteres não necessitar do uso de rotinas especiais de classificação de strings para ordenação e também não necessitar de suporte à caracteres multi-byte, será simples. Se ele necessitar de alguns destes recursos, será complexo.
Por exemplo, latin1 e danish são conjuntos simples de caracteres enquanto big5 ou czech são conjuntos de caracteres complexos.
Na seguinte seção, assumimos que você nomeou seu conjunto de caracteres como MYSET.
Para um conjunto de caracteres simples use o seguinte:
- Adicione MYSET para o final do arquivo
sql/share/charsets/IndexAssocie um número único ao mesmo. - Crie o arquivo
sql/share/charsets/MYSET.conf. (O arquivosql/share/charsets/latin1.confpode ser utilizado como base para isto).A sintaxe para o arquivo é muito simples:
- Comentários iniciam com um caractere '#' e continuam até o fim da linha.
- Palavras são separadas por quantidades arbitrárias de espaços em brancos.
- Ao definir o conjunto de caracteres, cada palavra deve ser um número no formato hexadecimal
- O vetor
ctypeobtêm as primeiras 257 palavras. Os vetoresto_lower,to_upperesort_orderobtêm, cada um, as 256 palavras seguintes.
- Adicione o nome do conjunto de caracteres às listas
CHARSETS_AVAILABLEeCOMPILED_CHARSETSnoconfigure.in. - Reconfigure, recompile e teste.
Para um conjunto de caracteres complexo faça o seguinte:
- Crie o arquivo
strings/ctype-MYSET.cna distribuição fonte do MYSQL. - Adicione MYSET ao final do arquivo
sql/share/charsets/Index. Associe um número único a ele. - Procure por um dos arquivos
ctype-*.cexistentes para ver o que precisa ser definido, por exemplostrings/ctype-big5.c. Perceba que os vetores no seu arquivo deve ter nomes comoctype_MYSET,to_lower_MYSETe etc. Isto corresponde aos arrays no conjunto simples de caracteres - "Os Vetores de Definições de Caracteres" - para um conjunto de caracteres complexo. - Próximo ao topo do arquivo, coloque um comentário especial como este:
/* * This comment is parsed by configure to create ctype.c, * so don't change it unless you know what you are doing. * * .configure. number_MYSET=MYNUMBER * .configure. strxfrm_multiply_MYSET=N * .configure. mbmaxlen_MYSET=N */
O programa
configureutiliza este comentário para incluir o conjunto de caracteres na biblioteca MariaDB automaticamente.As linhas strxfrm_multiply e mbmaxlen serão explicadas nas próximas seções. Só as inclua se você precisar de funções de ordenação de strings ou das funções de conjuntos de caracteres multi-byte, respectivamente.
- Você deve então criar algumas das seguintes funções:
my_strncoll_MYSET()my_strcoll_MYSET()my_strxfrm_MYSET()my_like_range_MYSET()
- Adicione o nome do conjunto de caracteres às listas
CHARSETS_AVAILABLEeCOMPILED_CHARSETSnoconfigure.in. - Reconfigure, recompile e teste.
O arquivo sql/share/charsets/README fornece algumas instruções a mais.
Se você desejar ter o seu conjunto de caracteres incluído na distribuição MySQL, envie um email com um patch para a lista de email internals
do MariaDB. Leia "As Listas de Discussão do MariaDB".