Inconsistent "ICU Locale" output on older server versions
От | Christoph Berg |
---|---|
Тема | Inconsistent "ICU Locale" output on older server versions |
Дата | |
Msg-id | YlmIFCqu+TZSW4rB@msg.df7cb.de обсуждение исходный текст |
Ответ на | Re: pgsql: Add option to use ICU as global locale provider (Christoph Berg <myon@debian.org>) |
Ответы |
Re: Inconsistent "ICU Locale" output on older server versions
("Euler Taveira" <euler@eulerto.com>)
|
Список | pgsql-hackers |
Re: To Peter Eisentraut > This hardly fits in normal-size terminals: > > =# \l > List of databases > Name │ Owner │ Encoding │ Collate │ Ctype │ ICU Locale │ Locale Provider │ Access privileges > ───────────┼───────┼──────────┼────────────┼────────────┼────────────┼─────────────────┼─────────────────── > postgres │ myon │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ │ libc │ > template0 │ myon │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ │ libc │ =c/myon ↵ > │ │ │ │ │ │ │ myon=CTc/myon > template1 │ myon │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ │ libc │ =c/myon ↵ > │ │ │ │ │ │ │ myon=CTc/myon > (3 rows) Another gripe here: The above is the output when run against a PG15 cluster, created without an ICU locale set. When running psql 15 against PG 14, the output is this: $ psql -l List of databases Name │ Owner │ Encoding │ Collate │ Ctype │ ICU Locale │ Locale Provider │ Access privileges ───────────┼──────────┼──────────┼────────────┼────────────┼────────────┼─────────────────┼─────────────────────── postgres │ postgres │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ de_DE.utf8 │ libc │ template0 │ postgres │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ de_DE.utf8 │ libc │ =c/postgres ↵ │ │ │ │ │ │ │ postgres=CTc/postgres template1 │ postgres │ UTF8 │ de_DE.utf8 │ de_DE.utf8 │ de_DE.utf8 │ libc │ =c/postgres ↵ │ │ │ │ │ │ │ postgres=CTc/postgres (3 rows) The "ICU Locale" column is now populated, that seems wrong. The problem is in the else branch in src/bin/psql/describe.c around line 900: + if (pset.sversion >= 150000) + appendPQExpBuffer(&buf, + " d.daticulocale as \"%s\",\n" + " CASE d.datlocprovider WHEN 'c' THEN 'libc' WHEN 'i' THEN 'icu' END AS \"%s\",\ + gettext_noop("ICU Locale"), + gettext_noop("Locale Provider")); + else + appendPQExpBuffer(&buf, + " d.datcollate as \"%s\",\n" <--- there + " 'libc' AS \"%s\",\n", + gettext_noop("ICU Locale"), + gettext_noop("Locale Provider")); I'd think this should rather be + " '' as \"%s\",\n" Christoph
В списке pgsql-hackers по дате отправления:
Предыдущее
От: Christoph BergДата:
Сообщение: Re: pgsql: Add TAP test to automate the equivalent of check_guc