Re: [BUG?] strange behavior in ALTER TABLE ... RENAME TO on inherited columns
От | Robert Haas |
---|---|
Тема | Re: [BUG?] strange behavior in ALTER TABLE ... RENAME TO on inherited columns |
Дата | |
Msg-id | 603c8f071001031941t3a0a682emb9295f71ab0deba1@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [BUG?] strange behavior in ALTER TABLE ... RENAME TO on inherited columns (KaiGai Kohei <kaigai@ak.jp.nec.com>) |
Ответы |
Re: [BUG?] strange behavior in ALTER TABLE ... RENAME TO on inherited columns
|
Список | pgsql-hackers |
2010/1/3 KaiGai Kohei <kaigai@ak.jp.nec.com>: > (2010/01/04 4:06), Robert Haas wrote: >> On Jan 3, 2010, at 12:31 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> In practice the reasonable engineering alternatives may just be to do >>> what KaiGai's patch does, or to do nothing. In that case I think a good >>> argument can be made for the latter. Nobody has ever complained about >>> this from the field AFAIR; but we might get complaints if we disable >>> cases that used to work fine. >> >> Maybe. The current behavior of allowing the rename but then breaking >> queries certainly isn't awesome. I think if someone is willing to >> implement a more careful check we should accept it. > > The condition to prevent problematic renaming might be modified to handle > diamond inheritances correctly. > > The current patch raises an error when pg_attribute.inhcount > 1. > But, in actually, it should raise an error when the number of origins > of the attribute to be renamed is larger than 1. > It shall be match with the inhcount unless it does not have diamond > inheritances. > > We can easily check the number of origins with walking on the pg_inherits > catalog. So, it seems to me the condition should be rewritten like: > > BEFORE: > if (attform->attinhcount > 1) > ereport(ERROR, ...); > > AFTER: > if (number_of_attribute_origin(myrelid, oldattname) > 1) > ereport(ERROR, ...); > > Am I missing something? That sounds about right to me, though that function doesn't exist yet. :-) ...Robert
В списке pgsql-hackers по дате отправления: