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
