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: Surafel Temesgen <surafel3000@gmail.com>
Cc: Alexander Korotkov <a.korotkov@postgrespro.ru>,
Masahiko Sawada <sawada.mshk@gmail.com>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Robert Haas <robertmhaas@gmail.com>, Michael Paquier <michael@paquier.xyz>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-09-18T12:46:20Z
Lists: pgsql-hackers
Attachments
Hi Surafel, Thank you for looking at the patch! On 17.09.2019 14:04, Surafel Temesgen wrote: > * There are NOWAIT option in alter index, is there a reason not to > have similar option here? Currently in Postgres SET TABLESPACE always comes with [ NOWAIT ] option, so I hope it worth adding this option here for convenience. Added in the new version. > * SET TABLESPACE command is not documented Actually, new_tablespace parameter was documented, but I've added a more detailed section for SET TABLESPACE too. > * There are multiple checking for whether the relation is temporary > tables of other sessions, one in check_relation_is_movable and other > independently Yes, and there is a comment section in the code describing why. There is a repeatable bunch of checks for verification whether relation movable or not, so I put it into a separated function -- check_relation_is_movable. However, if we want to do only REINDEX, then some of them are excess, so the only one RELATION_IS_OTHER_TEMP is used. Thus, RELATION_IS_OTHER_TEMP is never executed twice, just different code paths. > *+ char *tablespacename; > > calling it new_tablespacename will make it consistent with other places > OK, changed, although I don't think it is important, since this is the only one tablespace variable there. > *The patch did't applied cleanly > http://cfbot.cputube.org/patch_24_2269.log > Patch is rebased and attached with all the fixes described above. Regards -- Alexey Kondratov Postgres Professional https://www.postgrespro.com Russian Postgres Company
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