Try a few different locale name spellings in nls.sql.

While CI testing in advance of commit 8c498479d suggested that all
Unix-ish platforms would accept 'es_ES.UTF-8', the buildfarm has
a different opinion.  Let's dynamically select something that works,
if possible.

Discussion: https://postgr.es/m/E1vUpNU-000kcQ-1D@gemulon.postgresql.org
pull/258/head
Tom Lane 4 days ago
parent b853e644d7
commit 5b275a6e15
  1. 21
      src/test/regress/expected/nls.out
  2. 21
      src/test/regress/expected/nls_1.out
  3. 21
      src/test/regress/sql/nls.sql

@ -6,10 +6,23 @@ CREATE FUNCTION test_translation()
RETURNS void
AS :'regresslib'
LANGUAGE C;
-- Some BSDen are sticky about wanting a codeset name in lc_messages,
-- but it seems that at least on common platforms it doesn't have
-- to match the actual database encoding.
SET lc_messages = 'es_ES.UTF-8';
-- There's less standardization in locale name spellings than one could wish.
-- While some platforms insist on having a codeset name in lc_messages,
-- fortunately it seems that it need not match the actual database encoding.
do $$
declare locale text; ok bool;
begin
for locale in values('es_ES'), ('es_ES.UTF-8'), ('es_ES.utf8')
loop
ok = true;
begin
execute format('set lc_messages = %L', locale);
exception when invalid_parameter_value then
ok = false;
end;
exit when ok;
end loop;
end $$;
SELECT test_translation();
NOTICE: traducido PRId64 = 424242424242
NOTICE: traducido PRId32 = -1234

@ -6,10 +6,23 @@ CREATE FUNCTION test_translation()
RETURNS void
AS :'regresslib'
LANGUAGE C;
-- Some BSDen are sticky about wanting a codeset name in lc_messages,
-- but it seems that at least on common platforms it doesn't have
-- to match the actual database encoding.
SET lc_messages = 'es_ES.UTF-8';
-- There's less standardization in locale name spellings than one could wish.
-- While some platforms insist on having a codeset name in lc_messages,
-- fortunately it seems that it need not match the actual database encoding.
do $$
declare locale text; ok bool;
begin
for locale in values('es_ES'), ('es_ES.UTF-8'), ('es_ES.utf8')
loop
ok = true;
begin
execute format('set lc_messages = %L', locale);
exception when invalid_parameter_value then
ok = false;
end;
exit when ok;
end loop;
end $$;
SELECT test_translation();
NOTICE: NLS is not enabled
test_translation

@ -9,10 +9,23 @@ CREATE FUNCTION test_translation()
AS :'regresslib'
LANGUAGE C;
-- Some BSDen are sticky about wanting a codeset name in lc_messages,
-- but it seems that at least on common platforms it doesn't have
-- to match the actual database encoding.
SET lc_messages = 'es_ES.UTF-8';
-- There's less standardization in locale name spellings than one could wish.
-- While some platforms insist on having a codeset name in lc_messages,
-- fortunately it seems that it need not match the actual database encoding.
do $$
declare locale text; ok bool;
begin
for locale in values('es_ES'), ('es_ES.UTF-8'), ('es_ES.utf8')
loop
ok = true;
begin
execute format('set lc_messages = %L', locale);
exception when invalid_parameter_value then
ok = false;
end;
exit when ok;
end loop;
end $$;
SELECT test_translation();

Loading…
Cancel
Save