Re: Fix dumping pre-10 DBs by pg_dump10 if table "name" exists

Vitaly Burovoy <vitaly.burovoy@gmail.com>

From: Vitaly Burovoy <vitaly.burovoy@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2017-10-31T15:52:52Z
Lists: pgsql-hackers

Attachments

On 10/31/17, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Vitaly Burovoy <vitaly.burovoy@gmail.com> writes:
>> Recently my colleagues found a bug.
>
>> -						  "SELECT 'bigint'::name AS sequence_type, "
>> +						  "SELECT 'bigint'::pg_catalog.name AS sequence_type,
>
> Good catch, but I think we could simplify this by just omitting the cast
> altogether:
>
> -						  "SELECT 'bigint'::name AS sequence_type, "
> +						  "SELECT 'bigint' AS sequence_type,
>
> pg_dump doesn't particularly care whether the column comes back marked
> as 'name' or 'text' or 'unknown'.
>
> 			regards, tom lane

OK, just for convenience I'm attaching your version of the fix.
I left an other "NULL::name AS rolname" at
src/bin/pg_dump/pg_dump.c:2978 because can't check (remoteVersion <
90000) it and it is under strict "selectSourceSchema(fout,
"pg_catalog");" schema set.

--
Best regards,
Vitaly Burovoy

Commits

  1. In client support of v10 features, use standard schema handling.

  2. Fix underqualified cast-target type names in pg_dump and psql queries.

  3. Add CREATE SEQUENCE AS <data type> clause

  4. pg_dump: Fix some schema issues when dumping sequences