Re: pg_trgm comparison bug on cross-architecture replication due to different char implementation
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Attachments
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.mshk@gmail.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
Commits
-
pg_upgrade: Check for the expected error message in TAP tests.
- f52345995d36 18.0 landed
-
Fix a typo in 005_char_signedness.pl test.
- 945a9e3832c3 18.0 landed
-
Add test 005_char_signedness.pl to meson.build.
- 78d3f4889502 18.0 landed
-
Fix an issue with index scan using pg_trgm due to char signedness on different architectures.
- dfd8e6c73eea 18.0 landed
-
pg_upgrade: Add --set-char-signedness to set the default char signedness of new cluster.
- 1aab6805919b 18.0 landed
-
pg_upgrade: Preserve default char signedness value from old cluster.
- a8238f87f980 18.0 landed
-
pg_resetwal: Add --char-signedness option to change the default char signedness.
- 30666d1857d7 18.0 landed
-
Add default_char_signedness field to ControlFileData.
- 44fe30fdab67 18.0 landed
-
Remove unneeded nbtree array preprocessing assert.
- 480bc6e3ed3a 17.0 cited