Re: find_inheritance_children() and ALTER TABLE NO INHERIT
От | Tom Lane |
---|---|
Тема | Re: find_inheritance_children() and ALTER TABLE NO INHERIT |
Дата | |
Msg-id | 9532.1449115756@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | find_inheritance_children() and ALTER TABLE NO INHERIT (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>) |
Ответы |
Re: find_inheritance_children() and ALTER TABLE NO INHERIT
|
Список | pgsql-hackers |
Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes: > Currently find_inheritance_children() is smart enough to skip a child > table that it finds has been dropped concurrently after it gets a lock on > the same. It does so by looking up the child relid in syscache. It seems > it should also check if the table is still in the list of children of the > parent. Doing so by scanning the pg_inherits(inhparent) index may likely > be inefficient. So, how about adding that syscache on > pg_inherits(inherelid, inhparent) [1]? I doubt that a syscache would fix the performance issue there; it wouldn't get referenced enough to be likely to have the desired tuple in cache. I wonder whether we could improve matters by rechecking validity of the pg_inherits tuple (which we saw already and could presumably retain the TID of). There is at least one place where we do something like that now, IIRC. regards, tom lane
В списке pgsql-hackers по дате отправления: