| From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
|---|---|
| To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, 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:43:44 |
| Message-ID: | aaf93314-69a8-4322-b540-b52e8ac3df68@iki.fi |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 08/12/2025 10:37, Chao Li wrote:
> 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's a matter of taste, but I personally prefer the "old" pattern with
an explicit if() statement more. And I don't think it's worth the code
churn to change existing code either way.
- Heikki
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Geier | 2025-12-08 08:46:44 | Re: Simplify the way of appending comma to stringInfo |
| Previous Message | Pavel Stehule | 2025-12-08 08:41:10 | Re: Simplify the way of appending comma to stringInfo |