Esta sección explica el procedimiento para añadir nuevos juegos de caracteres a MySQL. Debe tener una distribución de código fuente de MySQL para utilizar estas instrucciones.
Para escoger el método apropiado, decida si el juego de caracteres es simple o complejo:
Si el juego de caracteres no necesita rutinas especiales de colación para ordenar, y no necesita soporte para cáracteres multi-byte, es simple.
Si necesita cualquiera de esas características, es complejo.
Por ejemplo, latin1
y
danish
son juegos de caracteres simples,
mientras que big5
y czech
son complejos.
En los siguientes procedimientos, el nombre de su juego de
caracteres está representado por
MYSET
.
Para un juego de caracteres simple, haga lo siguiente:
Añada MYSET
al final del archivo
sql/share/charsets/Index
. Asígnele un
número único.
Cree el archivo
sql/share/charsets/
.
(puede utilizar una copia de
MYSET
.confsql/share/charsets/latin1.conf
en la
que basarse.)
La sintaxis de este archivo es muy simple:
Los comentarios comienzan con un
carácter'#
' y continuan hasta el
final de la línea.
Las palabras están separadas por un número de espacios arbitrario.
Al definir el juego de caracteres, cada palabra debe ser un número en formato hexadecimal.
El array ctype
ocupa las primeras 257
palabras. Los arrays to_lower[]
,
to_upper[]
y
sort_order[]
ocupan 256 cada uno
después de eso.
Consulte Sección 5.9.4, “Los vectores de definición de caracteres”.
Añada el nombre del juego de caracteres a las listas
CHARSETS_AVAILABLE
y
COMPILED_CHARSETS
en
configure.in
.
Reconfigurar, recompilar, y comprobar.
Para un juego de caracteres complicado, haga lo siguiente:
Cree el archivo
strings/ctype-
en la distribución de código fuente MySQL.
MYSET
.c
Añada MYSET
al final del archivo
sql/share/charsets/Index
. Asígnele un
número único.
Mira uno de los archivos ctype-*.c
existentes (por ejemplo
strings/ctype-big5.c
) para ver qué
necesita definir. Tenga en cuenta que los arrays del archivo
deben tener nombres como
ctype_
,
MYSET
to_lower_
,
y etc. Estos corresponden a los arrays para un juego de
caracteres simple. Consulte
Sección 5.9.4, “Los vectores de definición de caracteres”.
MYSET
Cerca del inicio del archivo, ponga un comentario 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
*/
El programa configure utiliza este comentario para incluir el juego de caracteres en la librería MySQL automaticamente.
Las líneas strxfrm_multiply
y
mbmaxlen
se explican en las siguientes
secciones. Necesita incluirlas sólo si necesita las
funciones de colación de cadenas de caracteres o de
caracteres multi-bye, respectivamente.
Debería crear entonces alguna de las siguientes funciones:
my_strncoll_
MYSET
()
my_strcoll_
MYSET
()
my_strxfrm_
MYSET
()
my_like_range_
MYSET
()
Consulte Sección 5.9.5, “Soporte para colación de cadenas de caracteres”.
Añada el nombre del juego de caracteres a las listas
CHARSETS_AVAILABLE
y
COMPILED_CHARSETS
en
configure.in
.
Reconfigure, recompile, y compruebe.
El archivo sql/share/charsets/README
incluye instrucciones adicionales.
Si quiere que el juego de caracteres sea incluido en la
distribución MySQL, envíe un parche a la lista de correo
internals
de MySQL. Consulte
Sección 1.6.1.1, “Las listas de correo de MySQL”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.