Re: Allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: Alexey Kondratov <a(dot)kondratov(at)postgrespro(dot)ru>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Masahiko Sawada <masahiko(dot)sawada(at)2ndquadrant(dot)com>, Steve Singer <steve(at)ssinger(dot)info>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Jose Luis Tallon <jltallon(at)adv-solutions(dot)net>
Subject: Re: Allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly
Date: 2020-03-27 20:15:42
Message-ID: 20200327201541.GA23323@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Thu, Mar 26, 2020 at 11:01:06PM -0500, Justin Pryzby wrote:
> > Another issue is this:
> > > +VACUUM ( FULL [, ...] ) [ TABLESPACE <replaceable class="parameter">new_tablespace</replaceable> ] [ <replaceable class="parameter">table_and_columns</replaceable> [, ...] ]
> > As you mentioned in your v1 patch, in the other cases, "tablespace
> > [tablespace]" is added at the end of the command rather than in the middle. I
> > wasn't able to make that work, maybe because "tablespace" isn't a fully
> > reserved word (?). I didn't try with "SET TABLESPACE", although I understand
> > it'd be better without "SET".
>
> I think we should use the parenthesized syntax for vacuum - it seems clear in
> hindsight.

I implemented this last night but forgot to attach it.

> Possibly REINDEX should use that, too, instead of adding OptTablespace at the
> end. I'm not sure.
>
> CLUSTER doesn't support parenthesized syntax, but .. maybe it should?
>
> Also, perhaps VAC FULL (and CLUSTER, if it grows parenthesized syntax), should
> support something like this:
>
> USING INDEX TABLESPACE name
>
> I guess I would prefer just "index tablespace", without "using":
>
> |VACUUM(FULL, TABLESPACE ts, INDEX TABLESPACE its) t;
> |CLUSTER(VERBOSE, TABLESPACE ts, INDEX TABLESPACE its) t;

Attachment Content-Type Size
v13-0001-Allow-REINDEX-to-change-tablespace.patch text/x-diff 34.0 KB
v13-0002-Allow-CLUSTER-and-VACUUM-FULL-to-change-tablespa.patch text/x-diff 24.8 KB
v13-0003-Parenthesized-syntax-VACUUM-FULL-TABLESPACE.patch text/x-diff 9.6 KB
v13-0004-fixes2.patch text/x-diff 4.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message David Steele 2020-03-27 20:16:11 Re: backup manifests
Previous Message Andres Freund 2020-03-27 20:12:22 Re: backup manifests