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
|
Список | 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 по дате отправления: