Аггей
22.09.2017
09:13:07
Проблема в винде - служба по мнению винды должна стартануть за 30 секунд... если не успела - считается что зависла
А pg, особенно после некорректного завершения, стартует сильно дольше 30 секунд
Artem
22.09.2017
09:14:11
Sergey
22.09.2017
09:14:15
А PgPro не факт что содержит этот extension.
Google
Sergey
22.09.2017
09:14:47
Попробуйте поставить Windows версию Postgres'а от EnterpriseDB
Аггей
22.09.2017
09:15:36
Sergey
22.09.2017
09:15:54
Либо можно попробовать самому скомпилировать extension
Artem
22.09.2017
09:15:57
у венды есть шедуллер, который можно завести, и будет выполнять какой-либо скрипт после старта
Аггей
22.09.2017
09:16:21
Ааа... pg_ctl запускать шедулером... туплю
Artem
22.09.2017
09:16:43
да
Adikhanov
22.09.2017
09:20:51
Sergey
22.09.2017
09:21:37
Хорошо, попробую
Там довольно развитой инсталлер, возможно придется подумать и отметить галочками нужные компоненты.
Alexander
22.09.2017
10:34:16
Ребята, а подскажите, можно ли изменить порядок сортировки индекса для первичного ключа?
По умолчанию он ASC
Darafei
22.09.2017
10:37:04
создать unique index desc и alter table drop constraint, add constraint using index индекс_с_desc?
Denis
22.09.2017
10:39:53
а какой практический смысл указывать порядок сортировки в индексе?
Alexander
22.09.2017
10:40:18
А если я точно знаю, что буду извлекать данные с конца?
Google
Alexander
22.09.2017
10:40:45
Darafei
22.09.2017
10:40:47
он может быть составной, тогда order by aaa desc, bbb asc
а для одноколоночного смысла нет
есть же index scan backwards
Denis
22.09.2017
10:41:18
Darafei
22.09.2017
10:41:54
nulls first/last, но это не про primary key
Alexey
22.09.2017
10:51:48
есть же index scan backwards
не знаю, как в постгресе. но в mysql обнаружили, что index scan backwards — это медленнее, чем прямое сканирование order by ... desc индекса. подозреваю, что это связано с readahead
Alexander
22.09.2017
11:22:32
В постгресе так же. Насколько я помню, это даже в cost'ах отражено.
Alexey
22.09.2017
11:36:31
Почему в доке пишут что pl/python включен в поставку, хотя его отдельно доставлять надо?
Igor
22.09.2017
11:38:22
да вроде не пишут
> Users of binary packages might find PL/Python in a separate subpackage.
у меня в 17.04 убунте postgresql-plpython3-9.6 из zesty-updates например
Denis
22.09.2017
11:41:53
Alexey
22.09.2017
11:43:59
Igor
22.09.2017
11:44:10
это если открыть chapter 43, на которую ссылаются
там внизу заметка
Alexey
22.09.2017
11:45:53
То есть где- там лежит пакет, который можно установить и его же можно было в процессе поставить?
Igor
22.09.2017
11:47:05
не понял
но если сервер уже поставили, то можно поставить пакет с plpython'ом, возможно, перезапустить сервак (может, конфиг надо будет поправить) и должен будет подцепиться
Alexander
22.09.2017
11:53:36
Alex
22.09.2017
11:55:13
Доброго времени суток Игорь у вас с патрони не было проблем со старыми wal логами ? У меня он почемуто на мастере не стирает автоматически, конфиг патрони на тест сервере :
postgresql:
use_pg_rewind: true
use_slots: true
parameters:
wal_level: hot_standby
hot_standby: "on"
wal_keep_segments: 8
max_wal_senders: 5
max_replication_slots: 5
wal_log_hints: "on"
archive_mode: "on"
archive_timeout: 1800s
archive_command: mkdir -p ../wal_archive && test ! -f ../wal_archive/%f && cp %p ../wal_archive/$
recovery_conf:
restore_command: cp ../wal_archive/%f %p
archive_cleanup_command: pg_archivecleanup -d /var/lib/pgsql/9.6/wal_archive %r
Denis
22.09.2017
12:37:56
Alexey
22.09.2017
13:27:15
а вот тут постгресу снова отчаянно не хватает O_DIRECT
Google
Alex
22.09.2017
13:28:17
то да O_DIRECT было бы ой как хорошо
Alexey
22.09.2017
13:30:22
или вот в mysql 8.0 оптимизатор уже умеет вычислять cost-ы исходя из того, какие части индексов уже в памяти, а какие ещё нужно будет прочитать. всё это имеет смысл опять же только с O_DIRECT
Alexander
22.09.2017
13:40:06
O_DIRECT очень нужен, причём вместе с адаптивным shared_buffers, а то до крупных кастомеров не доедет...
Adikhanov
22.09.2017
14:16:35
Nikolay
22.09.2017
15:47:43
через 15 минут трансляция #RuPostgres Live #1 !!! https://www.youtube.com/watch?v=5-DJ7Mai3PY
Dmitry
22.09.2017
15:49:28
А можно как-нибудь агрегировать text поле так чтобы на выходе был json словарь значение->количество раз?
Darafei
22.09.2017
15:53:27
count, group by, json_agg
Igor
22.09.2017
16:14:15
https://stackoverflow.com/a/34680345/974317
Dmitry
22.09.2017
16:16:31
это понятно, только что-то я не пойму как мне вложенный запрос сделать
что-то типа select pkey, json_agg((select value, count(*) group by value)) from (select 'a' as pkey, 'foo' as value union all select 'a', 'bar' union all select 'a', 'bar') as tmp group by pkey; же?
получается subquery must return only one column
если обернуть в () получаю что-то, но там видно что оно даже не агрегировано по value
а, разобрался. банальный же select .. group by pkey from (select .. group by pkey, value)
Darafei
22.09.2017
16:49:03
Достаточно только внутреннего group by
А, тебе нужно много json по key?
Тогда да
Nikolay
22.09.2017
18:09:06
Запись первой онлайн-встречи #RuPostgres: https://www.youtube.com/watch?v=5-DJ7Mai3PY
Опросник для обратной связи (ответьте, пожалуйста, даже если пока не смотрели): https://docs.google.com/forms/d/e/1FAIpQLSfAKpQiAQDwTjpZwadr-STnLg84geTeltkDF_e2t3PyNM8G3Q/viewform?usp=sf_link
Quantum Harmonizer
22.09.2017
19:17:25
Накатывать миграции всегда должно быть так больно? :)
insert into pages
select
CAST(encode(p.id, 'hex') AS uuid) as id,
p.url as "urlPathComponent",
p.magic as magic,
p.meta_keywords as "metaKeywords",
p.meta_description as "metaDescription",
p.title as title,
p.h1 as h1,
p.head as "headMarkup",
p.markup as "contentMarkup",
p.before_body_end as "beforeBodyEndMarkup",
p.last_modified as "lastModified"
from dblink(
'dbname=old user=postgres password=...',
'select * from pages')
as p(
id bytea,
h1 varchar,
magic varchar,
markup text,
meta_description varchar,
meta_keywords varchar,
title varchar,
url varchar,
before_body_end text,
head text,
last_modified timestamp
);
Google
Darafei
22.09.2017
19:24:12
Накатывать миграции всегда должно быть так больно? :)
insert into pages
select
CAST(encode(p.id, 'hex') AS uuid) as id,
p.url as "urlPathComponent",
p.magic as magic,
p.meta_keywords as "metaKeywords",
p.meta_description as "metaDescription",
p.title as title,
p.h1 as h1,
p.head as "headMarkup",
p.markup as "contentMarkup",
p.before_body_end as "beforeBodyEndMarkup",
p.last_modified as "lastModified"
from dblink(
'dbname=old user=postgres password=...',
'select * from pages')
as p(
id bytea,
h1 varchar,
magic varchar,
markup text,
meta_description varchar,
meta_keywords varchar,
title varchar,
url varchar,
before_body_end text,
head text,
last_modified timestamp
);
это вообще миграция?
Quantum Harmonizer
22.09.2017
19:24:38
Darafei
22.09.2017
19:24:44
это выглядит как переезд, а не как накатка миграции
почему не просто альтер?
Admin
Quantum Harmonizer
22.09.2017
19:25:56
Darafei
22.09.2017
19:27:08
это странная потребность, а странное делать всегда не очень приятно
почему не дамп-рестор, а дблинк?
почему не склонировать инстанс и не смигрировать один, если это облако и записи немного?
Quantum Harmonizer
22.09.2017
19:46:36
хз :)
Айтуар
22.09.2017
21:00:58
Кто может подсказать, есть ли какая функция мониторинга триггеров которые выполняются сейчас, типа pg_stat_activity?
Victor
22.09.2017
21:17:42
pg_top?
там на клавишу C еще нажать надо
Айтуар
22.09.2017
21:31:37
Nikolay
22.09.2017
22:23:16
Такого трейсинга нормального явно не хватает сейчас. Я обычно проставляю много raise debug в коде и когда надо диагностику, временно понижаю уровень логирования до debug
loki
23.09.2017
03:30:17
Есть шанс pgconf.Сибирь live нарулить?
Mike Chuguniy
23.09.2017
05:16:23
@Komzpa, @pasha_golub, хулиганы что попало в чЯтЕГ несут!
Pavel
23.09.2017
05:42:41
Yura
23.09.2017
09:50:23
Интересная статья: https://habrahabr.ru/post/338406/
Google
Yury
23.09.2017
11:42:20
Всем привет. Кто знает, почему запросс вот от сюда:
https://wiki.postgresql.org/wiki/Show_database_bloat
может показывать индекс как таблицу? Индекс функциональный.
Pavel
23.09.2017
12:21:09
Привет. Как-то можно в постгресе использовать темпоральные данные при обновлении/удалении/добавлении автоматически? Что есть по этой теме?
Darafei
23.09.2017
12:36:51
Что значит "автоматически использовать"?
Adikhanov
23.09.2017
12:53:21
Доброго времени суток! Может кто сталкивался, при запуске дебаггера хранимых функций операция не выполняется + её невозможно отменить.
Dmitry
23.09.2017
13:08:06
Pavel
23.09.2017
14:15:18
Без доп extension'ов
Aleksandr
23.09.2017
14:35:49
Nikolay
23.09.2017
15:25:27
Alex
23.09.2017
19:15:44
on insert триггер?
Спасибо, думаю так и поступим. Другого варианта не нашёл, казалось что это моно с помощью sequence сделать
Igor
24.09.2017
13:15:55
Йоу, знатоки, прошу пояснить за следующую тему. Есть набор сущностей, все производные от абстрактной, назовем ее артефакт. Нужно настроить версионирование для сущностей (то есть фиксировать удаления, модификации, их содержание и того, кто совершил то или иное действие). На данный момент вопрос заключается в следующем: допустим я выбираю подход, при котором для старых версий выделяется отдельная таблица (как для артефакта, так и для сущностей, производных от него) с composite primary key из версии и primary key сущности/артефакта. В ней отображается тип изменения: модификация/удаление и все данные, которые присутствовали на тот момент. Насколько это вообще адекватно и что в таком случае делать при изменении связей между объектами?
Denis
24.09.2017
13:41:56
Йоу, знатоки, прошу пояснить за следующую тему. Есть набор сущностей, все производные от абстрактной, назовем ее артефакт. Нужно настроить версионирование для сущностей (то есть фиксировать удаления, модификации, их содержание и того, кто совершил то или иное действие). На данный момент вопрос заключается в следующем: допустим я выбираю подход, при котором для старых версий выделяется отдельная таблица (как для артефакта, так и для сущностей, производных от него) с composite primary key из версии и primary key сущности/артефакта. В ней отображается тип изменения: модификация/удаление и все данные, которые присутствовали на тот момент. Насколько это вообще адекватно и что в таком случае делать при изменении связей между объектами?
У меня сейчас используется в одном проекте похожее решение, только для каждой таблицы сущности есть своя таблица аудита. На текущий момент я понял, что такое разделение на таблицу сущности и таблицу аудита в моем случае бессмысленно (так как аудит стал активно использоваться наравне с актуальной версией сущности) и я сейчас делаю рефакторинг. Думаю создать для каждой сущности единую таблицу со всеми версиями (гляньте в вики «slowly changing dimentions»). Но как оно будет на практике узнаю позже