Re: Avoid unnecessary table open/close for TRUNCATE foo, foo, foo; kind of commands
От | Amul Sul |
---|---|
Тема | Re: Avoid unnecessary table open/close for TRUNCATE foo, foo, foo; kind of commands |
Дата | |
Msg-id | CAAJ_b96LvSAS799DMu-ekkgn08Hh70fpuP=VbsZbHe5B0WdA-Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Avoid unnecessary table open/close for TRUNCATE foo, foo, foo; kind of commands (Fujii Masao <masao.fujii@oss.nttdata.com>) |
Список | pgsql-hackers |
On Fri, Apr 9, 2021 at 9:23 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: > > > > On 2021/04/10 0:39, Amul Sul wrote: > > On Fri, Apr 9, 2021 at 8:51 PM Bharath Rupireddy > > <bharath.rupireddyforpostgres@gmail.com> wrote: > >> > >> Hi, > >> > >> While checking the ExecuteTruncate code for the FOREIGN TRUNCATE > >> feature, I saw that we filter out the duplicate relations specified in > >> the TRUNCATE command. But before skipping the duplicates, we are just > >> opening the relation, then if it is present in the already seen > >> relids, then closing it and continuing further. > >> > >> I think we can just have the duplicate checking before table_open so > >> that in cases like TRUNCATE foo, foo, foo, foo; we could save costs of > >> table_open and table_close. Attaching a small patch. Thoughts? > >> > >> This is just like what we already do for child tables, see following > >> in ExecuteTruncate: > >> foreach(child, children) > >> { > >> Oid childrelid = lfirst_oid(child); > >> > >> if (list_member_oid(relids, childrelid)) > >> continue; > >> > > > > Well yes, the patch looks pretty much reasonable to be. > > LGTM, too. I will commit this patch. > Though that code exists even in older version, I'm not thinking > to back-patch that because it's not a bug. > Agree, thanks Fujii-San. Regards, Amul
В списке pgsql-hackers по дате отправления: