
Yury
23.09.2016
20:02:04

Alexandr
23.09.2016
20:07:01
Спасибо
Именно то, что надо

Dmitriy
24.09.2016
09:22:52
если именно всех - думаю проще будет запрос select * from pg_indexes ;

Google

Айтуар
26.09.2016
09:19:38
Привет всем. Посоветуйте как превратить вывод селекта из одного стобца в строку через запятую?

Dmitrii
26.09.2016
09:21:03
string_agg вроде

Nikita
26.09.2016
09:21:19
select array_to_string(array_agg(g), ',') from generate_series(1,10) g;

Dmitriy
26.09.2016
09:22:59
Почитайте тут, что-то может подойти http://pgday.ru/files/pgmaster14/max.boguk.query.optimization.pdf

Dmitrii
26.09.2016
09:23:54
Проверил щас, да, string_agg(col, ',') будет работать как надо.

Айтуар
26.09.2016
09:25:07
только ещё бы от заголовка избавиться

Dmitrii
26.09.2016
09:25:36
Какого еще заголовка?

Айтуар
26.09.2016
09:26:13
типа такого
string_agg
------------
blabla
(1 row)

Dmitrii
26.09.2016
09:26:19
Подозреваю, что тебе надо просто добавить ... AS myText
Ну да.

Айтуар
26.09.2016
09:26:51

Google

Dmitrii
26.09.2016
09:27:03
Ну ведь да
Покажи запрос

Айтуар
26.09.2016
09:27:07
мне нужно читую стороку
select string_agg(table_name,', ') from information_schema.columns where table_schema='contingent' and table_name like '%binding';

Alex
26.09.2016
09:27:46
Psql ?

Dmitrii
26.09.2016
09:27:53
Так это у тебя в одиночном селекте оно показывает имя, так всегда.

Alex
26.09.2016
09:27:56
-t

Dmitrii
26.09.2016
09:28:01
Это нормально. По факту выбирается только значение

Аггей
26.09.2016
09:28:09
ты имеешь ввиду форматирование?

Айтуар
26.09.2016
09:28:38

Dmitrii
26.09.2016
09:28:44
А что оно делает?
Я что то не понял значит видимо :)

Аггей
26.09.2016
09:31:22
Форматирует вывод psql (-t - без всего ))

Nikita
26.09.2016
09:32:00

Stanislav
26.09.2016
10:17:16
Ох ребята-ребята, нарвался на грабли с pg_repack. Поставили на выходные табличку репакаться, все успешно репакнулось, но вот беда, прод слег, с утра разбирались, оказалось, что не все гладко он делает, там набилось 300+ UPDATE waiting на эту таблицу после репака и висело 6+ часов пока админы не сели выяснять что не так. Так что мониторьте кол-во вейтингов если юзаете pg_repack.
Если что, постгри 9.4
Ничему верить нельзя в мире постгри.

Mike Chuguniy
26.09.2016
10:19:56

Stanislav
26.09.2016
10:20:14
В мире мускуля как раз все намного прозрачнее.

Google

Mike Chuguniy
26.09.2016
10:21:13
В мире мыскля своих забав хватает более чем.

Stanislav
26.09.2016
10:24:10
Но еще раз, там все предсказуемо и ожидаемо. Включая проблемы консистентности и проблемы репликации. Все давно изучено и задокументировано.

nietzschebrod
26.09.2016
10:28:35
а pg_repack в коре? ох уж этот обманчивый мир постгри

Mike Chuguniy
26.09.2016
10:30:10
Станислав, а поведение сторонних продуктов в мире мыскля так же предсказуемо и ожидаемо, или всё-таки есть подводные камни. Я вот думаю, что подводные камни таки есть.

Stanislav
26.09.2016
10:35:02
Я думаю, что все согласны, что VACUUM FULL с продакшеном, мягко говоря, плохо совместим.

Mike Chuguniy
26.09.2016
10:40:00
А полное перестроение объектов в постгре без их эксклюзивной блокировки - это вот такой вот интересный миф. На который народ почему-то ведётся.
Я вот, например, не могу понять логики, которая позволяет заявлять о перестроении таблиц и индексов без их полной блокировки, на данных, которые в работе: вставляются, удаляются, изменяются, ну и вот это всё

Stanislav
26.09.2016
10:43:32
Бизнесу эти проблемы не интересны. Бизнесу нужна непрерывность.

Eugene
26.09.2016
10:55:27
http://momjian.us/main/writings/pgsql/features.pdf

Stanislav
26.09.2016
12:43:42
Один программист начал делать табличку
CREATE TABLE t2 AS SELECT * FROM t1;
Все шло неплохо в течение 50 часов, пока необходимость в табличке не отпала и программист не нажал Ctrl+C.
Отмена прошла быстро, а вот табличка - осталась. Разбирательсва показали, что виноват был автовакуум, которому по-хорошему нужно пропатчить мозги и запретить лезть к удаляемым табличкам.
Другого постгри у меня для вас нет.

Vadim
26.09.2016
12:45:07
а select into не получалось?

Darafei
26.09.2016
12:45:35
а какая разница?

Pavel
26.09.2016
12:46:08

Darafei
26.09.2016
12:46:37
а select into не получалось?
»This command is functionally similar to SELECT INTO, but it is preferred since it is less likely to be confused with other uses of the SELECT INTO syntax. Furthermore, CREATE TABLE AS offers a superset of the functionality offered by SELECT INTO.

Vadim
26.09.2016
12:47:21
ясно

