From: | Christophe Courtois <christophe(dot)courtois(at)dalibo(dot)com> |
---|---|
To: | Gambhir Singh <gambhir(dot)singh05(at)gmail(dot)com>, Pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org> |
Subject: | Re: alter the datatype of Partition Key |
Date: | 2025-06-16 08:13:59 |
Message-ID: | 0f03334a-6494-4890-9d95-883360d649bf@dalibo.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Hi,
Le 16/06/2025 à 09:15, Gambhir Singh a écrit :
> Hi,
> We have a partition table with partitioning type range and got the
> requirement from the application team to alter the datatype of
> partitioning key from bigint to varchar.
> Please suggest to me the way how this can be achieved.
You probably found that ALTER COLUMN will fail on a partitioned table :
ALTER TABLE pgbench_accounts ALTER COLUMN aid TYPE VARCHAR(16) ;
ERROR: cannot alter column "aid" because it is part of the partition
key of relation "pgbench_accounts"
(I don't see this limit in the doc BTW)
So I'm afraid that you will have to manually transfer the data from one
table to the other, one way or another.
> Data volume is quite huge in the table. ~50 Billion rows
Anyway, changing the type if the table will require to completely
rewrite the table.
You have a big table, you will have a long downtime.
Is the application team aware that this is not a trivial requirement ?
Changing a key from int to varchar does not sound like a good idea.
To reduce the downtime, perhaps logical replication would help.
It's possible to replicate from a table with a int PK to a table with a
varchar PK, but I did not try with a partitioned table. This is a bit
more complex to set up.
--
_________ ____
| || | Christophe Courtois
| ||__ | Consultant DALIBO
| | | | 43, rue du Faubourg Montmartre
| - | / / 75009 Paris
|___| |___| \/ www.dalibo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Gambhir Singh | 2025-06-16 13:16:47 | Re: alter the datatype of Partition Key |
Previous Message | Gambhir Singh | 2025-06-16 07:15:18 | alter the datatype of Partition Key |