Re: Proposal: add new API to stringinfo

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tatsuo Ishii <ishii@postgresql.org>
Cc: pgsql-hackers@postgresql.org
Date: 2024-12-25T05:28:55Z
Lists: pgsql-hackers
On Wed, Dec 25, 2024 at 12:37:04PM +0900, Tatsuo Ishii wrote:
> Attached is a patch to implement it. In the patch I add two new APIs.
> 
> extern StringInfo makeStringInfoWithSize(int size);
> extern void initStringInfoWithSize(StringInfo str, int size);
> 
> Maybe I could re-invent the wheel by copying stringinfo.c, but I think
> there are some uses cases like me, and it could justify in adding more
> code to stringinfo.c.

Not sure how other feel about that, but I am not really convinced that
we need two APIs.  Saying that, having more control over the initial
size used for a StringInfo could provide better practices in some
cases.  This reminds me of the ALLOCSET_SMALL_* fields in memutils.h,
hence an idea would be an initStringInfoExtended() that you could
combine with two #define two: one for the "default" of 1024 and a
second one for "small", like 32 or 64 (?), that can be used at will
with the new API call.  Then you could switch initStringInfo() to
become a macro of the new "extended" call.  Just an idea.
--
Michael

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add new StringInfo APIs to allow callers to specify the buffer size.