Dmitriy
26.09.2016
13:05:33
ERROR: timestamp out of range - кто-нибудь сталкивался с подобной ошибкой? Никаких предпосылок не было. Произошло на 9.4.6.
также сценарий восстановления: создание нового кластера и восстановление из резервной копии? или есть другие варианты?

Darafei
26.09.2016
13:06:26
в окрестностях mysql_fdw что-то такое было

Dmitriy
26.09.2016
13:11:14
Все, нашел. my bad, приходил oom. БД неважная, никто ее не настраивал. Восстанавлю из бэкапа. заодно и на 9.5 обновлю

Google

Igor
26.09.2016
13:46:49
извините за оффтоп: о скидках на highload никто ничего не слышал? постгрес про среди партнёров числится.

Pavel
26.09.2016
18:19:51

Andrey
27.09.2016
07:07:42

Сергей
27.09.2016
07:09:48
Доброго дня!
Подскажите, пожалуйста, как себя ведут триггеры на READ ONLY реплике? У меня есть DML-триггеры, которые не хотелось бы, чтобы работали на реплике - они вызывают внешние функции отправки данных.

Kirill
27.09.2016
07:17:04
в функциях проверяйте
pg_is_in_recovery()

Admin
ERROR: S client not available

Сергей
27.09.2016
07:23:14
@kshvakov
Я правильно понимаю, что он возвращает TRUE на реплике?

Nikolay
27.09.2016
07:29:01

Dmitry
27.09.2016
07:30:29
Бессмысленное действие. Они и так не работают. Т.к. на реплике не выполняются DML. Репликация физическая, а не логическая. Мы же про стриминг говорим

Сергей
27.09.2016
07:32:47
Т.е. так и так ни один BEFORE/AFTER INSERT/UPDATE/DELETE триггер не сработает?

Dmitry
27.09.2016
07:35:00
Триггер срабатывает при выполнении DML. При накате по стримингу DML не выполняется. Что должно быть причиной вызова триггера?

Vadim
27.09.2016
07:35:37
у вас ПОТОКОВАЯ репликация. Реплицируется физика а не команды

Сергей
27.09.2016
07:35:54
Согласен, просто это будет первый раз, когда буду настраивать репликацию.
Спасибо всем за разъяснения!

Dmitry
27.09.2016
07:41:48
Если у вас триггеры дергают внешние функции, то тут вопрос к архитектуре приложения т.к. нарушена транзакционность. По идее, триггеры должны писать в очередь, типа RabbitMQ например, а функции выгрузки данных должны из нее выгребать. Тогда даже если кто-то на реплике дернет руками DML (который естественно не отработает и откатится), но при этом сработает before trigger - ничего гарантированно не сломается. Можно конечно костыль в виде pg_is_in_recovery(). Но лучше решать такие вещи на уровне архитектуры, а не кода.

Сергей
27.09.2016
07:43:37
Ну это я спросил тоже из соображения паранои...
На самом деле всё, что отправляется наружу через триггеры основано на уникальных ключах и ничего плохого не случится...
А вообще мне очень не хватает oracle change notification... с ним мне было бы куда проще

Dmitry
27.09.2016
07:45:43
Мне и AWR и скедулера и Advanced Queue не хватает... И ещё всяко разно по мелочи. Но кто ж нас спрашивает...

Сергей
27.09.2016
07:47:03
scheduler - таки да... о нём тож забыл... но его реализация вроде как есть, хотя и сомнительна

Dmitry
27.09.2016
07:48:26
Джобы из pgAdmin - это боль. Я лучше буду из крона. Так я буду хоть в чём-то уверен.

Сергей
27.09.2016
07:49:04
Ну да... тоже так думаю

Dmitriy
27.09.2016
09:08:49

Google

Kuroi
27.09.2016
09:31:35

Dmitriy
27.09.2016
09:32:58
Тут опять кто-то fsync в off выкрутил?
нет. Но разве ошибок в ядре мало?
Вот в 9.4.7, например
Avoid unlikely data-loss scenarios due to renaming files without adequate fsync() calls before and after (Michael Paquier, Tomas Vondra, Andres Freund)
А сколько таких ошибок стоит необнаруженными, кто знает. Так что если случился нештатный режим работы (как то окончание места или oom), глупо жаловаться на разработчиков.

Anton
27.09.2016
11:41:57
Коллеги из PGPro подскажите https://github.com/postgrespro/postgrespro эта сборка для комерческого использования бесплатна ?

Alexandre
27.09.2016
11:46:44
если бы сборка была платна, то она предоставлялась бы в ввиде бинарников

Dmitrii
27.09.2016
11:48:01
Ты не прав. Есть куча софта, который распространяется в открытом виде, но использование в коммерческих целях запрещено.

Alexandre
27.09.2016
11:54:08
GPL?

Dmitrii
27.09.2016
11:55:08
Вот пример http://www.highcharts.com/

Andrey
27.09.2016
11:55:52
В репке же лежит файл, который назвывается COPYRIGHT, вы его читать пробовали?

Айтуар
27.09.2016
11:58:49

Konstantin
27.09.2016
12:06:12
https://postgrespro.ru/products/postgrespro

Anton
27.09.2016
12:13:13
Юрий , спасибо!

Alexandr
27.09.2016
12:42:20
ребят, мне в функции пг надо представить строку, как массив чаров, чтобы потом по ним пробегать

Anatoliy
27.09.2016
12:42:53
array[]::varchar[] ?
аргемент соответственно varchar[] или char[] что там вам надо

Alex
27.09.2016
12:44:35
string_to_array функция