On Thu, 2023-12-28 at 18:00 +0300, Alexander Lakhin wrote: > AFAICS, before that commit SELECT getdatabaseencoding() in the test > returned SQL_ASCII, hence the test was essentially skipped, but now > it > returns WIN1252, so problematic CREATE COLLATION(locale = 'en_US', > ...) > is reached.
We do want that test to run though, right? I suspect that test line never worked reliably. The skip_test check at the top guarantees that the collation named "en_US" exists, but that doesn't mean that the OS understands the locale 'en_US'. Perhaps we can change that line to use a similar trick as what's used elsewhere in the file: do $$ BEGIN EXECUTE 'CREATE COLLATION ctest_det (locale = ' || quote_literal((SELECT collcollate FROM pg_collation WHERE collname = ''en_US'')) || ', deterministic = true);'; END $$; The above may need some adjustment, but perhaps you can try it out? Another option might be to use \gset to assign it to a variable, which might be more readable, but I think it's better to just follow what the rest of the file is doing. Regards, Jeff Davis