Size: a a a

pgsql – PostgreSQL

2016 May 03

AG

Alex Gonchar in pgsql – PostgreSQL
на какой ос ?
источник

AG

Alex Gonchar in pgsql – PostgreSQL
в убунте по умолчанию будет UTF насколько я помню
источник

PK

Phil Kulin in pgsql – PostgreSQL
Debian 8. а почему будет? какой UTF-8? en_US? А нафига он мне сдался? Или это не чистый en_US? А где почитать? А почему на другом дистрибутиве так будет? От чего это зависит? А точно будет?
источник

PK

Phil Kulin in pgsql – PostgreSQL
Alex Gonchar
в убунте по умолчанию будет UTF насколько я помню
и кстати только если ты системную локаль укажешь
источник

AG

Alex Gonchar in pgsql – PostgreSQL
Phil Kulin
и кстати только если ты системную локаль укажешь
я об этом и говорю.
источник

PK

Phil Kulin in pgsql – PostgreSQL
Отвечаю на свои вопросы. Раскопал

1. lc_ctype (для всяких нумераций и точек), lc_collate (для сортировки) Postgres умеет только те, что умеет glibc и установлены в системе. Т.е. он использует системные. С этим связаны и попытки стандартного клиента воспользоваться ими же.  Поскольку исторически в Postgres зачем-то кувалдой вбита идеология системный пользователь === пользователю баз данных. Соответственно, если у вас в системе есть локаль, которая отсортирует и русский язык, и en_US и ss которая ß, то ок, нет - нет. Есть ли такое в Linux я хз. Похоже C.UTF-8, но я не уверен. Это такой вопрос для отдельного исследования и решение спорное.

2. encoding соответственно для хранения - то что прошито http://www.postgresql.org/docs/current/static/multibyte.html  (и там таблицы соответствия). Походе UTF-8 он таки алиасит UTF8 и можно и так, и так писать. encoding используется для хранения и для конвертации между сервером и клиентом. Чтобы была конвертация, надо на клиенте сделать SET NAMES "блабла". Postgres достаточно однозначный - или конвертация есть, или её нет, голову сломать сложно. Имплементация кодировки и переконвертации свои, не системные (и таблицы свои, и вот это перечесление свое).

3. Кодировку/локаль если задали, то всё. Если какой-нибудь окорок запихал докером докер через докер чтобы докер SQL_ASCII или LC_COLLATE C - то это навсегда.  И таких окороков  145%. Дамп, прибили базу, создали заново с новыми параметрами, залили обратно дамп. Это может и хорошо. Никогда не доверял это ALTER TABLE.
источник

PK

Phil Kulin in pgsql – PostgreSQL
"стручок" initdb в этом кошмаре я пока не понял. пойму напишу
источник

PK

Phil Kulin in pgsql – PostgreSQL
В postgres можно переписать какую-нибудь строчку в pg_hba не трогая этого pg_hba?
источник

A

Alexey in pgsql – PostgreSQL
звучит как-то взаимоисключающе
источник

A

Alexey in pgsql – PostgreSQL
типа поменять структуру памяти временно с новым конфигом?
источник

PK

Phil Kulin in pgsql – PostgreSQL
не хочу трогать пакетный конфиг, хочу своим перебить
источник

A

Alexey in pgsql – PostgreSQL
эм... а что будешь с postgresql.conf делать?
и по факту, pg_hba это не пакетный конфиг. Он создается как раз при initdb и к пакета (rpm/deb) отношения не имеет
источник

PK

Phil Kulin in pgsql – PostgreSQL
Alexey
эм... а что будешь с postgresql.conf делать?
и по факту, pg_hba это не пакетный конфиг. Он создается как раз при initdb и к пакета (rpm/deb) отношения не имеет
хм... а это интересно
источник

PK

Phil Kulin in pgsql – PostgreSQL
Я что-то не могу никак найти место в конфиге, где префорк сделать. И как-то не гуглится
источник

A

Alexey in pgsql – PostgreSQL
префорк чего?
источник

PK

Phil Kulin in pgsql – PostgreSQL
Обработчиков запросов
источник

A

Alexey in pgsql – PostgreSQL
эм... это что-то из мира httpd чтоль?
источник

PK

Phil Kulin in pgsql – PostgreSQL
Ну как пул обработчиков сделать? Как-то эта тема даже не упоминается... Или я что-то пропустил
источник

PK

Phil Kulin in pgsql – PostgreSQL
Alexey
эм... это что-то из мира httpd чтоль?
Скорее из мира *nix
источник

A

Alexey in pgsql – PostgreSQL
пул обработчиков делается на стороне клиента
источник