@pgsql

Страница 350 из 1062
Артур
01.06.2017
06:50:24
Хорошая практика в паблик ничего не хранить
ну postgis оттуда не выкинуть ? или я не прав?

Alex
01.06.2017
06:51:01
Я имею ввиду свои хранимки таблицы и прочее

raksita
01.06.2017
06:51:22
ну postgis оттуда не выкинуть ? или я не прав?
Можно extension в другой схеме создавать

Google
Артур
01.06.2017
06:52:05
Можно extension в другой схеме создавать
И как тип ассоциировать?

raksita
01.06.2017
06:52:34
https://www.postgresql.org/docs/9.6/static/sql-createextension.html

И как тип ассоциировать?
Да, придётся через прямое указание, либо search_path

Артур
01.06.2017
06:54:25
ясно. А какие проблемы бывают с таким подходом? (Права доступа и порядок импорта не описывать. Это итак логично)

Видимо регулярных проблем нет :) А нечастные настолько редки, что никто не помнит ?

raksita
01.06.2017
07:10:01
Кроме ошибок с правами доступа и импортом, пока ничего и не вспоминается. Коллеги выше описали best practices: в public оставлять только системные вещи, необходимое для приложения в отдельные схемы

Darafei
01.06.2017
07:11:05
С релокацией постгиса в другую схему были проблемы с тем, что планировщик переставал инлайнить функции, что для ST_Intersects ломало индекссканы

В последних релизах его запретили ставить не в public из-за этого, что сломало людям апгрейд

Kirill
01.06.2017
09:50:00
Как считаете будет ли deadlock в постгресе в такой ситуации: первая транзакция SELECT id FROM big_big_table ORDER BY id FOR UPDATE вторая транзакция SELECT id FROM big_big_table ORDER BY id DESC FOR UPDATE

Darafei
01.06.2017
09:52:26
без limit?

а зачем такое делать без limit?

Kirill
01.06.2017
09:55:26
Хочу выяснить применение блокировки на строки атомарно или нет

Старый
01.06.2017
10:25:44
bash-4.2$ psql psql (9.5.7) psql: symbol lookup error: psql: undefined symbol: PQsslInUse

Google
Старый
01.06.2017
10:25:51
прикольно установил на rhel

Александр
01.06.2017
10:31:25
ребят, всем привет

Постгри сложней в изучении чем мускл?)

Darafei
01.06.2017
10:45:26
да
да?

Dmitriy
01.06.2017
10:46:30
Ну мускул много прощает и крутилок там меньше. Postgres сложнее однозначно

Аггей
01.06.2017
10:48:05
да?
О да... работали у нас одни аутсорсеры.... не могли понять почему select 1 from dual union all select 'Итого' from dual не работает в oracle... mysql портит людей

Darafei
01.06.2017
10:49:05
ну, то, что что-то нечаянно работает, не значит, что вопрос был изучен :)

интересно, сколько интернета сломается, если мускул будет check проверять

Guardian
01.06.2017
10:52:27
Не ломайте Uber, я люблю на нем ездить :)

Alexey
01.06.2017
10:52:58
а мы скоро узнаем: https://mariadb.com/kb/en/mariadb/constraint/

Alex
01.06.2017
11:01:15
Привет, группа! Как такое может быть, что на два почти одинаковых джойна: в одном он использует нестед луп, а в другом нормальный мердж джоин? (Есть три таблицы в каждой есть одна и та же колонка, везде она проиндексирована, мержу две -- нестед, другие две мердж джоин)

Alexey
01.06.2017
11:03:12
а что внутри то?

в части количества записей

и его состава/распределения/кардинальности

в общем оптимизатор так решил и скорее всего он основывается на некоторых данных статистики

или отсутсвии свежей статистики

Alexandra
01.06.2017
11:14:26
Прошу прощения за оффтоп! Мы, группа студентов факультета социологии СПбГУ, проводим большое исследование рейтинга IT работодателей Санкт-Петербурга и Москвы. Пожалуйста, поддержите нас, пройдя опрос по ссылке http://sgiz.mobi/s3/63243b734400 Опрос состоит только из закрытых вопросов и займет 5 минут. Результаты опроса планируется опубликовать на habrahabr.ru в блоге “Моего круга” и в группе https://vk.com/jugru

Mike Chuguniy
01.06.2017
11:17:02
Ну мускул много прощает и крутилок там меньше. Postgres сложнее однозначно
в мыскле крутилок меньше?! o_O Какие откровения, однако...

Google
Dmitriy
01.06.2017
11:29:56
в мыскле крутилок меньше?! o_O Какие откровения, однако...
С точки зрения конфига в pg сильно больше параметров. С точки зрения СУБД в pg больше типов данных, индексов и тд.

и админить pg сложнее, проверено на себе

Alex
01.06.2017
12:42:00
Ой ли? Может ты не все крутилки мускуля видел? Админить сложнее, когда разрабы насоздают многогиговых таблиц, которые залипают под вакуумом криво настроенным и ты не можешь даже партиционирование сделать

Nikita
01.06.2017
13:16:53
Всем хорошего дня. Прошу помощи...) Есть родительская таблица, которая имеет наследуемые таблицы разбитые по суткам. Структура: - Parent - - Child_20170530 - - Child_20170531 на Parent нет индексов, на Child_* есть. При запросе типа: SELECT * FROM Parent WHERE "time" BETWEEN '2017-05-31T00:00:00' AND '2017-05-31T23:59:59' Правильно ли я понимаю, что поиск будет происходить по неиндексированной таблице Parent, а не Child_20170531 в котором указан CHECK ("time" => '2017-05-31T00:00:00' AND "time" < '2017-05-31T23:59:59') ???

