Re: Simplify the way of appending comma to stringInfo

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Simplify the way of appending comma to stringInfo
Date: 2025-12-08 08:41:10
Message-ID: CAFj8pRB7xn_enWAFsZaJ+L+c6xPLRJ-G2teG-S-=DXLZuA=Q3w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

po 8. 12. 2025 v 9:37 odesílatel Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> napsal:

> Hi Hackers,
>
> In a lot places, there are logic of appending comma separators in a
> pattern like:
>
> ```
> for (int i = 0; i < len; i ++)
> {
> if (i > 0)
> appendStringInfoString(", ");
> appendStringInfo(some-item);
> }
>
> ```
> This pattern uses an "if" check and two appendStringInfoString() to build
> a comma-delimited string.
>
> This can be simplified as:
>
> ```
> const char *sep = "";
> for (int i = 0; i < len; i ++)
> {
> appendStringInfo("%s%s", sep, some-item);
> sep = ", ";
> }
> ```
> The new pattern avoids the "if" check, and combines two
> appendStringInfoString() into a single appendStringInfo(). I think the new
> pattern is neater and faster.
>
> The old patterns are used in a lot of places, and there are some usages of
> the new pattern as well. Instead of creating a big cleanup patch, I
> just applied the new pattern to a single file for now to see if the hacker
> group likes this change.
>

It doesn't look like a simplification.

Regards

Pavel

> Best regards,
> ==
> Chao Li (Evan)
> ---------------------
> HighGo Software Co., Ltd.
> https://www.highgo.com/
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2025-12-08 08:43:44 Re: Simplify the way of appending comma to stringInfo
Previous Message Chao Li 2025-12-08 08:37:30 Simplify the way of appending comma to stringInfo