summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/relnode.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2022-11-12 20:31:27 +0100
committerPeter Eisentraut <peter@eisentraut.org>2022-11-12 20:34:44 +0100
commitb4b7ce8061d34cea2b4915c41403b2a74d5fde0e (patch)
tree127e3012c81c377513fc234f0b8af27f16cf0c31 /src/backend/optimizer/util/relnode.c
parent30d98e14a88930c6d9658525fd5e6722e70a02e6 (diff)
Add repalloc0 and repalloc0_array
These zero out the space added by repalloc. This is a common pattern that is quite hairy to code by hand. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/b66dfc89-9365-cb57-4e1f-b7d31813eeec@enterprisedb.com
Diffstat (limited to 'src/backend/optimizer/util/relnode.c')
-rw-r--r--src/backend/optimizer/util/relnode.c29
1 files changed, 8 insertions, 21 deletions
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 1786a3daddc..d7b4434e7f4 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -157,31 +157,18 @@ expand_planner_arrays(PlannerInfo *root, int add_size)
new_size = root->simple_rel_array_size + add_size;
- root->simple_rel_array = (RelOptInfo **)
- repalloc(root->simple_rel_array,
- sizeof(RelOptInfo *) * new_size);
- MemSet(root->simple_rel_array + root->simple_rel_array_size,
- 0, sizeof(RelOptInfo *) * add_size);
+ root->simple_rel_array =
+ repalloc0_array(root->simple_rel_array, RelOptInfo *, root->simple_rel_array_size, new_size);
- root->simple_rte_array = (RangeTblEntry **)
- repalloc(root->simple_rte_array,
- sizeof(RangeTblEntry *) * new_size);
- MemSet(root->simple_rte_array + root->simple_rel_array_size,
- 0, sizeof(RangeTblEntry *) * add_size);
+ root->simple_rte_array =
+ repalloc0_array(root->simple_rte_array, RangeTblEntry *, root->simple_rel_array_size, new_size);
if (root->append_rel_array)
- {
- root->append_rel_array = (AppendRelInfo **)
- repalloc(root->append_rel_array,
- sizeof(AppendRelInfo *) * new_size);
- MemSet(root->append_rel_array + root->simple_rel_array_size,
- 0, sizeof(AppendRelInfo *) * add_size);
- }
+ root->append_rel_array =
+ repalloc0_array(root->append_rel_array, AppendRelInfo *, root->simple_rel_array_size, new_size);
else
- {
- root->append_rel_array = (AppendRelInfo **)
- palloc0(sizeof(AppendRelInfo *) * new_size);
- }
+ root->append_rel_array =
+ palloc0_array(AppendRelInfo *, new_size);
root->simple_rel_array_size = new_size;
}