Я разрабатываю приложение в Rails для OS X с использованием PostgreSQL 8.4. Мне нужно настроить базу данных для приложения, чтобы стандартные текстовые запросы не чувствительны к регистру. Например:
ВЫБРАТЬ * ИЗ Документов, ГДЕ title = 'невероятный документ'
должен возвращать тот же результат, что и:
ВЫБРАТЬ * ИЗ документов, ГДЕ title = 'Невероятный документ'
Просто чтобы прояснить, я не хочу использовать:
(1) LIKE в предложении where или любом другом типе специальных операторов сравнения
(2) citext для типа данных столбца или любого другого специального индекса столбца
(3) любой тип полнотекстового программного обеспечения, такого как Sphinx
Что мне нужно, так это настроить язык базы данных для поддержки сравнения текста без учета регистра. Я нахожусь на Mac OS X (10.5 Leopard) и уже пытался установить кодировку на "LATIN1", с Collation и Ctype, оба на "en_US.ISO8859-1" Пока безуспешно.
Любая помощь или предложения приветствуются.
Спасибо!
Обновление
Я отметил один из приведенных ответов как правильный ответ из уважения к ответившим людям. Однако я решил решить эту проблему не так, как предполагалось. После дальнейшего рассмотрения приложения, есть только несколько случаев, когда мне нужно сравнение без учета регистра с полями базы данных, поэтому я буду создавать shadow поля базы данных для тех, которые мне нужно сравнивать без учета регистра , Например, name и name_lower. Я полагаю, что где-то встречал это решение в сети. Надеемся, что PostgreSQL позволит использовать параметры сопоставления, аналогичные тем, что SQL Server предоставляет в будущем (например, DOCI).
Отдельное спасибо всем, кто откликнулся.