On 2018-Dec-20, Robert Haas wrote:

> On Thu, Dec 20, 2018 at 3:58 PM Alvaro Herrera <alvhe...@2ndquadrant.com> 
> wrote:
> > I think what prompted the lock to be AccessShareLock for the child rel
> > in the first place is the fact that ATExecDropInherit() (ALTER TABLE NO
> > INHERIT) uses AccessShare for the *parent* relation.
> 
> Seems like apples and oranges, 

Yes, but I can understand someone looking at ATExecDropInherit while
writing ATExecDetachRelation and thinking "ah, I have to grab
AccessShareLock on the other relation" without stopping to think in what
direction the parenthood between the rels goes.

> and also maybe not that safe.

I think it's strange, but I'm not interested in analyzing that at this
time.  Its comment do say that DROP TABLE (of the child, I surmise) does
not acquire *any* lock on the parent, which is also strange.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Reply via email to