Снабдить MySQL новым набором символов можно следующим образом.
Определите, является ли новый набор символов простым или сложным. Если для работы с этим набором никаких специальных процедур обработки строк и поддержки многобайтовых символов не требуется, он является простым. Если вышеперечисленные возможности необходимы, этот набор символов относится к сложным.
Например, наборы latin1 и
danish - простые, а
big5 и czech -
сложные.
Для всех приведенных ниже примеров
предполагается, что используемый
набор символов называется
MYSET.
Для создания простого набора достаточно сделать следующее:
Вставьте имя MYSET в
конец файла
sql/share/charsets/Index и
присвойте этому набору символов
уникальный номер.
Создайте файл
sql/share/charsets/MYSET.conf. (в
качестве основы можно
использовать файл
sql/share/charsets/latin1.conf).
Правила составления этого файла
очень просты:
Комментарием считается целая
строка, начинающаяся с символа
‘#’.
Слова разделяются любым количеством непечатаемых символов.
При определении набора символов каждое слово должно представлять собой число в шестнадцатеричной системе счисления.
Массив ctype занимает первых 257
слов. За ним следуют массивы
to_lower,
to_upper[] и
sort_order[], каждый из
которых занимает 256 слов.
Добавьте имя набора символов в
списки CHARSETS_AVAILABLE и
COMPILED_CHARSETS файла
configure.in.
Перенастройте, перекомпилируйте и протестируйте систему.
Для создания сложного набора необходимо выполнить следующие действия:
Создайте файл strings/ctype-MYSET.c в исходном дистрибутиве MySQL.
Вставьте имя MYSET в конец файла sql/share/charsets/Index и присвойте этому набору символов уникальный номер.
Просмотрите один из существующих файлов ctype-*.c (например strings/ctype-big5.c) и узнайте, что нужно определить. Не забывайте, что имена массивов в вашем файле должны быть похожи на следующие: ctype_MYSET, to_lower_MYSET и т.п. Эти имена соответствуют именам массивов из простого набора символов (see Раздел 4.6.4, «Массивы определения символов»).
В начале файла целесообразно поместить комментарий наподобие следующего:
/* этот комментарий разбирается configure для создания ctype.c, поэтому не меняйте его, если не уверены в правильности своих действий. * .configure. number_MYSET=MYNUMBER .configure. strxfrm_multiply_MYSET=N .configure. mbmaxlen_MYSET=N */
Программа configure использует этот комментарий для линкования набора символов с библиотекой MySQL. Значение строк strxfrm_multiply и mbmaxlen будет разъяснено ниже. Использовать их нужно только в том случае, если вам нужны функции для сортировки строк или работы с многобайтовыми наборами символов соответственно.
После этого нужно создать некоторые из следующих функций:
my_strncoll_MYSET()
my_strcoll_MYSET()
my_strxfrm_MYSET()
my_like_range_MYSET()
Добавьте имя набора символов в
списки CHARSETS_AVAILABLE и
COMPILED_CHARSETS файла
configure.in.
Перенастройте, перекомпилируйте и протестируйте систему.
Более подробные инструкции
приведены в файле
sql/share/charsets/README.
Если вы хотите, чтобы ваш набор
символов был включен в комплект
поставки MySQL, вышлите патч с ним по
адресу <internals@lists.mysql.com>.
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.
© 1995-2005 MySQL AB. All rights reserved.
