Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands
От | Masahiko Sawada |
---|---|
Тема | Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands |
Дата | |
Msg-id | CAD21AoBD_f7XkJ-wHCGQPyQr7k+Ri+isQVM5iS7N-kQzpAGS2w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands (Michael Paquier <michael.paquier@gmail.com>) |
Список | pgsql-hackers |
On Tue, Sep 5, 2017 at 12:24 PM, Michael Paquier <michael.paquier@gmail.com> wrote: > On Tue, Sep 5, 2017 at 12:05 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote: >> In get_rel_oids() we often switch the memory context to vac_context >> and switch back. As a result almost code in get_rel_oids() is working >> in vac_context. Maybe we can switch memory context before and after >> the calling get_rel_oids? > > I thought about that as well, and it seemed to me that the current > patch approach is less bug-prone for the future if get_rel_oids() gets > called in some future code paths. Okay, I agree. Also I found that dedupe_relations() eventually allocates the list in current memory context that may not be vac_context and set it to *relations at the end of that function. I think we should switch the memory context to vac_context before doing that. Or to more simplify the code maybe we can do the all treatment of the relations list after switching to vac_context. For example, oldcontext = MemoryContextSwtichTo(vac_context) relations = copyObject(relations); get_rel_oids(&relations); check_colums_exist(relations); dedupe_relations(&relations); MemoryContextSwtichTo(oldcontext); Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: