Как я знаю, использует ли мой сервер PostgreSQL локаль “C”?

Как альтернатива веб-сервисам, можно использовать помещенный вызов документа от API RPC FrontPage. Это обладает дополнительным преимуществом того, чтобы позволять Вам обеспечить метаданные (столбцы) в том же запросе как данные файла. Очевидный недостаток состоит в том, что протокол немного более неясен (по сравнению с очень хорошо зарегистрированными веб-сервисами).

Для эталонного приложения, которое объясняет использование Размещенного на первой полосе RPC, посмотрите проект SharePad на CodePlex.

19
задан Matt Huggins 3 November 2009 в 07:17
поделиться

3 ответа

В настоящее время поддержка некоторых локалей [ docs ] может быть установлена ​​только во время initdb, но я думаю, что тот, который имеет отношение к _pattern_ops , можно изменить с помощью SET во время выполнения, LC_COLLATE. Чтобы увидеть установленные значения, вы можете использовать команду SHOW .

Например:

SHOW LC_COLLATE

_pattern_ops индексы полезны в столбцах, которые используют конструкции сопоставления с образцом, например LIKE или регулярные выражения. Вам все равно нужно создать обычный индекс (без _pattern_ops ), чтобы выполнить поиск равенства по индексу. Поэтому вы должны принять все это во внимание, чтобы увидеть, нужны ли вам такие индексы в ваших таблицах.

Что такое locale , это набор правил о порядке символов, форматировании и подобных вещах, которые варьируются от язык / страну на другой язык / страну. Например, локаль fr_CA (французский в Канаде) может иметь некоторые другие правила сортировки (или способ отображения чисел и т. Д.), Чем en_CA (английский в Канаде). Стандартный языковой стандарт «C» - это языковой стандарт по умолчанию, соответствующий стандартам POSIX. Допустимы только строгие символы ASCII, а правила упорядочивания и форматирования в основном соответствуют правилам en_US (американский английский)

. В вычислениях языковой стандарт - это набор параметры, определяющие пользователя язык, страна и любые специальные вариант предпочтений, которые пользователь хочет видеть в своем пользовательском интерфейсе. Обычно идентификатор локали состоит из хотя бы идентификатора языка и идентификатор региона.

19
ответ дан 30 November 2019 в 03:25
поделиться

If you've got the option...

You could recreate the database cluster with the C locale.

You need to pass the locale to initdb when initializing your Postgres instance.

You can do this regardless of what the server's default or user's locale is.

That's a server administration command though, not a database schema designers task. The cluster contains all the databases on the server, not just the one you're optimising.

It creates a brand new cluster, and does not migrate any of your existing databases or data. That'd be additional work.

Furthermore, if you're in a position where you can consider creating a new cluster as an option, you really should be considering using PostgreSQL 8.4 instead, which can have per-database locales, specified in the CREATE DATABASE statement.

1
ответ дан 30 November 2019 в 03:25
поделиться

psql -l

согласно руководству

пример вывода:

                               List of databases
    Name     | Owner  | Encoding |   Collate   |    Ctype    | Access privileges
-------------+--------+----------+-------------+-------------+-------------------
 packrd      | packrd | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres    | packrd | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0   | packrd | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/packrd        +
             |        |          |             |             | packrd=CTc/packrd
 template1   | packrd | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/packrd        +
             |        |          |             |             | packrd=CTc/packrd
(5 rows)
15
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: