BUG #16679: Incorrect encoding of database name

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #16679: Incorrect encoding of database name
Дата
Msg-id 16679-c5176aa79b558094@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #16679: Incorrect encoding of database name  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16679
Logged by:          Alexander Kass
Email address:      alexander.kass@jetbrains.com
PostgreSQL version: 13.0
Operating system:   Linux
Description:

Steps to reproduce:
1. Create database with name & encoding that won't binary match utf8 encoded
name, e.g:
> create database Français
    LC_COLLATE 'fr_FR@euro' LC_CTYPE 'fr_FR@euro'
    encoding 'latin9' template template0;
2. Now check pg_database from different databases:
aurora=> \connect français
français=> select * from pg_database;
  datname  | datdba | encoding | datcollate  |  datctype   | datistemplate |
datallowconn | datconnlimit | datlastsysoid | datfrozenxid | datminmxid |
dattablespace |               datacl

-----------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+------------+---------------+-------------------------------------
 postgres  |  16399 |        6 | en_US.UTF-8 | en_US.UTF-8 | f             |
t            |           -1 |         13933 |          549 |          1 |
      1663 |
 français |  16399 |       16 | fr_FR@euro  | fr_FR@euro  | f             |
t            |           -1 |         13933 |          549 |          1 |
      1663 |
..........

français=> \connect postgres
postgres=> select * from pg_database;
  datname  | datdba | encoding | datcollate  |  datctype   | datistemplate |
datallowconn | datconnlimit | datlastsysoid | datfrozenxid | datminmxid |
dattablespace |               datacl

-----------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+------------+---------------+-------------------------------------
 postgres  |  16399 |        6 | en_US.UTF-8 | en_US.UTF-8 | f             |
t            |           -1 |         13933 |          549 |          1 |
      1663 |
 français  |  16399 |       16 | fr_FR@euro  | fr_FR@euro  | f             |
t            |           -1 |         13933 |          549 |          1 |
      1663 |
...........

See incorrectly encoded database name. The same applies for
current_database().
If I do encode(datname::bytea, 'hex') result is matches. It looks like
automatic conversion latin9 -> utf8 is done for français database, but name
is already utf8.
Checked on PG13 & aws aurora


В списке pgsql-bugs по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: invalid alloc size error possible in shm_mq
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: BUG #16676: SELECT ... FETCH FIRST ROW WITH TIES FOR UPDATE SKIP LOCKED locks rows it doesn't return