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/Index
Associe um
número único ao mesmo.
Crie o arquivo
sql/share/charsets/MYSET.conf
. (O
arquivo sql/share/charsets/latin1.conf
pode 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 ctype
obtêm as primeiras 257
palavras. Os vetores to_lower
,
to_upper
e
sort_order
obtêm, cada um, as 256
palavras seguintes.
Adicione o nome do conjunto de caracteres às listas
CHARSETS_AVAILABLE
e
COMPILED_CHARSETS
no
configure.in
.
Reconfigure, recompile e teste.
Para um conjunto de caracteres complexo faça o seguinte:
Crie o arquivo strings/ctype-MYSET.c
na
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-*.c
existentes para ver o que precisa ser definido, por exemplo
strings/ctype-big5.c
. Perceba que os
vetores no seu arquivo deve ter nomes como
ctype_MYSET
,
to_lower_MYSET
e etc. Isto corresponde
aos arrays no conjunto simples de caracteres -
Secção 4.7.4, “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 configure
utiliza este
comentário para incluir o conjunto de caracteres na
biblioteca MySQL 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_AVAILABLE
e
COMPILED_CHARSETS
no
configure.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 MySQL. See Secção 1.7.1.1, “As Listas de Discussão do MySQL”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.