| From: | Mats Kindahl <mats(dot)kindahl(at)gmail(dot)com> |
|---|---|
| To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Use stack-allocated StringInfoData |
| Date: | 2025-11-03 07:27:12 |
| Message-ID: | 4379aac8-26f1-42f2-a356-ff0e886228d3@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi all,
While working on other things I noted that we have a lot of cases where
a StringInfo instance is allocated dynamically even when it is either
thrown away or destroyed at the end, which seems unnecessary, that is,
instead of using:
StringInfo info = makeStringInfo();
...
appendStringInfo(info, ...);
...
return info->data;
We can use
StringInfoData info;
initStringInfo(&info);
...
appendStringInfo(&info, ...);
...
return info.data;
It was corrected in an earlier commit, but that seems to have been
removed so we still have a lot of these cases.
I created a semantic patch to capture most of these cases, which is
present in [1], but this is a slightly modified version that might be
interesting to include regardless of other changes. The patch is applied
and one case that couldn't be matched is manually fixed.
[1]:
https://www.postgresql.org/message-id/8895cba9-48cf-40fe-9c47-9b43ec6b2ab3%40gmail.com
Best wishes,
Mats Kindahl
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Use-stack-allocated-StringInfoData.v1.patch | text/x-patch | 32.5 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bertrand Drouvot | 2025-11-03 07:47:28 | Re: Consistently use the XLogRecPtrIsInvalid() macro |
| Previous Message | Peter Smith | 2025-11-03 07:24:39 | Re: Add support for specifying tables in pg_createsubscriber. |