"Tatsuhito Kasahara" <[EMAIL PROTECTED]> writes:
> The comment in tablecmds.c says "AccessShareLock is probably enough".
> But it actually needs more strong lock mode ?

> ATExecDropInherit(Relation rel, RangeVar *parent)
>       /*
>        * AccessShareLock on the parent is probably enough, seeing that DROP
>        * TABLE doesn't lock parent tables at all.  We need some lock since 
> we'll
>        * be inspecting the parent's schema.
>        */
>       parent_rel = heap_openrv(parent, AccessShareLock);

Well, as the comment points out, things are just as bad if you do
"DROP TABLE c1_tbl" instead of ALTER NO INHERIT.

I'm not sure there is a lot we can do about this.  Taking a lock
on the parent table that is strong enough to block a SELECT would
just convert the problem into a deadlock (since a SELECT on the
parent will lock parent before child).  Hardly seems like an
improvement.

                        regards, tom lane

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to