@pgsql

Страница 969 из 1062
Yaroslav
05.09.2018
13:04:24
master - 9.6.5 slave - 9.6.10
Обновили бы Вы мастер... Да, значение в мс.

Mike Chuguniy
05.09.2018
14:43:35
Обновили бы Вы мастер... Да, значение в мс.
Человек реплику поднимает, чтобы нагрузку переключить и текущий мастер обновить. Я так думаю.

Alexander
05.09.2018
14:48:08
Ребят, соьираю метрики с pg_stat_statements, там выводится у меня самые продолжительрые запросы. Можно ли кактт получить юзера кто выполнял их?) Как ч понял там этт не хранится

Александр
05.09.2018
15:16:53
там есть поле userid

Google
Aleksandr
05.09.2018
15:34:27
Человек реплику поднимает, чтобы нагрузку переключить и текущий мастер обновить. Я так думаю.
не со всем так, новая реплика подымается в другом ДЦ для переезда ?

Roman
05.09.2018
16:35:15
А как можно проще вставить 100 000 строк с инкрементом по одному полю? id | number

Dmitry
05.09.2018
18:32:29
кто может объяснить зачем опция analyze-in-stages после pg_upgrade если сам pg_upgrade делает vacuum и freeze (как минимум 9.5)

Darafei
05.09.2018
18:39:50
а он делает analyze?

Yaroslav
05.09.2018
19:34:53
кто может объяснить зачем опция analyze-in-stages после pg_upgrade если сам pg_upgrade делает vacuum и freeze (как минимум 9.5)
Хмм... а Вы уверены, что он делает VACUUM (что-то я такого не помню... или что конкретно Вы имеете в виду)? Ах да, опция затем, что ANALYZE-то он не делает, а статистика при pg_upgrade выбрасывается.

Yaroslav
05.09.2018
19:43:10
^^^
Это делается при подготовке нового кластера, до "переливки" данных (почитайте, откуда вызывается prepare_new_cluster).

Terminator
06.09.2018
05:39:37
@Kozminykh будет жить. Поприветствуем!

@MatveyF будет жить. Поприветствуем!

Google
Terminator
06.09.2018
05:50:29
@Sanberg будет жить. Поприветствуем!

@shi_tsu будет жить. Поприветствуем!

@ora_dba будет жить. Поприветствуем!

@Habuvo будет жить. Поприветствуем!

Ilya
06.09.2018
09:12:50
Привет! А подскажите nested transaction как реализовать в go - postgre (pq gorm)? я пробовал чистый скуэль получаю pq: unexpected transaction status idle, горм тем более такое не умеет Задача выполнить (или нет) ряд апдейтов не трогая внешнюю транзакцию

Я пытаюсь понять - это проблема драйвера или надо как то по особому оформить начало вложеной транзакции?

Terminator
06.09.2018
09:17:10
@dmitry_soloma будет жить. Поприветствуем!

@Bartymaeus будет жить. Поприветствуем!

Aikidos будет жить. Поприветствуем!

Konstantin
06.09.2018
09:32:34
Я не знаю Оракл, поэтому не в курсе, что точно делаеьт dbms_alert.signal, но в Постгресе есть механизм LISTEN/NOTIFY, который возможно поможет решить ту же задачу

Artem
06.09.2018
09:34:41
Konstantin
06.09.2018
09:36:12
это оракловый пакет, из коробки, который позволяет делать асинхронную нотификацию по ошибкам
Ну встроенного такого механизма в Посгресе нет... Возможно есть extension-ы. Надо искать.

Vlad
06.09.2018
09:38:20
Всем привет. Я, так-то, девелопер. Но тут возник вопрос по базам и понеслась.. pq: syntax error at or near \"T00\" Постгрес не любит даты вида 2017-01-01T00:00:00?

Alexander
06.09.2018
09:39:29
select '2017-01-01T00:00:00' :: timestamp;

Victor
06.09.2018
09:40:17
тип поля какой?

Alexander
06.09.2018
09:40:29
он и дату из этого сделает

Vlad
06.09.2018
09:41:45
На самом деле тут все не так просто.. Если очень вкратце: есть некий датапайплайн. 1. Один учатсник делает селект. И кладет как JSON в кафку. 2. Подписчик кафки достает JSON, преобразует в Go-структуру и.. Думаю, будет проще, если я скину, как выглядит дата в JSON и как я это все дело вставляю в пг

Google
Vlad
06.09.2018
09:43:02
Если опустить все, что я сказал выше и прийти к сути

some_column = to_timestamp(null, 'YYYY-MM-DD HH24:MI:SS.MS')

Значение берется из JSON, иногда это null, иногда дата в кавычках

updated_at = to_timestamp('2018-09-05T23:33:48Z', 'YYYY-MM-DD HH24:MI:SS.MS')

