[HACKERS] Fix dumping pre-10 DBs by pg_dump10 if table "name" exists
От | Vitaly Burovoy |
---|---|
Тема | [HACKERS] Fix dumping pre-10 DBs by pg_dump10 if table "name" exists |
Дата | |
Msg-id | CAKOSWN=ds66zLw2SqkLTM8wbXFgDbc_OdkmT3dJfPT2mE5kipA@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: [HACKERS] Fix dumping pre-10 DBs by pg_dump10 if table "name" exists
|
Список | pgsql-hackers |
Hello, hackers! Recently my colleagues found a bug. They could not migrate from PG9.5 to PG10 due to error during pg_upgrage (the same as in the "reproduce" part below). An investigation showed there is a table "name" in the same schema where the dumped sequence is located and the PG tries to unpack the literal "bigint" as a composite type and fails. The bug was introduced by two commits, one of them changes search_path, the second one introduces the "'bigint'::name" without specifying schema: da4d1c0c15ab9afdfeee8bad9a1a9989b6bd59b5 pg_dump: Fix some schema issues when dumping sequences 2ea5b06c7a7056dca0af1610aadebe608fbcca08 Add CREATE SEQUENCE AS <data type> clause Steps to reproduce: $ psql -h pre-10 postgres Password for user postgres: psql (11devel, server 9.5.8) Type "help" for help. postgres=# create table name(id serial); CREATE TABLE postgres=# \q $ pg_dump -h pre-10 postgres pg_dump: [archiver (db)] query failed: ERROR: malformed record literal: "bigint" LINE 1: SELECT 'bigint'::name AS sequence_type, start_value, increme... ^ DETAIL: Missing left parenthesis. pg_dump: [archiver (db)] query was: SELECT 'bigint'::name AS sequence_type, start_value, increment_by, max_value, min_value, cache_value, is_cycled FROM name_id_seq I've implemented a little fix (attached), don't think there is something to be written to docs and tests. -- Best regards, Vitaly Burovoy -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: