pg_upgrade: Preserve default char signedness value from old cluster.
Masahiko Sawada <msawada@postgresql.org>
pg_upgrade: Preserve default char signedness value from old cluster. Commit 44fe30fdab6 introduced the 'default_char_signedness' field in controlfile. Newly created database clusters always set this field to 'signed'. This change ensures that pg_upgrade updates the 'default_char_signedness' to 'unsigned' if the source database cluster has signedness=false. For source clusters from v17 or earlier, which lack the 'default_char_signedness' information, pg_upgrade assumes the source cluster was initialized on the same platform where pg_upgrade is running. It then sets the 'default_char_signedness' value according to the current platform's default character signedness. Reviewed-by: Noah Misch <noah@leadboat.com> Discussion: https://postgr.es/m/CB11ADBC-0C3F-4FE0-A678-666EE80CBB07%40amazon.com
Files
| Path | Change | +/− |
|---|---|---|
| src/bin/pg_upgrade/controldata.c | modified | +43 −1 |
| src/bin/pg_upgrade/pg_upgrade.c | modified | +28 −0 |
| src/bin/pg_upgrade/pg_upgrade.h | modified | +6 −0 |
| src/bin/pg_upgrade/t/005_char_signedness.pl | added | +65 −0 |
Discussion
- pg_trgm comparison bug on cross-architecture replication due to different char implementation 60 messages · 2024-04-23 → 2025-03-19