Re: BUG #14247: COMMENT is restored on wrong database

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: BUG #14247: COMMENT is restored on wrong database
Дата
Msg-id CAKFQuwZxWHr6OgMk39DD1Q-V1NgEgkg_dDtz=UthNcS-7A3XOw@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #14247: COMMENT is restored on wrong database  (pgerber@tocco.ch)
Список pgsql-bugs
On Wed, Jul 13, 2016 at 9:21 AM, <pgerber@tocco.ch> wrote:

> The following bug has been logged on the website:
>
> Bug reference:      14247
> Logged by:          Peter Gerber
> Email address:      pgerber@tocco.ch
> PostgreSQL version: 9.5.3
> Operating system:   Linux
> Description:
>
> Comments on a databases are restored on the database named the same the
> dump
> was made from. For instance, if a dump is made from a database called
> 'source_db' and restored into 'target_db' the comment is restored on the
> wrong database, 'source_db'.
>
> How to reproduce:
> 1: CREATE DATABASE source_db;
> 2. COMMENT ON DATABASE source_db IS 'test';
> 3. pg_dump -Fc -d source_db -f dump;
> 4. COMMENT ON DATABASE source_db IS null;
> 5. CREATE DATABASE target_db;
> 6. pg_restore -d target_db dump
> 7. SELECT datname, description FROM pg_shdescription
>      JOIN pg_database ON objoid =3D pg_database.oid
>      WHERE datname in ('source_db', 'target_db');
>   datname  | description
> -----------+-------------
>  source_db | test
> (1 row)
>
>
> Also, if pg_dump is done without -Fc it contains this line:
> COMMENT ON DATABASE dbrefactoring_new_210 IS 'test';
>

=E2=80=8BI'd posit that attempting to issue the COMMENT command without the=
 user
specifying "pg_restore --create" =E2=80=8Bis the bug.  pg_restore shouldn't=
 go
about altering globals that it did not itself create.  If --create is
specified you don't get to rename the database and the OP's problem cannot
happen.

pg_dump plain text should adhere to the same rule - the COMMENT command
should be omitted if pg_dump is not provided a "--create" flag.

Thus, if you want to rename the database it is your responsibility to
provide a valid comment for it.  There is no way for pg_dump/pg_restore to
rename the database during the restoration procedure and adding logic to
them to detect when the user intended a rename and change the scripts
accordingly doesn't seem wise.

David J.

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

Предыдущее
От: pgerber@tocco.ch
Дата:
Сообщение: BUG #14247: COMMENT is restored on wrong database
Следующее
От: nikithareddy479@gmail.com
Дата:
Сообщение: BUG #14248: pgAdmin III(Version 1.22) crashes when disconnected