Re: Proposal: add new API to stringinfo

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tatsuo Ishii <ishii@postgresql.org>, michael@paquier.xyz
Cc: dgrowleyml@gmail.com, pgsql-hackers@postgresql.org
Date: 2025-01-03T22:16:58Z
Lists: pgsql-hackers
On 2024-12-28 Sa 12:45 AM, Tatsuo Ishii wrote:
> Michael said:
>> New APIs are materials for HEAD, so recompilation needs to happen
>> anyway.  Using a macro makes things slightly simpler and it would not
>> break unnecessarily the compilation of existing extensions.
> Ok.
>
> David said:
>> I didn't review the patch in detail, but I think "initsize" would be a
>> better parameter name than "size".
> Ok, will change to "initsize".
>
> With opinions from Michael and David , what about following additional APIs?
>
> #define STRINGINFO_DEFAULT_SIZE	1024	/* default initial allocation size */
> #define STRINGINFO_SMALL_SIZE	64	/* small initial allocation size */
>
> #define makeStringInfo		makeStringInfoExtended(STRINGINFO_DEFAULT_SIZE)
> #define	initStringInfo(str)	initStringInfoExtended(str, STRINGINFO_DEFAULT_SIZE)
>
> extern StringInfo makeStringInfoExtended(int initsize);
> extern void initStringInfoExtended(StringInfo str, int initsize);
>


Seems like a good idea.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




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.