Thread
-
Remove unneccessary memory initialization in planner.c
Chao Li <li.evan.chao@gmail.com> — 2025-12-08T11:10:58Z
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) --------------------- HighGo Software Co., Ltd. https://www.highgo.com/ -
Re: Remove unneccessary memory initialization in planner.c
Aleksander Alekseev <aleksander@tigerdata.com> — 2025-12-08T12:17:25Z
Hi Chao, > "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. Good find. I agree that this code is redundant. Or alternatively we should do palloc() and assign all the initial values explicitly. -- Best regards, Aleksander Alekseev