Thread
Commits
-
Fix the test 005_char_signedness.
- c462b054ba60 18.0 landed
-
pg_upgrade: Preserve default char signedness value from old cluster.
- a8238f87f980 18.0 cited
-
Add default_char_signedness field to ControlFileData.
- 44fe30fdab67 18.0 cited
-
pgsql: pg_upgrade: Preserve default char signedness value from old clus
Masahiko Sawada <msawada@postgresql.org> — 2025-02-21T18:20:37Z
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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/a8238f87f980848c2d69c105555c4383e20e7670 Modified Files -------------- src/bin/pg_upgrade/controldata.c | 44 ++++++++++++++++++- src/bin/pg_upgrade/pg_upgrade.c | 28 +++++++++++++ src/bin/pg_upgrade/pg_upgrade.h | 6 +++ src/bin/pg_upgrade/t/005_char_signedness.pl | 65 +++++++++++++++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-)
-
Re: pgsql: pg_upgrade: Preserve default char signedness value from old clus
Robert Haas <robertmhaas@gmail.com> — 2025-03-17T17:20:22Z
On Fri, Feb 21, 2025 at 1:20 PM Masahiko Sawada <msawada@postgresql.org> wrote: > pg_upgrade: Preserve default char signedness value from old cluster. Hi, I noticed that after running 'meson test --suite setup --suite pg_upgrade', the file delete_old_cluster.sh is left behind in the source directory, which should not happen. Everything created for the tests should be created in the meson directories. I traced the problem down to 005_char_signedness.pl. I believe the problem is likely that other pg_upgrade TAP tests include this locution, whereas 005_char_signedness.pl does not: # In a VPATH build, we'll be started in the source directory, but we want # to run pg_upgrade in the build directory so that any files generated finish # in it, like delete_old_cluster.{sh,bat}. chdir ${PostgreSQL::Test::Utils::tmp_check}; Regards, -- Robert Haas EDB: http://www.enterprisedb.com -
Re: pgsql: pg_upgrade: Preserve default char signedness value from old clus
Masahiko Sawada <sawada.mshk@gmail.com> — 2025-03-17T22:01:43Z
On Mon, Mar 17, 2025 at 10:20 AM Robert Haas <robertmhaas@gmail.com> wrote: > > On Fri, Feb 21, 2025 at 1:20 PM Masahiko Sawada <msawada@postgresql.org> wrote: > > pg_upgrade: Preserve default char signedness value from old cluster. > > Hi, > > I noticed that after running 'meson test --suite setup --suite > pg_upgrade', the file delete_old_cluster.sh is left behind in the > source directory, which should not happen. Everything created for the > tests should be created in the meson directories. I traced the problem > down to 005_char_signedness.pl. I believe the problem is likely that > other pg_upgrade TAP tests include this locution, whereas > 005_char_signedness.pl does not: > > # In a VPATH build, we'll be started in the source directory, but we want > # to run pg_upgrade in the build directory so that any files generated finish > # in it, like delete_old_cluster.{sh,bat}. > chdir ${PostgreSQL::Test::Utils::tmp_check}; Thank you for the report. I've confirmed the issue and attached a patch to fix it. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com -
Re: pgsql: pg_upgrade: Preserve default char signedness value from old clus
Robert Haas <robertmhaas@gmail.com> — 2025-03-18T03:02:14Z
On Mon, Mar 17, 2025 at 6:02 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > I've confirmed the issue and attached a patch to fix it. Cool. The commit message refers to 003_char_signedness, but the test name is 005, not 003. -- Robert Haas EDB: http://www.enterprisedb.com
-
Re: pgsql: pg_upgrade: Preserve default char signedness value from old clus
Masahiko Sawada <sawada.mshk@gmail.com> — 2025-03-18T04:35:43Z
On Mon, Mar 17, 2025 at 8:02 PM Robert Haas <robertmhaas@gmail.com> wrote: > > On Mon, Mar 17, 2025 at 6:02 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > I've confirmed the issue and attached a patch to fix it. > > Cool. The commit message refers to 003_char_signedness, but the test > name is 005, not 003. Thank you for reviewing the patch. I've pushed the patch after fixing it. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: pgsql: pg_upgrade: Preserve default char signedness value from old clus
Robert Haas <robertmhaas@gmail.com> — 2025-03-18T12:28:25Z
On Tue, Mar 18, 2025 at 12:36 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > Cool. The commit message refers to 003_char_signedness, but the test > > name is 005, not 003. > > Thank you for reviewing the patch. I've pushed the patch after fixing it. Thanks for taking care of it (and so quickly!). -- Robert Haas EDB: http://www.enterprisedb.com