Re: Allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly
Alexey Kondratov <a.kondratov@postgrespro.ru>
From: Alexey Kondratov <a.kondratov@postgrespro.ru>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Michael Paquier <michael@paquier.xyz>, Justin Pryzby
<pryzby@telsasoft.com>, Peter Eisentraut
<peter.eisentraut@enterprisedb.com>, Masahiko Sawada
<masahiko.sawada@2ndquadrant.com>, Steve Singer <steve@ssinger.info>,
pgsql-hackers@lists.postgresql.org, Robert Haas <robertmhaas@gmail.com>,
Alexander Korotkov <a.korotkov@postgrespro.ru>, Masahiko Sawada
<sawada.mshk@gmail.com>, Jose Luis Tallon <jltallon@adv-solutions.net>
Date: 2021-01-20T18:10:14Z
Lists: pgsql-hackers
Attachments
- v2-0002-Allow-REINDEX-to-change-tablespace.patch (text/x-diff) patch v2-0002
- v2-0001-Ectract-common-part-from-ATExecSetTableSpaceNoSto.patch (text/x-diff) patch v2-0001
On 2021-01-20 21:08, Alexey Kondratov wrote: > On 2021-01-20 18:54, Alvaro Herrera wrote: >> On 2021-Jan-20, Alvaro Herrera wrote: >> >>> On 2021-Jan-20, Michael Paquier wrote: >>> >>> > +/* >>> > + * This is mostly duplicating ATExecSetTableSpaceNoStorage, >>> > + * which should maybe be factored out to a library function. >>> > + */ >>> > Wouldn't it be better to do first the refactoring of 0002 and then >>> > 0001 so as REINDEX can use the new routine, instead of putting that >>> > into a comment? >>> >>> I think merging 0001 and 0002 into a single commit is a reasonable >>> approach. >> >> ... except it doesn't make a lot of sense to have set_rel_tablespace >> in >> either indexcmds.c or index.c. I think tablecmds.c is a better place >> for it. (I would have thought catalog/storage.c, but that one's not >> the >> right abstraction level it seems.) >> > > I did a refactoring of ATExecSetTableSpaceNoStorage() in the 0001. New > function SetRelTablesapce() is placed into the tablecmds.c. Following > 0002 gets use of it. Is it close to what you and Michael suggested? > Ugh, forgot to attach the patches. Here they are. -- Alexey
Commits
-
Add TABLESPACE option to REINDEX
- c5b286047cd6 14.0 landed
-
Refactor code in tablecmds.c to check and process tablespace moves
- 4c9c359d38ff 14.0 landed
-
Refactor option handling of CLUSTER, REINDEX and VACUUM
- a3dc926009be 14.0 landed
-
pg_dump: Don't use enums for defining bit mask values
- d2a2808eb444 14.0 landed
-
Refactor CLUSTER and REINDEX grammar to use DefElem for option lists
- b5913f612079 14.0 landed
-
Refactor parsing rules for option lists of EXPLAIN, VACUUM and ANALYZE
- 873ea9ee692e 14.0 landed
-
Improve tab completion of REINDEX in psql
- 1f75b454134c 14.0 landed
-
Fix possible crash during FATAL exit from reindexing.
- d12bdba77b0f 13.0 cited