> I found some code path use list_delete_ptr while the loop of foreach() is > iterating. > > List_delete_ptr seems search the list again to find the target cell and > delete it. > > foreach(cell, list) > > { > > if (lfirst(cell) == datum) > > return list_delete_cell(list, cell); > > } > > > If we already get the cell in foreach loop, I think we can use > list_delete_cell to avoid searching the list again. > > Please see the attachment for the patch.
I have added it to commitfest. https://commitfest.postgresql.org/30/2761/ Best regards.