Обсуждение: ALTER TABLE ... SET TABLESPACE
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
Вложения
> 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
> > 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