F.30. mchar#

F.30. mchar

F.30. mchar #

Модуль mchar предоставляет дополнительные типы данных для совместимости с Microsoft SQL Server (MS SQL).

F.30.1. Обзор #

Этот модуль был разработан для улучшения поддержки 1C Предприятия, самой популярной российской CRM и ERP системы.

Он реализует типы MCHAR и MVARCHAR, которые совместимы с MS SQL CHAR и VARCHAR соответственно, с сохранением всех ошибок. Кроме того, эти типы используют библиотеку ICU для сравнения и преобразования регистра, поэтому их поведение идентично на разных операционных системах.

Tantor SE-1C также включает расширение citext, которое предоставляет типы, аналогичные MCHAR. Однако это расширение не эмулирует поведение MS-SQL в отношении пробелов в конце значения.

Differences from Tantor SE-1C CHAR and VARCHAR are:

  • Сравнение без учета регистра

  • Обработка пробелов в конце строки

  • Эти типы всегда хранятся в виде двухбайтового значения Unicode, независимо от кодировки базы данных.

F.30.2. Дополнительные типы #

  • mchar — аналог типа char в MS SQL

  • mvarchar — аналог типа MS SQL varchar

F.30.3. Функции MCHAR и MVARCHAR #

  • Определяет функцию length(str)

  • Определяет функцию substr(str, pos[, length])

  • Определяет оператор ||, который будет применяться для объединения любых аргументов (mchar и mvarchar)

  • Определяет набор операторов: <, <=, =, >=, > для регистронезависимого сравнения (ICU)

  • Определяет набор операторов: &<, &<=, &=, &>=, &> для чувствительного к регистру сравнения (ICU)

  • Неявное преобразование между типами mchar и mvarchar

  • Поддержка B-дерева и хеш-индекса

  • Поддержка оператора LIKE [ESCAPE]

  • Поддержка оператора SIMILAR TO [ESCAPE]

  • Оператор ~ (регулярное выражение POSIX) поддерживается

  • Поддержка индексов для оператора LIKE

F.30.4. Авторы #

Олег Бартунов, Федор Сигаев.