Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation

From: Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>
To: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Cc: Noah Misch <noah(at)leadboat(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Joe Conway <mail(at)joeconway(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>, "Guo, Adam" <adamguo(at)amazon(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Nathan Bossart <nathandbossart(at)gmail(dot)com>, Jim Mlodgenski <jimmy76(at)gmail(dot)com>
Subject: Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation
Date: 2025-02-25 23:03:24
Message-ID: 87tt8h1vb7.fsf@wibble.ilmari.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

While working on another round of the long option and fat comma style
cleanup, I noticed that the test for pg_upgrade --set-char-signedess
doesn't test what it's supposed to:

Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> writes:

> diff --git a/src/bin/pg_upgrade/t/005_char_signedness.pl b/src/bin/pg_upgrade/t/005_char_signedness.pl
> index 05c3014a27d..c024106863e 100644
> --- a/src/bin/pg_upgrade/t/005_char_signedness.pl
> +++ b/src/bin/pg_upgrade/t/005_char_signedness.pl
> @@ -40,6 +40,23 @@ command_like(
> qr/Default char data signedness:\s+unsigned/,
> 'updated default char signedness is unsigned in control file');
>
> +# Cannot use --set-char-signedness option for upgrading from v18+
> +command_fails(
> + [
> + 'pg_upgrade', '--no-sync',
> + '-d', $old->data_dir,
> + '-D', $new->data_dir,
> + '-b', $old->config_data('--bindir'),
> + '-B', $new->config_data('--bindir'),
> + '-s', $new->host,
> + '-p', $old->port,
> + '-P', $new->port,
> + '-set-char-signedness', 'signed',

This is missing a dash, which causes the command to fail, but for the
wrong reason. pg_uprade seems to print all its errors on stdout, which
I guess is why the test use plain command_fails() instead of
command_fails_like(). However, we have another function to deal with
this: command_checks_all(). Attached are patches that fix the above
test, and also convert the other command_fails() calls in the pg_upgrade
tests to test for specific messages.

- ilmari

Attachment Content-Type Size
0001-pg_upgrade-fix-set-char-signedness-failure-test.patch text/x-diff 1.4 KB
0002-pg_upgrade-use-command_checks_all-to-check-for-error.patch text/x-diff 2.2 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Sadeq Dousti 2025-02-25 23:28:47 Re: psql \dh: List High-Level (Root) Tables and Indexes
Previous Message Melanie Plageman 2025-02-25 22:44:11 Re: Parallel heap vacuum