
Mike Chuguniy
20.02.2018
13:34:48
Коллеги, а кто помнит, онлайн тюнер, который не pgtuner? Блин, не могу вспомнить.

Arthur
20.02.2018
13:35:44
http://pgtune.leopard.in.ua/ ?

Konstantin
20.02.2018
13:37:42
А вот этот видели:
http://pgconfigurator.cybertec.at/

Alex
20.02.2018
13:37:42

Google

Alexander
20.02.2018
14:18:59
Товарищи, поймал интересную штуку:
SELECT CAST('2147483647 milliseconds' AS INTERVAL)
отдает 596:31:23.647,
но SELECT CAST('2147483648 milliseconds' AS INTERVAL)
уже ругается
ERROR: interval field value out of range: "2147483648 milliseconds"
LINE 1: SELECT CAST('2147483648 milliseconds' AS INTERVAL)

Darafei
20.02.2018
14:25:24
пользуйся SELECT CAST('2147483.648 seconds' AS INTERVAL) ;

Alexander
20.02.2018
14:29:55
Да, спасибо. Просто не ожидал, что для хранения значения внутри используется int, тем более signed

Darafei
20.02.2018
14:31:30
этого полно внутри постгреса

Alexey
20.02.2018
14:37:15
"минуточку, будьте добры помедленее! я записывыаю"

Alex
20.02.2018
15:19:07

Alexey
20.02.2018
15:23:31

Dmitry
20.02.2018
18:15:44

Alexander
20.02.2018
18:16:00
Да, это радует, конечно ?

Mike Chuguniy
20.02.2018
18:38:29
Народ, а вот такой дурацкий вопрос: допустимо ли в процедуре pl/pgsql софрмировать массив данных, а потом залить его в какую-нибудь таблицу по через COPY?
Кто-нибудь такое вытворял?

Alex
20.02.2018
20:06:59

Maksim
20.02.2018
21:39:48

Alex
20.02.2018
21:49:25

Google

Maksim
20.02.2018
21:53:50

Alex
20.02.2018
21:54:56

Maksim
20.02.2018
21:55:23
Возможно)

Alex
20.02.2018
22:07:05
Правда там сразу в доке было написано что если на входе булшит то и на выходе тоже. Зато честно %)
Благо дело ситуация к исправлению движется.

Stepan
20.02.2018
22:09:33
А кто-нибудь может сказать, что подразумевается под data truncation здесь:
Exception raised for important warnings like data truncations while inserting, etc
http://initd.org/psycopg/docs/module.html#psycopg2.Warning

Yaroslav
20.02.2018
22:13:49


Alexander
20.02.2018
22:59:13
Вообще это целенаправленное действие - проверка на integer диапазон, несмотря на то что внутри число парсится в long. Другое дело, в доке указано, что только месяцы и дни приводятся к integer, а секунды распадаются на целое и дробное. По-хорошему, CAST('2147483648 milliseconds' AS INTERVAL) должен свестись к CAST('2147483 seconds 648 milliseconds' AS INTERVAL) который работает, поэтому имхо это баг.
Что касается signed, то каждая компонента интервала может иметь знак: '1 hour -1 minute’ есть 00:59:00
Спасибо за столь подробный ответ, очень познавательно. Я самостоятельно попытался покопаться в исходниках и, «почитав по диагонали», пока нашёл только typedef, не добравшись до парсинга. :)

Vitaly
21.02.2018
08:39:48
Ребята, всем привет
кто-нибудь сталкивался
с отсутствием одного ID
id
——
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
eas=# select id from n_objects where id =37 ;
id
——
(0 строк)
Что за?

Andrey
21.02.2018
08:42:40

Vitaly
21.02.2018
08:42:48
да

Yaroslav
21.02.2018
08:43:31
Что за?
А если "set enable_indexscan = off;" и SELECT * FROM n_objects WHERE id =37 ;

Vitaly
21.02.2018
08:44:42
eas=# SELECT * FROM n_objects WHERE id =37;
id | id_region | id_channel | title | address | lat | lon | deleted | id_level | id_control_object | id_icon_file | state | state_time | state_message | priority | radius | details | local_lat | local_lon
—--+-----------+------------+-------+---------+-----+-----+---------+----------+-------------------+--------------+-------+------------+---------------+----------+--------+---------+-----------+---------—
(0 строк)

Andrey
21.02.2018
08:45:15
А план какой?

Vitaly
21.02.2018
08:45:47
то есть?
Строение таблицы

Google

Vitaly
21.02.2018
08:45:49
??

Yaroslav
21.02.2018
08:46:11

Andrey
21.02.2018
08:46:13
EXPLAIN ANALYZE SELECT * FROM n_objects WHERE id =37 ;

Alexander
21.02.2018
08:46:17
Перед запросом добавьте EXPLAIN ANALYZE

Vitaly
21.02.2018
08:46:42
eas=# EXPLAIN ANALYZE SELECT * FROM n_objects WHERE id =37 ;
QUERY PLAN
—-------------------------------------------------------------------------------------------------------------------------------------
Index Scan using notification_objects_pkey on n_objects (cost=0.14..8.16 rows=1 width=219) (actual time=0.007..0.007 rows=0 loops=1)
Index Cond: (id = 37)
Planning time: 0.197 ms
Execution time: 0.051 ms
(4 строки)

Andrey
21.02.2018
08:48:00
Не отключили индекс скан.
Пересоздайте индекс, короче.

Vitaly
21.02.2018
08:48:21
как?
подскажите, плиз

Andrey
21.02.2018
08:50:45
В вашем случае как-то так:
alter table n_objects drop constraint notification_objects_pkey;
alter table n_objects add primary key (id);

Vitaly
21.02.2018
08:51:05
спасибо

Mike Chuguniy
21.02.2018
08:51:44
@pensnarik а REINDEX не поможет?

Darafei
21.02.2018
08:52:29
подняли в osm вопрос о синхронности репликации
https://lists.openstreetmap.org/pipermail/dev/2018-February/030134.html
https://lists.openstreetmap.org/pipermail/dev/2018-February/030135.html

Andrey
21.02.2018
08:52:33
Можно и REINDEX

Yaroslav
21.02.2018
08:52:37
спасибо
Найдите причину, восстановите из backup.

Andrey
21.02.2018
08:53:12
Какая битая база?
А, в том смысле, что индекс битый. Вообще странно, что индекс на такой маленькой таблице оказался битым.
Кстати, какая вас версия?

Vitaly
21.02.2018
08:54:29
psql (9.4.5)

Google

Yaroslav
21.02.2018
08:54:49
Какая битая база?
Обычная. Почему Вы думаете, что проблема только с индексом?
Вообще, что-то перениндексировать в такой ситуации —- это неправильный/вредный совет, в принципе.

Andrey
21.02.2018
08:55:01
Самой базы. select version();

Vitaly
21.02.2018
08:55:30
------------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.4.5 on x86_64-suse-linux-gnu, compiled by gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973], 64-bit
(1 строка)

Yaroslav
21.02.2018
08:56:19

Vitaly
21.02.2018
08:57:41
спасибо, за советы посмотрю и напишу