
Phil
09.08.2016
21:38:09


Макс
09.08.2016
21:43:04
Ну, концепции-то одинаковые, так или иначе. )
Понятно, что синтаксис немного отличается, есть какие-то свои фичи и все такое. Но с нуля мне это точно не нужно, вроде как. )
Но я нашел одну видяшку, которая вроде отвечает на мой вопрос, буду смотреть.
Спасибо за отсылку на раздел доки, обязательно загляну в него :)

Google

Phil
09.08.2016
21:45:35

Макс
09.08.2016
21:49:32
Я о том, что это как ни крути, а все равно реляционная база данных. Синтаксис - это мелочи. А вот с архитектурой нужно разобраться

Pavel
09.08.2016
21:56:08
Да можешь впринципе прямо сюда вопросы задавать
Первое на что я например напоролся когда переходил с мискл - это то что таймстампы в постгре содержат десятитысячные доли секунды)
Чтобы было по нормальному, надо объявлять как timestamp(0)
Вот на таких мелочах спотыкаешься обычно
А то что все разное - это видимо мнение админа. Мне как разработчику показалось все весьма одинаковым.

Макс
09.08.2016
22:02:47

Phil
09.08.2016
22:06:29
И функции все другие - я с работой с датами чуть голову не сломал
И дататайпы вообще другие - начиная от таймстампа, заканчивая децималами и немного не такими чарами

Pavel
09.08.2016
22:08:22
Экранирование другое - это что-то из разряда сложнопреодолимых барьеров?

Google

Phil
09.08.2016
22:09:17
Да. Я например не везде готов взять и переписать все запросы. Более того, я опять забыл как там экраниуется, сходу даже не скажу и полезу опять искать где читал про это в следующий раз

Pavel
09.08.2016
22:10:19
Если не работаешь постоянно то это нормально, а если работаешь то полюбому через некоторое время само в голову влезет.
Я ничего не переписывал, начинал новые проектики делать. Работу с кодировками вообще перестал замечать, как и работу с датами

Phil
09.08.2016
22:12:28
Да я про работу с кодировками уже всё ппонял. Тут 99% участников даже не задумывались над этим никогда

Pavel
09.08.2016
22:13:06
Ну реально же не было необходимости, все само работает ;)
А то что там надо отсортировать - так это в крайнем случае выносится на програмный уровень, кмк

Phil
09.08.2016
22:16:28

Pavel
09.08.2016
22:17:13
Да, получаешь список данных и сортируешь как угодно для вывода пользователю
А, с лимитом конечно не прокатит ;)
https://www.postgresql.org/docs/9.5/static/collation.html а вот это все не подходит?

Phil
09.08.2016
22:23:02
google UCA

Pavel
09.08.2016
22:33:58
Что-то мне кажется что решение проблемы есть. Если чуть дольше поискать..

Phil
09.08.2016
22:35:11
искаропки нет. пока единственное что есть - модуль для 9.3 который надо вкомпилировать

Pavel
10.08.2016
17:01:05
Я тут подумал, может быть это и правильно что пг опирается на системную локаль? Все таки операционная среда - это то что должно предоставлять как можно больше средств для обработки информации
А то получается что пг отсортирует по своей локали, другие программы по каким-то своим. Бардак получается.

Phil
10.08.2016
17:05:17

Аггей
10.08.2016
17:06:10
В документации сказано, что если локаль не соответствует набору хранимых символов, будут проблемы с сортировкой, индексами, функциями upper() и lower(). Буквально сегодня столкнулся с тем, что в кластере во всех параметрах lc_ указано US_en.UTF8, но ни одной из выше перечисленных проблем с кириллическими строками не воспроизводится
Что я делаю не так?

Pavel
10.08.2016
17:07:20
Там проблемы со смесью кириллических и национальных строк
(насколько я понял)

Google

Макс
10.08.2016
17:08:09

Pavel
10.08.2016
17:08:21

Alexey
10.08.2016
17:08:43
Символы — одни, наборы — нет.

Phil
10.08.2016
17:09:40

Alexey
10.08.2016
17:11:35
Для сортировок-то не влияет? Ага, щас.

Phil
10.08.2016
17:11:59

Pavel
10.08.2016
17:16:46
Very interesting

Phil
10.08.2016
17:18:11
ну это google libc UCA
google osX UCA locale
ну и так далее
даже гуглится что sort в linux и OSX по-разному отдаёт
эээээ
вот, в официальном PG нет локалей
Это про Docker

Алексей
10.08.2016
17:48:23
Фил, а как надо то ?
я не понимаю грубину проблемы
у меня плохо будут сортироваться данные при не правильной локали ?

Google

Алексей
10.08.2016
17:49:45
проблема только с сортировкой или еще всякими "a" in str

Макс
10.08.2016
17:55:01
давайте придумаем как локаль поменять ))
У меня что-то не получается с налета

Phil
10.08.2016
17:56:34

Макс
10.08.2016
18:02:03
Для генерации локали можно использовать:
dpkg-reconfigure locales
Но там диалог, в котором нужно выбрать нужную локаль для генерации. Это не подходит для докера, естественно. Задать значение генерируемой локали нельзя, похоже (

Maxim
10.08.2016
18:03:05
locale-gen --lang ru

ixpict
10.08.2016
18:03:08
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 ?

Макс
10.08.2016
18:05:35

Maxim
10.08.2016
18:06:32
export LANG=ru_RU.UTF-8
?

Макс
10.08.2016
18:07:41

Maxim
10.08.2016
18:07:48
и я бы еще добавил
export LC_MESSAGES=C
хуже нету, чем когда сообщения об ошибках начинают не на аглицком валиться
особенно когда их нагуглить пытаешься ;)

Макс
10.08.2016
18:08:31
это точно
Запишу в Gist ))
Но вот затем PG валится... печально
LOG: invalid value for parameter "lc_messages": "en_US.utf8"

Maxim
10.08.2016
18:58:54
потому что должно быть "C"

Макс
10.08.2016
19:00:39
так оно же и есть C после export LC_MESSAGES=C

D
10.08.2016
19:03:15
en_US.UTF-8

Макс
10.08.2016
19:03:33
без смены локали все работает как раз
а, нет, этот момент пройден, просто команда одна не применилась... Но едем дальше ))

Google

Макс
10.08.2016
19:07:18
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
initdb: invalid locale settings; check LANG and LC_* environment variables
Короче, разобрался. Нужно еще установить LC_CTYPE и LC_ALL. Если они пустые, то PG не запускается.

Maxim
10.08.2016
19:48:05
?

Аггей
10.08.2016
19:59:30
LC_ALL вроде не нужен
LC_Collate и lc_ctype

Макс
10.08.2016
20:02:37
да, если поставить LC_ALL, то там все параметры перезадаются
Может там еще какой-то скрытый параметр есть, который наследуется от LC_ALL?

Maxim
10.08.2016
20:23:11
ну выстави сначала LC_ALL, а потом перегрузи LC_MESSAGES

Макс
10.08.2016
20:34:30
фигня какая-то ?