Справочное руководство по MySQL

4.6.3 Добавление набора символов

4.6.3 Добавление набора символов

Снабдить MySQL новым набором символов можно следующим образом.

Определите, является ли новый набор символов простым или сложным. Если для работы с этим набором никаких специальных процедур обработки строк и поддержки многобайтовых символов не требуется, он является простым. Если вышеперечисленные возможности необходимы, этот набор символов относится к сложным.

Например, наборы latin1 и danish - простые, а big5 и czech - сложные.

Для всех приведенных ниже примеров предполагается, что используемый набор символов называется MYSET.

Для создания простого набора достаточно сделать следующее:

  1. Вставьте имя MYSET в конец файла `sql/share/charsets/Index' и присвойте этому набору символов уникальный номер.
  2. Создайте файл `sql/share/charsets/MYSET.conf'. (в качестве основы можно использовать файл `sql/share/charsets/latin1.conf'). Правила составления этого файла очень просты:
    • Комментарием считается целая строка, начинающаяся с символа `#'.
    • Слова разделяются любым количеством непечатаемых символов.
    • При определении набора символов каждое слово должно представлять собой число в шестнадцатеричной системе счисления.
    • Массив ctype занимает первых 257 слов. За ним следуют массивы to_lower, to_upper и sort_order, каждый из которых занимает 256 слов.
    See section 4.6.4 Массивы определения символов.
  3. Добавьте имя набора символов в списки CHARSETS_AVAILABLE и COMPILED_CHARSETS файла `configure.in'.
  4. Перенастройте, перекомпилируйте и протестируйте систему.

Для создания сложного набора необходимо выполнить следующие действия:

  1. Создайте файл strings/ctype-MYSET.c в исходном дистрибутиве MySQL.
  2. Вставьте имя MYSET в конец файла sql/share/charsets/Index и присвойте этому набору символов уникальный номер.
  3. Просмотрите один из существующих файлов ctype-*.c (например strings/ctype-big5.c) и узнайте, что нужно определить. Не забывайте, что имена массивов в вашем файле должны быть похожи на следующие: ctype_MYSET, to_lower_MYSET и т.п. Эти имена соответствуют именам массивов из простого набора символов (see section 4.6.4 Массивы определения символов).
  4. В начале файла целесообразно поместить комментарий наподобие следующего:
    /*
    этот комментарий разбирается configure для создания ctype.c,
    поэтому не меняйте его, если не уверены в правильности своих действий.
    *
    .configure. number_MYSET=MYNUMBER
    .configure. strxfrm_multiply_MYSET=N
    .configure. mbmaxlen_MYSET=N
    */
    
    Программа configure использует этот комментарий для линкования набора символов с библиотекой MySQL. Значение строк strxfrm_multiply и mbmaxlen будет разъяснено ниже. Использовать их нужно только в том случае, если вам нужны функции для сортировки строк или работы с многобайтовыми наборами символов соответственно.
  5. После этого нужно создать некоторые из следующих функций:
    • my_strncoll_MYSET()
    • my_strcoll_MYSET()
    • my_strxfrm_MYSET()
    • my_like_range_MYSET()
    See section 4.6.5 Поддержка упорядочивания строк.
  6. Добавьте имя набора символов в списки CHARSETS_AVAILABLE и COMPILED_CHARSETS файла `configure.in'.
  7. Перенастройте, перекомпилируйте и протестируйте систему.

Более подробные инструкции приведены в файле `sql/share/charsets/README'.

Если вы хотите, чтобы ваш набор символов был включен в комплект поставки MySQL, вышлите патч с ним по адресу internals@lists.mysql.com.








HTML Site Map

Rambler's Top100
© 2009 Тест скорости интернета |  Boont.Ru