Re: Cases where alter table set type varchar(longer length) still needs table rewrite

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jeremy Finzel <finzelj(at)gmail(dot)com>
Cc: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Cases where alter table set type varchar(longer length) still needs table rewrite
Date: 2020-02-17 14:21:12
Message-ID: 573.1581949272@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Jeremy Finzel <finzelj(at)gmail(dot)com> writes:
> I have a table foo with 100 million rows, and a column:
> - id character varying(20)
> The following command is the one that we expect to execute very quickly (we
> are not seeing any locking), but it is instead taking a very long time:
> - ALTER TABLE foo ALTER COLUMN id TYPE varchar(100);

Hm, the code is supposed to avoid a table rewrite, but I wonder if
there's something else that's not being avoided, such as an index
rebuild or foreign-key verification. Could we see the whole table
definition, eg from psql \d+ ?

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jeremy Finzel 2020-02-17 15:01:41 Re: Cases where alter table set type varchar(longer length) still needs table rewrite
Previous Message Jeremy Finzel 2020-02-17 14:04:53 Cases where alter table set type varchar(longer length) still needs table rewrite