Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands
От | Michael Paquier |
---|---|
Тема | Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands |
Дата | |
Msg-id | CAB7nPqQLnDxu+7mXK-YZ-zCWxQovtOvAv4cyzg6QHkFsDOeL1Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: [HACKERS] [Proposal] Allow users to specify multiple tables inVACUUM commands
|
Список | pgsql-hackers |
On Sat, Aug 26, 2017 at 8:00 AM, Robert Haas <robertmhaas@gmail.com> wrote: > On Thu, Aug 24, 2017 at 12:59 AM, Michael Paquier > <michael.paquier@gmail.com> wrote: >> Robert, Amit and other folks working on extending the existing >> partitioning facility would be in better position to answer that, but >> I would think that we should have something as flexible as possible, >> and storing a list of relation OID in each VacuumRelation makes it >> harder to track the uniqueness of relations vacuumed. I agree that the >> concept of a partition with multiple parents induces a lot of >> problems. But the patch as proposed worries me as it complicates >> vacuum() with a double loop: one for each relation vacuumed, and one >> inside it with the list of OIDs. Modules calling vacuum() could also >> use flexibility, being able to analyze a custom list of columns for >> each relation has value as well. > > So ... why have a double loop? I mean, you could just expand this out > to one entry per relation actually being vacuumed, couldn't you? Yes, if I understand that correctly. That's the point I am exactly coming at. My suggestion is to have one VacuumRelation entry per relation vacuumed, even for partitioned tables, and copy the list of columns to each one. > + oldcontext = MemoryContextSwitchTo(vac_context); > + foreach(lc, relations) > + temp_relations = lappend(temp_relations, copyObject(lfirst(lc))); > + MemoryContextSwitchTo(oldcontext); > + relations = temp_relations; > > Can't we just copyObject() on the whole list? Yup. -- Michael
В списке pgsql-hackers по дате отправления: