Re: [Report Bug With Patch] Rel Cache Bug
От | Tom Lane |
---|---|
Тема | Re: [Report Bug With Patch] Rel Cache Bug |
Дата | |
Msg-id | 7722.1427305132@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | [Report Bug With Patch] Rel Cache Bug (Jaimin Pan <jaimin.pan@gmail.com>) |
Ответы |
Re: [Report Bug With Patch] Rel Cache Bug
|
Список | pgsql-bugs |
Jaimin Pan <jaimin.pan@gmail.com> writes: > I think there is a bug in rel cache rebuild of release 9.4.1. > it also exists on some other release. > the issue was introduced by 491dd4a97daa6b4de9ee8401ada10ad5da76af46 > -- a/src/backend/utils/cache/relcache.c > +++ b/src/backend/utils/cache/relcache.c > @@ -2166,9 +2166,9 @@ RelationClearRelation(Relation relation, bool rebuild) > /* ... but actually, we don't have to update newrel->rd_rel > */ > memcpy(relation->rd_rel, newrel->rd_rel, CLASS_TUPLE_SIZE); > /* preserve old tupledesc and rules if no logical change */ > - if (keep_tupdesc) > + if (!keep_tupdesc) > SWAPFIELD(TupleDesc, rd_att); > - if (keep_rules) > + if (!keep_rules) > { > SWAPFIELD(RuleLock *, rd_rules); > SWAPFIELD(MemoryContext, rd_rulescxt); You would need to provide a fairly convincing argument why you think that five-year-old code is backwards. Asserting there's a problem with absolutely zero evidence is not likely to impress anyone. (For the record, it did and does still look right to me. As per the comment about thirty lines up, what we're doing is un-swapping the fields we don't want to change. If keep_tupdesc is true, we don't want to change rd_att, so we need to swap its old value back. Likewise for the other thing.) regards, tom lane
В списке pgsql-bugs по дате отправления: