On 4/17/19 2:14 AM, Tim Kane wrote:


On Tue, 16 Apr 2019 at 18:04, Adrian Klaver <adrian.kla...@aklaver.com <mailto:adrian.kla...@aklaver.com>> 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.____

The table definition and the size of the data set would help with interpreting the below.


__

__

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

relfilenode____

-------------____

20669469 <tel: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 <tel: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 <tel:20671802>____

(1 row)____

__ __

Time: 0.331 ms____

__


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

Tim



--
Adrian Klaver
adrian.kla...@aklaver.com


Reply via email to