Search Postgresql Archives

Re: Alter domain type / avoiding table rewrite

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Tue, 16 Apr 2019 at 18:04, Adrian Klaver <adrian.klaver@xxxxxxxxxxx> wrote:


Where are you seeing the rewrite in your case?


I’m unfamiliar with ctid (which I now plan to read up on)… I’ve been looking at relfilenode

I’ve observed that relfilenode changes when altering from old_type à varchar(9) and the operation takes 6 seconds on this data set.

  

PSQL:alpha_db/postgres@[local]=# select relfilenode from pg_class where relname='test';

relfilenode

-------------

    20669469

(1 row)

 

PSQL:alpha_db/postgres@[local]=# alter table test alter COLUMN exec_id set data type varchar(9);

ALTER TABLE

Time: 6605.454 ms


PSQL:alpha_db/postgres@[local]=# select relfilenode from pg_class where relname='test';

relfilenode

-------------

    20671802

(1 row)

 

And then the other way… from varchar(9) à old_type

refilenode does not change, and the operation takes 0.3ms

 

PSQL:alpha_db/postgres@[local]=# alter table test alter COLUMN exec_id set data type execid_t;

ALTER TABLE

Time: 1.360 ms

PSQL:alpha_db/postgres@[local]=# select relfilenode from pg_class where relname='test';

relfilenode

-------------

    20671802

(1 row)

 

Time: 0.331 ms



Apologies if this formats badly :-/ transcribing between devices not well suited to email.

Tim


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux