# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 4 Администрирование баз данных
    • 4.6 Локализация MySQL и использование национальных алфавитов
      • 4.6.1 Набор символов, применяющийся для записи данных и сортировки
      • 4.6.2 Сообщения об ошибках на языках, отличных от английского
      • 4.6.3 Добавление набора символов
      • 4.6.4 Массивы определения символов
      • 4.6.5 Поддержка упорядочивания строк
      • 4.6.6 Поддержка многобайтовых символов
      • 4.6.7 Проблемы с наборами символов

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

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, вышлите патч с ним по адресу [email protected].

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.