Re: Simplify the way of appending comma to stringInfo

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Simplify the way of appending comma to stringInfo
Дата
Msg-id aaf93314-69a8-4322-b540-b52e8ac3df68@iki.fi
обсуждение исходный текст
Ответ на Simplify the way of appending comma to stringInfo  (Chao Li <li.evan.chao@gmail.com>)
Ответы Re: Simplify the way of appending comma to stringInfo
Re: Simplify the way of appending comma to stringInfo
Список 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




В списке pgsql-hackers по дате отправления: