@pgsql

Страница 194 из 1062
Павел П.
15.12.2016
08:30:42
...можно пометить разделенные через тире и уже беря их пары инсертить 6-3 с шагом +1

raksita
15.12.2016
08:32:28
а 29,3 тогда как?

29 28 27..3?

Google
Павел П.
15.12.2016
08:33:34
а 29,3 тогда как?
это обрезалось при копирвоании 29,30,32-36

lemi
15.12.2016
08:45:57
with cte as ( select regexp_split_to_table(col, ',') r from (values('1,3-6,9,10,12-19,21-26,28,29,3') ) t (col) ) select r::int from cte where r ~ '^\d+$' union select gs from cte join generate_series(split_part(r, '-',1)::int, split_part(r, '-',2)::int) gs on true where r ~ '^\d+-\d+$'

union и union all можно контролировать уникальность

можно упростить если прикрутиь к окончанию при отсуствии интервала

lemi
15.12.2016
08:53:37
вот так вот в два

with cte as ( select regexp_split_to_table(col, ',') r from (values('1,3-6,9,10,12-19,21-26,28,29,36') ) t (col) ), mte as ( select split_part(r, '-', 1)::int as from, coalesce((nullif(trim(split_part(r, '-', 2)), ''))::int,split_part(r, '-', 1)::int) as to from cte ) select * from mte;

отсюда видно что получилось

дальше обычный join с generate_series

Google
Andrey
15.12.2016
10:53:24
Всем привет. Год назад приобрел домен POSTGRESQL.ONLINE. Хотел сделать сервис для мониторинга за PG, но времени по вечерам остается на него мало. Если кто готов принять участие в проекте, то пишите, договоримся. Есть несколько вариантов дальнейшей монетизации.

lemi
15.12.2016
10:55:00
вроде как же есть уже готовые системы мониторинга или способы интеграции с уже существующими ?

забикс

Alexey
15.12.2016
10:55:29
Пиши, договоритесь. :)

Kirill
15.12.2016
11:11:07
opm как-то совсем чудовищно выглядит, кстати, есть еще https://www.vividcortex.com/

Andrey
15.12.2016
11:20:56
Ко мне периодически обращается народ, которому надо мониторить постгрес. Если у них есть деньги, то я их отправляю postgresql-consalting и постгрес профессиональный, если денег нет, но есть спецы - подсказываю как можно сделать всё в заббикс, а вот для оставшихся этот сервис бы пригодился. И таких много :)

Pavel
15.12.2016
11:46:11
Оставщиеся? У кого нету ни денег, ни спецов?
человек не подготовился, это зря. Как говорит Миша Корузо, elevator speech не услышали, но домен красивый

Fike
15.12.2016
11:54:37
Оставщиеся? У кого нету ни денег, ни спецов?
мы можем заставить их расплачиваться самоуважением

Kirill
15.12.2016
11:55:00
Отдайте домен окметру )

Айтуар
15.12.2016
11:55:29
Перепродайте звучит лучше )

Kirill
15.12.2016
11:56:29
я думаю там не та сумма чтоб заморачиваться с перепродажей, можно просто отдать

Айтуар
15.12.2016
11:57:03
сумму ты сам диктуешь

Kirill
15.12.2016
11:57:15
кстати, есть ещё postgresql.lol, странно что его еще не купил Алексей Копытов под бложик )

сумму ты сам диктуешь
godaddy говорит 5,10 £в год

Anufant
15.12.2016
12:09:35
Привет. Подскажите, пожалуйста, почему операторы работы с массивами <@, @>, && в PostgreSQL 9.4.10 выдают ошибку "array must not contain nulls", если хотя бы в одном из аргументов встречается NULL. А в версии PostgreSQL 9.4.4 ошибки нет. В документации ничего про такой случай не написано. В release notes тоже не нашел явных упоминаний.

lemi
15.12.2016
12:14:28
можно примеры в студию ?

Anatoliy
15.12.2016
12:15:31
select array[1, null]::int[] && array[1]; ?column? —------— t (1 row)

Google
Anatoliy
15.12.2016
12:15:34
Что я делаю не так?

lemi
15.12.2016
12:16:07
этот жэ запрос на 9.4.10 не работает ?

