Re: BUG #4244: ALTER TABLE ... NO INHERIT problem
От | Tom Lane |
---|---|
Тема | Re: BUG #4244: ALTER TABLE ... NO INHERIT problem |
Дата | |
Msg-id | 19666.1213709303@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #4244: ALTER TABLE ... NO INHERIT problem ("Tatsuhito Kasahara" <kasahara.tatsuhito@oss.ntt.co.jp>) |
Список | pgsql-bugs |
"Tatsuhito Kasahara" <kasahara.tatsuhito@oss.ntt.co.jp> 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
В списке pgsql-bugs по дате отправления: