| From: | Stephen Frost <sfrost(at)snowman(dot)net> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Simon Riggs <simon(at)2ndQuadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: ALTER TABLESPACE ... MOVE ALL TO ... |
| Date: | 2014-01-20 16:00:22 |
| Message-ID: | 20140120160022.GK31026@tamriel.snowman.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
* Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us) wrote:
> What if you're a superuser and you want to move everybody's objects
> (perhaps in preparation for dropping the tablespace)? I think there's
> value in both the ALL and OWNED forms.
A superuser is considered to 'own' all objects and so 'ALL' and 'OWNED'
above would be the same when issued by a superuser, in the current
implementation.
Looking at DROP OWNED and REASSIGN OWNED, they operate at the more
specific level of "OWNED" == "relowner" rather than if the role is
considered an 'owner' of the object through role membership, as you are
implying above.
As such, I'll rework this to be more in-line with the existing OWNED BY
semantics of REASSIGN OWNED BY and DROP OWNED BY, which means we'd have:
ALTER TABLESPACE name MOVE [ ALL | OWNED [ BY reluser ] ]
[ TABLES | INDEXES | MATERIALIZED VIEWS ] TO name opt_nowait
eg:
ALTER TABLESPACE tblspc1 MOVE ALL TO tblspc2;
ALTER TABLESPACE tblspc1 MOVE OWNED TO tblspc2;
ALTER TABLESPACE tblspc1 MOVE OWNED BY myrole TO tblspc2;
ALTER TABLESPACE tblspc1 MOVE TABLES OWNED BY myrole TO tblspc2;
ALTER TABLESPACE tblspc1 MOVE ALL OWNED BY myrole TO tblspc2;
Thoughts?
Thanks,
Stephen
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Stephen Frost | 2014-01-20 16:02:53 | Re: ALTER TABLESPACE ... MOVE ALL TO ... |
| Previous Message | Simon Riggs | 2014-01-20 15:58:20 | Re: ALTER TABLESPACE ... MOVE ALL TO ... |