Pavel
15.12.2016
12:16:14
в версии 8.4 массивы могли содержать NULL. но их нельзя вычитать например.

теперь могут содержать NULL, но их попрежнему нельзя вычитать

в версии 9.3 появилась функция array_replace(anyarray, NULL, anyelement)

xaoc
15.12.2016
12:17:45
Ку

Олег
15.12.2016
12:18:35
пацак или чатланин?

Pavel
15.12.2016
12:19:22
CREATE OR REPLACE FUNCTION f_int_array_replace_null (int[], int) RETURNS int[] AS $$ SELECT ARRAY ( SELECT COALESCE(x, $2) FROM unnest($1) x); $$ LANGUAGE SQL IMMUTABLE;

Anufant
15.12.2016
12:21:43
Вот и пример, да: select array[1, null]::int[] && array[1]; ERROR: array must not contain nulls

Да и в доках про это нет ничего :(

Вот еще пример, теперь уже мой, корявый: select '{1}'::int[] <@ '{1,2,NULL}'; ERROR: array must not contain nulls

Pavel
15.12.2016
12:23:21
значит никакие операции с ними делать нельзя

select array[1, null]::int[]

Anufant
15.12.2016
12:23:48
А это работает

Да и остальные операторы из таблицы 9-45 работают: https://www.postgresql.org/docs/9.4/static/functions-array.html#ARRAY-FUNCTIONS-TABLE

select '{1}'::int[] < '{1,2,NULL}'; ?column? —------— t (1 row)

Admin
ERROR: S client not available

lemi
15.12.2016
12:25:58
точнее вот так select '{1}'::int[] <@ '{1,2,NULL}'::int[];

Anufant
15.12.2016
12:26:47
select '{1}'::int[] <@ '{1,2,NULL}'::int[]; ERROR: array must not contain nulls

Google
Anufant
15.12.2016
12:27:00
тот же результат

lemi
15.12.2016
12:27:06
и еще вот так select array[2, 3, null::int, 1] @> array[1];

Anufant
15.12.2016
12:27:28
Ошибка

но на 9.4.4 все запросы работают!

lemi
15.12.2016
12:32:34
а если на 9.4.10 сделать новую БД и в ней попробовать ?

Anufant
15.12.2016
12:35:20
Это уже сложнее, но попробую.

lemi
15.12.2016
12:36:39
create database test; \c test; select array[2, 3, null, 1] @> array[1]

вообще скорее всего это разрабы передумали и перевели contains на substruct Т.к. тут двухсмысленная ситуация если есть null значение то можно трактовать по разному

у меня но свежей 9.4.10 win X64 нормально работает

Anufant
15.12.2016
12:46:53
Да, на новой базе и правда все работает. Спасибо. Интересно, почему такое может быть

lemi
15.12.2016
12:49:58
ктото переопределил оператор contains

так можно хотя так лучше не надо делать

Anufant
15.12.2016
12:54:53
Понял, а как посмотреть переопределенные операторы в psql? Я, конечно, погуглю, если что, но мало ли это не сложно и есть готовый ответ? :)

Anatoliy
15.12.2016
12:56:23
\do

еще можно касты посмотреть

lemi
15.12.2016
12:58:57
select po.oprname, pt1.typname as leftarg, pt2.typname as rightarg, pt3.typname as resulttype, pp.proname from pg_operator po join pg_type pt1 on pt1.oid = po.oprleft join pg_type pt2 on pt2.oid = po.oprright join pg_type pt3 on pt3.oid = po.oprright join pg_proc pp on pp.oid = po.oprcode where po.oprname = '@>' and po.oprcode::text = 'arraycontains'::text

Anufant
15.12.2016
13:01:44
Спасибо, буду изучать! :)

Петр
15.12.2016
13:09:28
поделитесь оракл-чатиком

Anton
15.12.2016
13:20:51
=)

Павел П.
15.12.2016
13:20:55
Может для SQL и разработчиков БД отдельный чатик сделать?

Google
Anton
15.12.2016
13:20:56
все ораклисты тут

Коллеги, кто знает как починить ERROR: MultiXactId 13431450 has not been created yet -- apparent wraparound

https://habrahabr.ru/company/postgrespro/blog/301238/ пробовали :)

Alex
15.12.2016
13:21:38
латентные ораклисты

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