И, судя по всему, когда после даты идет нулевое время, все - умираем

Yaroslav
06.09.2018
09:49:39
И, судя по всему, когда после даты идет нулевое время, все - умираем
Лучше конкрентный пример покажите. И, кстати, какая версия PostgreSQL (мне помнится, что в чём-то связанном с преобразованиями timestamps исправляли какие-то ошибки не так давно, если не вру)?

Yaroslav
06.09.2018
09:59:44
deleted_at = to_timestamp('2018-09-05T00:00:00Z', 'YYYY-MM-DD HH24:MI:SS.MS')
У меня всё работает (на 10.5). Так какая версия?

Yaroslav
06.09.2018
10:05:03
PostgreSQL 9.6.6
А timezone сессии, на всякий случай?

Yaroslav
06.09.2018
10:07:42
Если Вы об этом
Да, об этом. Всё равно Ваш пример работает на 10.5.

PostgreSQL 9.6.6
А почему бы Вам просто не попробовать обновиться?

Vlad
06.09.2018
10:09:24
А почему бы Вам просто не попробовать обновиться?
БД заведуют господа американцы. Я лишь скромный девелопер. У них там свои датацентры и свои приколы

S
06.09.2018
10:10:10
deleted_at = to_timestamp('2018-09-05T00:00:00Z', 'YYYY-MM-DD HH24:MI:SS.MS')
а зачем вы формат даты указываете? так просто не работает: deleted_at := '2018-09-05T00:00:00Z'::timestamptz; ?

Yaroslav
06.09.2018
10:10:54
БД заведуют господа американцы. Я лишь скромный девелопер. У них там свои датацентры и свои приколы
Ваши "господа американцы" уже пропустили как бы не пару CVE, не говоря уже о bugfix-ах (последняя версия — 9.6.10). :( Это хреновое администрирование, честно говоря.

Vlad
06.09.2018
10:13:32
Ваши "господа американцы" уже пропустили как бы не пару CVE, не говоря уже о bugfix-ах (последняя версия — 9.6.10). :( Это хреновое администрирование, честно говоря.
Вы правы. Скажу больше - недавно возникла интересная проблема. Мы доставали записи из MSSQL и клали в PG. Оказалось, что в некоторых строковвых полях в MSSQL были нулевые байты. И pg не мог их вставить, ругался на /u000 Когда мы сообщили DBA о том, что у нас такая проблема, их ответ был прост: "А вы добавьте NULLIF"

Данные так и остались с нулевыми байтами. А мы везде делаем проверки.

Google
Yaroslav
06.09.2018
10:16:31
> Когда мы сообщили DBA о том, что у нас такая проблема, их ответ был прост: "А вы добавьте NULLIF" Но это, да, "весело" (только что поверил своим глазам, что действительно это прочитал). ;)

Vlad
06.09.2018
10:16:50
> И pg не мог их вставить, ругался на /u000 Э, подождите. PostgreSQL действительно не может хранить \x00 в text/varchar/char... как это Вы их оставили с нулевыми байтами?
мы не оставили. Мы на этапе SELECT'а из MSSQL проверяли на нулевые байты, удаляли. А потом уже эти данные в JSON, без нулевых байт, отдавались на откуп PG и он их вставлял нормально

Это ад, у нас неконсистенси данные, и мы пишем костыли на SQL, чтобы решить проблему.. Такие дела

Yaroslav
06.09.2018
10:18:05
мы не оставили. Мы на этапе SELECT'а из MSSQL проверяли на нулевые байты, удаляли. А потом уже эти данные в JSON, без нулевых байт, отдавались на откуп PG и он их вставлял нормально
А, ясно. Тем не менее, возвращаясь к Вашему вопросу — поставьте 9.6.10 локально и проверьте, или посмотрите release notes. И если у Вас заработает, то кого-то можно будет ткнуть в это носом. ;)

S
06.09.2018
10:18:34
у вас кстати неправильно время конвертится :-)

MikaelBox
06.09.2018
10:19:03
Vlad
06.09.2018
10:20:32
у вас кстати неправильно время конвертится :-)
Не могли бы Вы пояснить? Я уже упоминал, что с базами только начинаю вести дружбу

MikaelBox
06.09.2018
10:20:41
Пардон, пустые строки, а не null

S
06.09.2018
10:21:50
select to_timestamp('2018-09-05T00:00:00Z', 'YYYY-MM-DD HH24:MI:SS.MS'); to_timestamp ------------------------ 2018-09-05 00:00:00+03 (1 row) в msk это 3 часа ночи должно быть, а у вас полночь получается, потому что формат игнорирует зону 'Z'

вам везёт что у вас timezone сессии utc :-)

Страница 969 из 1062