Thread: Rewriting existing table tuples on alter type

Rewriting existing table tuples on alter type

From
Rikard Pavelic
Date:
How hard would it be to rewrite table content on composite attribute type change?

For simple use cases:
create type complex as (i int, j int);
create table numbers (c complex);
insert into numbers values(row(1,2));

I  can work around
alter complex from int to bigint
"fairly" easy with
alter type complex add attribute _tmp_i bigint;
--loop for each table
update numbers set c._tmp_i = (c).i;
--end loop
alter type complex drop attribute i;
alter type complex rename attribute _tmp_i to i;

I can "easily" work with deep nested types, but things starts to get PITA when there is
array involved because I need to unroll it and pack it again.

Regards,
Rikard


Re: Rewriting existing table tuples on alter type

From
Noah Misch
Date:
On Sat, Jun 30, 2012 at 02:59:07PM +0200, Rikard Pavelic wrote:
> How hard would it be to rewrite table content on composite attribute type change?

I wouldn't anticipate especially-thorny challenges.