Re: alter the datatype of Partition Key

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

 



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







[Index of Archives]     [Postgresql Home]     [Postgresql General]     [Postgresql Performance]     [Postgresql PHP]     [Postgresql Jobs]     [PHP Users]     [PHP Databases]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Forum]

  Powered by Linux