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.


Reply via email to