
Петр
01.06.2017
06:50:13

Артур
01.06.2017
06:50:24

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

raksita
01.06.2017
06:51:22

Google

Артур
01.06.2017
06:52:05

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

Артур
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
ребят, всем привет
Постгри сложней в изучении чем мускл?)

Старый
01.06.2017
10:32:32
да

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

Google

Dmitriy
01.06.2017
11:29:56
и админить 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:41:18

Петр
01.06.2017
13:42:20

Google

Nikita
01.06.2017
13:42:23

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

Nikita
01.06.2017
13:44:09

Петр
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

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

Nikita
01.06.2017
13:52:41

Алексей
01.06.2017
13:53:27

Nikita
01.06.2017
13:53:43

Алексей
01.06.2017
13:54:22
почему without? у вас же в столбце with
значит и константу надо явно привести к тому же типу, что у вас в столбце
а вообще использование timestamp with timezone в вашем случае действительно оправдано?

Nikita
01.06.2017
14:01:26

Алексей
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
вы лучше ошибку и запрос покажите
и код таблицы