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
спасибо, за советы посмотрю и напишу