From: Tom Lane Date: Thu, 18 Mar 2021 23:24:22 +0000 (-0400) Subject: Fix misuse of foreach_delete_current(). X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=1d581ce7129d7a33cd4ad27f8f246abfa1fd2db9;p=postgresql-pgindent.git Fix misuse of foreach_delete_current(). Our coding convention requires this macro's result to be assigned back to the original List variable. In this usage, since the List could not become empty, there was no actual bug --- but some compilers warned about it. Oversight in be45be9c3. Discussion: https://postgr.es/m/35077b31-2d62-1e31-0e2e-ddb52d590b73@enterprisedb.com --- diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c index 899327aaf4..1a745b742e 100644 --- a/src/backend/parser/parse_agg.c +++ b/src/backend/parser/parse_agg.c @@ -1844,11 +1844,11 @@ expand_grouping_sets(List *groupingSets, bool groupDistinct, int limit) list_sort(result, cmp_list_len_contents_asc); /* Finally, remove duplicates */ - prev = list_nth_node(List, result, 0); + prev = linitial_node(List, result); for_each_from(cell, result, 1) { if (equal(lfirst(cell), prev)) - foreach_delete_current(result, cell); + result = foreach_delete_current(result, cell); else prev = lfirst(cell); }