Noah Misch писал(а) 2024-12-17 02:16:
> I wasn't ready to believe it, but 010_dump_connstr indeed fails with
> GetACP()==932. We've had test coverage of this for 8+ years, so I
> gather few
> or no runs of the TAP suite on GetACP()==932 systems have ever
> happened. Wow.
>
> Here's how your particular example traverses the CP932 command line:
>
> CreateProcessA(0xe6 0x96 0x87 0xe5 0xad 0x97 0xe5 0x8c 0x96 0xe3 0x81
> 0x91)
> argv[1] = e6 96 81 45 ad 97 e5 8c 96 e3 81
> GetCommandLineA() = 61 20 e6 96 81 45 ad 97 e5 8c 96 e3 81
> GetCommandLineW() = 61 20 8b41 30fb ff6d 601c 55a7 7e3a
>
>> It's a shame the implicit conversion here doesn't fail with EILSEQ. I
>> can't imagine how anything good can ever have come from lossy,
>> non-error-raising implicit conversions anywhere near argv[]. On the
>
> It's a shame.
I also found that 010_dump_connstr fails, if Windows has UTF-8 option on
(in language setting,
mentioned as beta feature in option description).
It looks like this test does not consider language settings. It creates
user with a long name,
language settings can increase this name by 2 times in UTF-8 case,
Postgres cut this name to 64 bytes, but the test continues to use
original long name and fails.
It is not clear, what exactly the test checks, if it fails before the
dump check.
--
Best regards,
Vladlen Popolitov.