Re: Revised Patch to allow multiple table locks in "Unison"
| От | Tom Lane |
|---|---|
| Тема | Re: Revised Patch to allow multiple table locks in "Unison" |
| Дата | |
| Msg-id | 345.996954696@sss.pgh.pa.us обсуждение |
| Ответ на | Re: Revised Patch to allow multiple table locks in "Unison" (Bruce Momjian <pgman@candle.pha.pa.us>) |
| Ответы |
Re: Revised Patch to allow multiple table locks in "Unison"
|
| Список | pgsql-patches |
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Patch applied.
Idly looking this over again, I noticed a big OOPS:
>> ! freeList(lockstmt->rellist);
>> ! pfree(relname);
>> ! pfree(relname);
It is most definitely NOT the executor's business to release pieces of
the querytree; this will certainly break plpgsql functions, for example,
where the same querytree is executed repeatedly.
Bruce, please remove those lines.
Another thing I am concerned about now that I look more closely is that
the multi-rel case code opens the relations without any lock, and then
assumes they'll stick around while it opens and access-checks the rest.
This will fail if someone else drops one of the rels meanwhile. I think
the entire routine should be reduced to a simple loop that opens, locks,
and closes the rels one at a time. The extra code bulk to do it this
way isn't buying us anything at all.
regards, tom lane
В списке pgsql-patches по дате отправления: