Re: How to do faster DML

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Greg Sabino Mullane <htamfids(at)gmail(dot)com>, veem v <veema0000(at)gmail(dot)com>
Cc: Ron Johnson <ronljohnsonjr(at)gmail(dot)com>, "Peter J(dot) Holzer" <hjp-pgsql(at)hjp(dot)at>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: How to do faster DML
Date: 2024-02-15 16:43:17
Message-ID: 9da45458-e5dc-44e2-80f3-6a0462443a1c@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 2/15/24 08:16, Greg Sabino Mullane wrote:
> So as I also tested the same as you posted, there has been no change
> in "ctid" , when I altered the column data type from 'int' to
> 'bigint' in the table, so that means full table rewriting
> won't happen in such a scenario.
>
>
> No it was definitely rewritten - do not depend on the ctid to verify
> that. Take our word for it, or
> use*pg_relation_filenode('int_test');* before and after, as well as
> *pg_relation_size('int_test')*;

That is a mixed bag:

test=# select pg_relation_filenode('int_test');
pg_relation_filenode
----------------------
69999
(1 row)

test=# select pg_relation_size('int_test');
pg_relation_size
------------------
368640
(1 row)

test=# alter table int_test alter column int_fld set data type bigint;
ALTER TABLE
test=# select pg_relation_filenode('int_test');
pg_relation_filenode
----------------------
70002
(1 row)

test=# select pg_relation_size('int_test');
pg_relation_size
------------------
368640

>
> Cheers,
> Greg
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Greg Sabino Mullane 2024-02-15 17:00:58 Re: How to do faster DML
Previous Message Greg Sabino Mullane 2024-02-15 16:16:50 Re: How to do faster DML