aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2021-06-21 23:11:23 +1200
committerDavid Rowley <drowley@postgresql.org>2021-06-21 23:11:23 +1200
commit8d29d45d9b3cab95a866efbcdd9138b3d76741b3 (patch)
treebb1e22f118cefffd8bbf30cca23bd6a724f96b83 /src
parenta7bb0ce58f56ee8907c3f49c52d99f502536c796 (diff)
downloadpostgresql-8d29d45d9b3cab95a866efbcdd9138b3d76741b3.tar.gz
postgresql-8d29d45d9b3cab95a866efbcdd9138b3d76741b3.zip
Fix assert failure in expand_grouping_sets
linitial_node() fails in assert enabled builds if the given pointer is not of the specified type. Here the type is IntList. The code thought it should be expecting List, but it was wrong. In the existing tests which run this code the initial list element is always NIL. Since linitial_node() allows NULL, we didn't trigger any assert failures in the existing regression tests. There is still some discussion as to whether we need a few more tests in this area, but for now, since beta2 is looming, fix the bug first. Bug: #17067 Discussion: https://postgr.es/m/17067-665d50fa321f79e0@postgresql.org Reported-by: Yaoguang Chen
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/parse_agg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index 9562ffcf3e2..a25f8d5b989 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -1855,7 +1855,7 @@ expand_grouping_sets(List *groupingSets, bool groupDistinct, int limit)
list_sort(result, cmp_list_len_contents_asc);
/* Finally, remove duplicates */
- prev = linitial_node(List, result);
+ prev = linitial(result);
for_each_from(cell, result, 1)
{
if (equal(lfirst(cell), prev))