Re: Updating pg_attribute to change field's data type from integer to bigint on very large table - Mailing list pgsql-general

From Tom Lane
Subject Re: Updating pg_attribute to change field's data type from integer to bigint on very large table
Date
Msg-id 23940.1334329392@sss.pgh.pa.us
Whole thread Raw
In response to Updating pg_attribute to change field's data type from integer to bigint on very large table  (Jeff Adams <jeff.adams@noaa.gov>)
Responses Re: Updating pg_attribute to change field's data type from integer to bigint on very large table  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Jeff Adams <jeff.adams@noaa.gov> writes:
> I have a very large table (approximately 1 billion records). I need to
> change a field's data type from integer to bigint. I started up an ALTER
> TABLE approach yesterday and it is still running (trying to rewrite the
> whole table?). I remember seeing mention of being able to do this in the
> pg_attribute table. Has anybody ever used the latter approach. If so,
> instructions would be greatly appreciated. Thanks...

No, that is an actual on-disk change (making the field physically
wider), so it's going to cost ya.  There are some cases where the
on-disk representation doesn't change and so a catalog update isn't
needed, but int4->int8 isn't one of them.

            regards, tom lane

pgsql-general by date:

Previous
From: "Albe Laurenz"
Date:
Subject: Re: aggregate arrays
Next
From: Tom Lane
Date:
Subject: Re: Updating pg_attribute to change field's data type from integer to bigint on very large table