mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
Drop the temporary tuple slots allocated by pgoutput.
In pgoutput, when converting the child table's tuple format to match the parent table's, we temporarily create a new slot to store the converted tuple. However, we missed to drop such temporary slots, leading to resource leakage. Reported-by: Bowen Shi Author: Hou Zhijie Reviewed-by: Amit Kapila Backpatch-through: 15 Discussion: https://postgr.es/m/CAM_vCudv8dc3sjWiPkXx5F2b27UV7_YRKRbtSCcE-pv=cVACGA@mail.gmail.com
This commit is contained in:
parent
eb144dfcaf
commit
76fda61402
@ -1587,6 +1587,16 @@ pgoutput_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn,
|
||||
ancestor = NULL;
|
||||
}
|
||||
|
||||
/* Drop the new slots that were used to store the converted tuples. */
|
||||
if (relentry->attrmap)
|
||||
{
|
||||
if (old_slot)
|
||||
ExecDropSingleTupleTableSlot(old_slot);
|
||||
|
||||
if (new_slot)
|
||||
ExecDropSingleTupleTableSlot(new_slot);
|
||||
}
|
||||
|
||||
/* Cleanup */
|
||||
MemoryContextSwitchTo(old);
|
||||
MemoryContextReset(data->context);
|
||||
|
Loading…
x
Reference in New Issue
Block a user