Re: remove unneeded pstrdup in fetch_table_list

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: remove unneeded pstrdup in fetch_table_list
Дата
Msg-id CAA4eK1LBw7bhBLsXS1ozXW0rhwZqytq74j1riq2jJoVZniFHLg@mail.gmail.com
обсуждение исходный текст
Ответ на remove unneeded pstrdup in fetch_table_list  ("Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>)
Ответы Re: remove unneeded pstrdup in fetch_table_list  (Daniel Gustafsson <daniel@yesql.se>)
Список pgsql-hackers
On Wed, Jan 13, 2021 at 8:11 AM Hou, Zhijie <houzj.fnst@cn.fujitsu.com> wrote:
>
> Hi
>
> In function fetch_table_list, it get the table names from publicer and return a list of tablenames.
> When append the name to the list, it use the following code:
>
> **
>         nspname = TextDatumGetCString(slot_getattr(slot, 1, &isnull));
>         Assert(!isnull);
>         relname = TextDatumGetCString(slot_getattr(slot, 2, &isnull));
>         rv = makeRangeVar(pstrdup(nspname), pstrdup(relname), -1);
>         tablelist = lappend(tablelist, rv);
> **
>
> the nspname and relname will be copied which seems unnecessary.
> Because nspame and relname is get from TextDatumGetCString.
> IMO, TextDatumGetCString returns a newly palloced string.
>
> **
>         result = (char *) palloc(len + 1);
>         memcpy(result, VARDATA_ANY(tunpacked), len);
>         result[len] = '\0';
>
>         if (tunpacked != t)
>                 pfree(tunpacked);
>
>         return result;
> **
>

Your observation seems correct to me, though I have not tried to test
your patch.

-- 
With Regards,
Amit Kapila.



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

Предыдущее
От: "tsunakawa.takay@fujitsu.com"
Дата:
Сообщение: RE: Disable WAL logging to speed up data loading
Следующее
От: Peter Smith
Дата:
Сообщение: Re: Single transaction in the tablesync worker?