Re: heap_update temporary release of buffer lock
От | Tom Lane |
---|---|
Тема | Re: heap_update temporary release of buffer lock |
Дата | |
Msg-id | 12943.1316548035@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: heap_update temporary release of buffer lock (Alvaro Herrera <alvherre@commandprompt.com>) |
Ответы |
Re: heap_update temporary release of buffer lock
|
Список | pgsql-hackers |
Alvaro Herrera <alvherre@commandprompt.com> writes: > Excerpts from Robert Haas's message of mar sep 20 16:04:03 -0300 2011: >>> On 20.09.2011 20:42, Alvaro Herrera wrote: >>>> I notice that heap_update releases the buffer lock, after checking the >>>> HeapTupleSatifiesUpdate result, and before marking the tuple as updated, >>>> to pin the visibility map page -- heapam.c lines 2638ff in master branch. >> The easiest fix seems to be (as you suggest) to add "goto l2" after >> reacquiring the lock. Can we get away with (and is there any benefit >> to) doing that only if xmax has changed? > Hmm ... I think that works, and it would suit my purposes too. Note > this means you have to recheck infomask too (otherwise consider that > IS_MULTI could be set the first time, and not set the second time, and > that makes the Xmax have a different meaning.) OTOH if you just do it > always, it is simpler. Yeah, I think a "goto l2" is correct and sufficient. As the comment already notes, this need not be a high-performance path, so why spend extra code (with extra risk of bugs)? regards, tom lane
В списке pgsql-hackers по дате отправления: