Re: Redundant strlen(query) in get_rel_infos

Поиск
Список
Период
Сортировка
Искать
От
Daniel Gustafsson
Тема
Re: Redundant strlen(query) in get_rel_infos
Дата
в 09:57:37
Msg-id
80BFC3E2-89C5-415A-BEF4-04B5F1E8A7FD@yesql.se
Ответ на
Список
Дерево обсуждения
Redundant strlen(query) in get_rel_infos Peter Smith <smithpb2250@gmail.com>
Re: Redundant strlen(query) in get_rel_infos Michael Paquier <michael@paquier.xyz>
Re: Redundant strlen(query) in get_rel_infos Daniel Gustafsson <daniel@yesql.se>
Re: Redundant strlen(query) in get_rel_infos Michael Paquier <michael@paquier.xyz>
Re: Redundant strlen(query) in get_rel_infos Daniel Gustafsson <daniel@yesql.se>
> On 11 May 2023, at 06:24, Michael Paquier  wrote:
> 
> On Thu, May 11, 2023 at 01:06:42PM +1000, Peter Smith wrote:
>> While reviewing another patch to the file info.c, I noticed there seem
>> to be some unnecessary calls to strlen(query) in get_rel_infos()
>> function.
>> 
>> i.e. The query is explicitly initialized to an empty string
>> immediately prior, so why the strlen?
> 
> It just looks like this was copied from a surrounding area like
> get_db_infos().  Keeping the code as it is is no big deal, either, but
> yes we could just remove them and save the two calls.  So ok by me.

I think it's intentionally done in 73b9952e82 as defensive coding, and given
that this is far from a hot codepath I think leaving them is better.

Instead I think it would be more worthwhile to remove these snprintf() made
queries and use PQExpbuffers.  29aeda6e4e6 introduced that in pg_upgrade and it
is more in line with how we build queries in other tools.

Looking at the snprintf sites made me remember a patchset I worked on last year
(but I don't remember if I ended up submitting); there is no need to build one
of the queries on the stack as it has no variables.  The attached 0003 (which
needs a reindent of the query text) comes from that patchset.  I think we
should do this regardless.

--
Daniel Gustafsson

В списке pgsql-hackers по дате отправления
От: Zhijie Hou (Fujitsu)
Дата:
От: Daniel Gustafsson
Дата:
FAQ