Cette section présente la procédure à suivre pour ajouter un autre jeu de caractères à MySQL. Vous devez avoir une distribution source pour suivre ces instructions.
Pour choisir la procédure adaptée, il faut savoir si le jeu de caractères est simple ou complexe :
Si le jeu de caractères n'a pas besoin d'utiliser des routines de collations de chaînes spéciales pour le tri et n'a pas besoin du support des jeux de caractères multi-octets, il est simple.
S'il a besoin de l'une de ces deux fonctionnalités, il est complexe.
Par exemple, latin1
et
danish
sont des jeux de caractères simples
tandis que big5
et czech
sont complexes.
Dans la section suivante, nous supposons que vous nommez votre
jeu de caractères MONJEU
.
Pour un jeu de caractères simple, effectuez ce qui suit :
Ajoutez MONJEU
à la fin du fichier
sql/share/charsets/Index
Assignez-lui
un nombre unique.
Créez le fichier
sql/share/charsets/MONJEU.conf
. (Vous
pouvez vous inspirer de
sql/share/charsets/latin1.conf
.)
La syntaxe pour le fichier est très simple :
Les commentaires commencent avec le caractère
‘#
’ et se terminent à la
fin de la ligne.
Les mots sont séparés par un nombre changeant d'espaces blancs.
Lors de la définition d'un jeu de caractères, chaque mot doit être un nombre au format hexadécimal.
Le tableau ctype
prends les 257
premiers mots. Les tableaux
to_lower[]
,
to_upper[]
et
sort_order[]
prennent chacun 256 mots
après cela.
See Section 5.8.4, « Le tableau de définition des caractères ».
Ajoutez le nom du jeu de caractères aux listes
CHARSETS_AVAILABLE
et
COMPILED_CHARSETS
dans
configure.in
.
Reconfigurez, recompilez et testez.
Pour un jeu de caractères complexe faites ce qui suit :
Créez le fichier
strings/ctype-MONJEU.c
dans la
distribution des sources MySQL.
Ajoutez MONJEU
à la fin du fichier
sql/share/charsets/Index
. Assignez-lui
un nombre unique.
Regardez un des fichiers ctype-*.c
existant pour voir ce qui doit être défini, par exemple,
strings/ctype-big5.c
. Notez que les
tableaux dans votre fichier doivent avoir des noms tels que
ctype_MONJEU
,
to_lower_MONJEU
, etc. Cela correspond aux
tableaux dans les jeux de caractères simples. See
Section 5.8.4, « Le tableau de définition des caractères ». Pour un jeu de
caractère complexe
Au début du fichier, placez un commentaire spécial comme celui-ci :
/* * This comment is parsed by configure to create ctype.c, * so don't change it unless you know what you are doing. * * .configure. number_MONJEU=MYNUMBER * .configure. strxfrm_multiply_MONJEU=N * .configure. mbmaxlen_MONJEU=N */
Le programme configure
utilise ce
commentaire pour inclure automatiquement le jeu de
caractères dans la bibliothèque MySQL.
Les lignes strxfrm_multiply
et
mbmaxlen
seront expliquées dans les
sections suivantes. Ne les incluez que si vous avez besoin
des fonctions d'assemblage des chaînes ou des fonctions de
jeu de caractères multi-octets, respectivement.
Vous devez alors créer les fonctions suivantes :
my_strncoll_MONJEU()
my_strcoll_MONJEU()
my_strxfrm_MONJEU()
my_like_range_MONJEU()
Ajoutez le nom du jeu de caractères aux listes
CHARSETS_AVAILABLE
et
COMPILED_CHARSETS
dans
configure.in
.
Reconfigurez, recompilez et testez.
Le fichier sql/share/charsets/README
fournit plus d'instructions.
Si vous voulez qu'un jeu de caractères soit ajouté dans la
distribution MySQL, envoyez un patch aux listes
internes
. See Section 1.4.1.1, « Les listes de diffusion de 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.