Re: Broken lock management in policy.c.

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Broken lock management in policy.c.
Дата
Msg-id CAM3SWZR=-Nogk+Y1DYY+ahwcnW9mQmqLooWWBwNV2QaMh=UBtg@mail.gmail.com
обсуждение исходный текст
Ответ на Broken lock management in policy.c.  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Broken lock management in policy.c.  (Stephen Frost <sfrost@snowman.net>)
Re: Broken lock management in policy.c.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Sun, Jan 3, 2016 at 4:32 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> CREATE POLICY takes AccessExclusiveLock on the table a policy is being
> added to -- good -- and then releases it when done -- bad.  Correct
> behavior is to hold the lock till commit, because otherwise there is
> no guarantee that other backends will see the updated catalog rows in
> time, or indeed at all.
>
> The same goes for ALTER POLICY, and possibly DROP POLICY (I've not
> found the implementation of that ...)

Right.

> If we fix this, I believe we could also remove the weasel wording that was
> added to create_policy.sgml in commit 43cd468cf01007f3 about how the
> system might transiently fail to enforce row security correctly.

IIUC, then what you say here isn't true, because that issue was about
a transient failure without the involvement of *any* DDL from start to
finish. CREATE POLICY accepts subqueries referencing other relations
in its USING quals. This seems to be idiomatic usage of CREATE POLICY,
in fact.

See my original isolation tester test case, where only the setup involves DDL:

http://www.postgresql.org/message-id/attachment/38467/0001-RLS-isolation-test.patch

-- 
Peter Geoghegan



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: Broken lock management in policy.c.
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: row_security GUC does not behave as documented