Dear Nisha, Shveta,

> > IMO, ExecClearTuple() can resolve the problem of pinned buffers but it
> > still leaves the other trivial problem behind that we keep allocating
> > slots while one is enough, which when resued will release buffer pin
> > in ExecStorePinnedBufferHeapTuple() -> tts_buffer_heap_store_tuple()
> > implicitly.
> 
> +1

Sorry for missing words, my intention was to additionally modify atop a Nisha's 
fix.
Had no objections for proposed patch.

> > Therefore, this alone might not be a better fix. But if we want to
> > club it with the fix already provided by Nisha, that will help us
> > releasing the pin a little earlier without relying on next
> > table_tuple_lock() on same slot to do that implictly.  That said, I
> > don't see ExecClearTuple() called explicitly in the two similar
> > functions in this file, RelationFindReplTupleByIndex() and
> > RelationFindReplTupleSeq(); both of which reuse a single
> > caller-provided slot across retries and rely purely on the implicit
> > release-on-restore behavior.

Okay, I have not seen that. Then either fixing or retain all is OK for me.

Best regards,
Hayato Kuroda
FUJITSU LIMITED



Reply via email to