Hi Hackers,
In this code piece:
```
static grouping_sets_data *
preprocess_grouping_sets(PlannerInfo *root)
{
...
grouping_sets_data *gd = palloc0(sizeof(grouping_sets_data));
...
gd->any_hashable = false;
gd->unhashable_refs = NULL;
gd->unsortable_refs = NULL;
gd->unsortable_sets = NIL;
...
```
"gd" is allocated by palloc0, so all members have been zero initialized, thus explicitly assigning NULL to the 4 members is unnecessary. I don't think that has much runtime impact, but from a readability perspective, a potential question is that, "gd" has more fields, why only set 0 to these 4 members redundantly?
To avoid the potential confusion, I think we'd better delete these initializations.
Begards,
Chao Li (Evan)
---------------------