Lev
01.06.2017
13:25:25
а что говорит explain?

выполните explain SELECT * FROM Parent WHERE "time" BETWEEN '2017-05-31T00:00:00' AND '2017-05-31T23:59:59'

Nikita
01.06.2017
13:28:22
Да да, я сделал, он говорит что всё плохо, куча зависимостей, и по всем будет искать...

стек на 115 строк, к сожалению, поделиться не могу) Но теперь я понял что это не искать по родительской неиндексированной таблице...

А составное имя таблице можно как то сделать, что то типа: SELECT * FROM Child_ || replace('2017-05-31', '-', '') ?)

Алексей
01.06.2017
13:31:29
какой тип данных столбца "time"?

Nikita
01.06.2017
13:32:01
timestamp with time zone

Алексей
01.06.2017
13:32:14
Во!

Nikita
01.06.2017
13:32:39
из-за тайм зоны?

Алексей
01.06.2017
13:34:01
предполагаю, что в выражении 2017-05-31T23:59:59 он интерпретирует время как timestamp without timezone и поэтому игнорирует check

попробуйте для начала проделать все то же самое для столбцов witout timezone, если окажется что дело именно в этом - попробуйте в WHERE указывать явно тип

В общем, я бы копал именно в эту сторону

Nikita
01.06.2017
13:37:04
Я сделал выборку с учётом time zone, without выдал ту же картину)

Я просто не знаю, участвует ли CHECK при выборке данных из родительской таблицы

Петр
01.06.2017
13:42:20
Я просто не знаю, участвует ли CHECK при выборке данных из родительской таблицы
конечно участвует, у вас, на сколько я понял, партиционирование простое, по диапазону дат

Google
Nikita
01.06.2017
13:42:23
а что родительская не пустая?
Как я понимаю, родительская таблица выступает как связующая для дочерних

Айтуар
01.06.2017
13:43:27
Как я понимаю, родительская таблица выступает как связующая для дочерних
Да, но если она не пустая, то и по ней будет идти select.

А если check неправильный в партициях, то и по всем партициям будет идти.

Nikita
01.06.2017
13:44:09
Да, но если она не пустая, то и по ней будет идти select.
Логично) Надо проверить, не я структурой занимался...)

Петр
01.06.2017
13:45:35
какое значение у вас имеет constraint_exclusion?

Алексей
01.06.2017
13:49:25
Попробуйте изменить check на CHECK ("time" => '2017-05-31T00:00:00'::timestamp with timezone AND "time" < '2017-05-31T23:59:59'::timestamp with timezone) и выполнить `explain SELECT * FROM Parent WHERE "time" BETWEEN '2017-05-31T00:00:00'::timestamp with timezone AND '2017-05-31T23:59:59'::timestamp with timezone`

Admin
ERROR: S client not available

Nikita
01.06.2017
13:49:52
какое значение у вас имеет constraint_exclusion?
Не могу найти такого. Я правильно понимаю, что этот атрибует указывается для DB?

blkmrkt
01.06.2017
13:49:55
поздравьте, одна заливка с pgloader работает уже больше месяца и все никак не закончит, .dat файл вырос до 6GB на ошибках duplicate pkey. И это pgloader собран с CCL, причем дефолтный билд из apt с batch size = 1000 заливал всю эту же таблицу за неделю

Алексей
01.06.2017
13:54:22
почему without? у вас же в столбце with

значит и константу надо явно привести к тому же типу, что у вас в столбце

а вообще использование timestamp with timezone в вашем случае действительно оправдано?

Nikita
01.06.2017
14:01:26
а вообще использование timestamp with timezone в вашем случае действительно оправдано?
Да, не подумал про without. Не оправдано, но не я делал, я стараюсь ставить without в случаях, когда не требуется иного)

Алексей
01.06.2017
14:07:57
Казалось бы нормально, хотя рекомендуют SET constraint_exclusion = partition

Nikita
01.06.2017
14:09:40
Да, я почитал бегло сейчас про это)

Петр
01.06.2017
14:18:55
в чек у вас >= < а бетвин - это >= <= так что бетвин может и другую партицию захватить

Алексей
01.06.2017
14:19:25
кстати да, тоже вариант

Google
Петр
01.06.2017
14:20:03
покажите код таблицы

Алексей
01.06.2017
14:20:22
думаю это секрет :)

Петр
01.06.2017
14:21:44
в общем случае, если чек простой и не противоречит запросу, то планировщик отсекать должен остальные партиции (констрейнт_эксклюжен включен)

смотрите план, там все видно должно быть

Nikita
01.06.2017
14:36:05
Спасибо, сейчас посмотрю)

Айтуар
01.06.2017
14:36:49
в чеке нужно использовать простые операции, никаких битвинов и прочей арифметики.

Nikita
01.06.2017
14:39:19
Спасибо всем, походу в этом и была проблема)

Vladimir
01.06.2017
14:44:56
А никто не пользовался https://azure.microsoft.com/en-us/pricing/details/postgresql/ ?

Старый
01.06.2017
15:16:42
как изменить уже созданной базе локаль?

сейчас utf8 ru, надо английскую

из-за знака $

у одного кодера

Sergey
01.06.2017
15:20:02
utf8 en?

Sergey
01.06.2017
15:22:56
Всем привет. Помогите с sequlize postgres... воощем создаю табл через миграции - все ок, создаеться по все по инструкции, потом добавляю туда через seed пару тестовых записей - все ок. Потом делаю через sq запрос на выроб всех записей, пишет что нет поля createAt. Хотя я его не где не указывал - не в миграции, не в модели -_-

Петр
01.06.2017
15:25:06
вы лучше ошибку и запрос покажите

и код таблицы

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