Re: Зацените т
От | Andrey N. Oktyabrski |
---|---|
Тема | Re: Зацените т |
Дата | |
Msg-id | 44AE7002.1060800@antora.ru обсуждение исходный текст |
Список | pgsql-ru-general |
Ilia Kantor wrote: > Когда-то я делал похожую вещь. > А именно - поле (или поля) проверки доступа. > > Поле состояло из массива int[], содержащего ID нужных групп доступа. Это довольно громоздко - массивы. Я именно хотел сделать так, чтобы девелОперы пользовались - читай чтоб выглядело более-менее привычно, и чтобы оверхед поменьше был. > Проверка на доступ осуществлялась операцией @. > Брались все группы юзера и проверялось, пересекаются ли они с полем. > > Если да, то право имеет. Сам оператор пересечения @ работал через > GIST-индекс. > Все пахало достаточно быстро и красиво, благо групп не так много разных. > > Для того, чтобы оптимизер мог сделать правильный план, пришлось писать > собственную статистику по таким полям (т.е по int[]). У меня вроде оптимизёр пользуется индексом, проверял. Кстати, забыл там в README пример создания индекса показать: CREATE INDEX obj_acl_idx ON obj USING gist (acl gist_row_acl_ops); > Однако, как внедрить ее в VACUUM/ANALYZE - неясно, а разработчикам на сие > накакать, видимо (никто не помог). > > Так и перешел на Оракл ;) Грустная история ;-) P.S. Ответ был преднамеренно не в рассылку, или туда предназначался? В рассылку дублировать это письмо?
В списке pgsql-ru-general по дате отправления: