 |

-
Choisir un nom pour le jeu de caractère, dénommé
MYSET .
-
Créer le fichier `strings/ctype-MYSET.c' dans la distribution source de MySQL.
-
Regarder dans le fichier `ctype-*.c' pour savoir ce qui doit être défini.
Notez que les tableaux de votre fichier doivent avoir des noms du type
ctype_MYSET , to_lower_MYSET etc...
to_lower[] et to_upper[] sont de simples tableaux qui contiennent les caractères minuscules et majuscules du jeu de caractère. Par exemple :
to_lower['A'] doit contenir 'a'
to_upper['a'] doit contenir 'A'
sort_order[] est une map qui indique comment les caractères doivent être ordonné
lors des comparaisons et des tris.
Pour la plus part des jeux de caractères, c'est la même valeur que pour to_upper[] (ce qui signifie que le tri sera insensible à la casse). MySQL effectuera les tris en se basant sur la valeur de sort_order[character] .
ctype[] est un tableau de valeurs de bit, avec un élément par caractère.
(Notez que to_lower[] , to_upper[] et sort_order[] sont indexés par valeur de caractère, mais que ctype[] est indexé par valeur de caractère +1. C'est une vieille technique qui permet de gérer les EOF).
Vous pouvez trouver la définitions de ces champs de bit dans `m_ctype.h':
#define _U 01 /* Majuscule */
#define _L 02 /* Minuscule */
#define _N 04 /* Chiffre */
#define _S 010 /* Espacement*/
#define _P 020 /* Ponctuation */
#define _C 040 /* Caractère de contrôle */
#define _B 0100 /* Blanc */
#define _X 0200 /* Chiffre hexadécimal */
L'entrée de ctype[] pour chaque caractère doit être l'union des masques de bits qui décrivent le caractère.
Par exemple, 'A' est une caractère majuscule, (_U ) mais aussi un
chiffre hexadécimal. (_X ), donc son type devrait contenir ctype['A'+1]
_U + _X = 01 + 0200 = 0201
-
Ajouter un numéro unique pour votre jeu de caractères dans `include/m_ctype.h.in'.
-
Ajouter le nom du jeu de caractère dans la liste
CHARSETS_AVAILABLE de configure.in .
-
Reconfigurer, recompiler et tester.
|