Thread: ALTER TABLE ... SET TABLESPACE

ALTER TABLE ... SET TABLESPACE

From
Gavin Sherry
Date:
Attached is a patch implementing this functionality.

I've modified make_new_heap() as well as swap_relfilenodes() to not assume
that tablespaces remain the same from old to new heap. I thought it better
to go down this road than introduce a lot of duplicate code.

Thanks

Gavin

Attachment

Re: ALTER TABLE ... SET TABLESPACE

From
Tatsuo Ishii
Date:
> Attached is a patch implementing this functionality.
>
> I've modified make_new_heap() as well as swap_relfilenodes() to not assume
> that tablespaces remain the same from old to new heap. I thought it better
> to go down this road than introduce a lot of duplicate code.

I have tried your patches and it works great. Thanks.

One thing I noticed was if I change tablespace for a table having
indexes, they are left in the old tablespace and the table itself was
moved to the new tablespace. I regard this is a good thing since I
could assign different table spaces for table and indexes.
It would be even better to assign different tablespaces for each
index.
--
Tatsuo Ishii

Re: ALTER TABLE ... SET TABLESPACE

From
Tatsuo Ishii
Date:
> > Attached is a patch implementing this functionality.
> >
> > I've modified make_new_heap() as well as swap_relfilenodes() to not assume
> > that tablespaces remain the same from old to new heap. I thought it better
> > to go down this road than introduce a lot of duplicate code.
>
> I have tried your patches and it works great. Thanks.
>
> One thing I noticed was if I change tablespace for a table having
> indexes, they are left in the old tablespace and the table itself was
> moved to the new tablespace. I regard this is a good thing since I
> could assign different table spaces for table and indexes.
> It would be even better to assign different tablespaces for each
> index.

Hm. It seems there's a problem with tablespaces. What I did was:

pgbench -i test
alter table accounts set tablespace mydb2;
\d accounts

backend crashes by signal 11...
--
Tatsuo Ishii