summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util
diff options
context:
space:
mode:
authorPeter Eisentraut2022-11-12 19:31:27 +0000
committerPeter Eisentraut2022-11-12 19:34:44 +0000
commitb4b7ce8061d34cea2b4915c41403b2a74d5fde0e (patch)
tree127e3012c81c377513fc234f0b8af27f16cf0c31 /src/backend/optimizer/util
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 <[email protected]> Discussion: https://www.postgresql.org/message-id/[email protected]
Diffstat (limited to 'src/backend/optimizer/util')
-rw-r--r--src/backend/optimizer/util/placeholder.c13
-rw-r--r--src/backend/optimizer/util/relnode.c29
2 files changed, 12 insertions, 30 deletions
diff --git a/src/backend/optimizer/util/placeholder.c b/src/backend/optimizer/util/placeholder.c
index c7bfa293c9f..c55027377fe 100644
--- a/src/backend/optimizer/util/placeholder.c
+++ b/src/backend/optimizer/util/placeholder.c
@@ -133,16 +133,11 @@ find_placeholder_info(PlannerInfo *root, PlaceHolderVar *phv)
while (phinfo->phid >= new_size)
new_size *= 2;
if (root->placeholder_array)
- {
- root->placeholder_array = (PlaceHolderInfo **)
- repalloc(root->placeholder_array,
- sizeof(PlaceHolderInfo *) * new_size);
- MemSet(root->placeholder_array + root->placeholder_array_size, 0,
- sizeof(PlaceHolderInfo *) * (new_size - root->placeholder_array_size));
- }
+ root->placeholder_array =
+ repalloc0_array(root->placeholder_array, PlaceHolderInfo *, root->placeholder_array_size, new_size);
else
- root->placeholder_array = (PlaceHolderInfo **)
- palloc0(new_size * sizeof(PlaceHolderInfo *));
+ root->placeholder_array =
+ palloc0_array(PlaceHolderInfo *, new_size);
root->placeholder_array_size = new_size;
}
root->placeholder_array[phinfo->phid] = phinfo;
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;
}