поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    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 Раздел 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 Раздел 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 Раздел 4.6.5, «Поддержка упорядочивания строк».

    6. Добавьте имя набора символов в списки CHARSETS_AVAILABLE и COMPILED_CHARSETS файла configure.in.

    7. Перенастройте, перекомпилируйте и протестируйте систему.

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

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

     
    © 1997-2005 PHP Club Team
    Rambler's Top100