Re: [PATCH] unalias of ACL_SELECT_FOR_UPDATE
От | KaiGai Kohei |
---|---|
Тема | Re: [PATCH] unalias of ACL_SELECT_FOR_UPDATE |
Дата | |
Msg-id | 49E91AE4.9020404@kaigai.gr.jp обсуждение исходный текст |
Ответ на | Re: [PATCH] unalias of ACL_SELECT_FOR_UPDATE (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [PATCH] unalias of ACL_SELECT_FOR_UPDATE
|
Список | pgsql-hackers |
Tom Lane wrote: > KaiGai Kohei <kaigai@ak.jp.nec.com> writes: >> Heikki Linnakangas wrote: >>> What's the point of doing SELECT FOR UPDATE if you're not actually going >>> to UPDATE the row? Having separate permissions for SELECT FOR UPDATE and >>> UPDATE seems useless. > >> I wonder why SELECT FOR UPDATE need ACL_UPDATE, although the statement >> itself does not modify any of the given relation. > > Because it blocks competing transactions in exactly the same way as an > UPDATE does. I agree with Heikki --- there is no apparent value in > having a separate permission bit for this. Given that AclMode is 3/4ths > full already, I'm not for inventing new privilege types without a very > strong use-case. > > A separate bit for SELECT FOR SHARE might possibly make sense given the > strength-of-locking argument. But doing both would eat half of the > available bits, and bring nearer the day that we need a different > representation for AclMode. I would not like to have a discussion how many permission bits will be necessary in the future, because nobody can say something ensured. We have an another approach that defines ACL_SELECT_FOR_SHARE as an alias of ACL_SELECT, and applies it on SELECT FOR SHARE statement. (Needless to say, the targets are already listed, so it might not necessary to put a ACL_SELECT_FOR_SHARE bit explicitly.) In the LOCK statement, it checks ACL_SELECT privilege for shared locks and discriminate between shared and exclusive locks. It seems to me quite natural. Thanks, -- KaiGai Kohei <kaigai@kaigai.gr.jp>
В списке pgsql-hackers по дате отправления: