On 2023-May-08, Peter Eisentraut wrote: > On 23.04.23 08:42, Richard Guo wrote: > > Thanks for the suggestion. I've split the patch into two as attached. > > 0001 is just a minor simplification by replacing lfirst(list_head(list)) > > with linitial(list). 0002 introduces new functions to reduce the > > movement of list elements in several places so as to gain performance > > improvement and benefit future callers. > > These look sensible to me. If you could show some numbers that support the > claim that there is a performance advantage, it would be even more > convincing.
0001 looks fine. The problem I see is that each of these new functions has a single caller, and the only one that looks like it could have a performance advantage is list_copy_move_nth_to_head() (which is the weirdest of the lot). I'm inclined not to have any of these single-use functions unless a performance case can be made for them. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/