> 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.
We could make initStringInfoWithSize() as a static function if we don't want to add two new APIs. The reason it is exported in the patch is that I thought it maybe useful for callers who use stringinfo in this pattern. StringInfoData string; initStringInfoWithSize(&string); > 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. But then the extensions that use stringinfo.c need to be recompiled? Best reagards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp