Re: pgsql: Fix pg_dump assertion failure when dumping pg_catalog.

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Jeff Davis <jdavis(at)postgresql(dot)org>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Fix pg_dump assertion failure when dumping pg_catalog.
Date: 2023-09-04 12:58:45
Message-ID: 2a31d8ba-38e9-6335-8ba6-9d042c63473b@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On 22.08.23 22:08, Jeff Davis wrote:
> Fix pg_dump assertion failure when dumping pg_catalog.
>
> Commit 396d348b04 did not account for the default collation.
>
> Also, use pg_log_warning() instead of Assert().
>
> Discussion: https://postgr.es/m/ce071503fee88334aa70f360e6e4ea14d48305ee.camel%40j-davis.com
> Reviewed-by: Michael Paquier
> Backpatch-through: 15

I have another question about this patch. The original issue was that
it would trigger an Assert() inside pg_dump when some columns in
pg_collation were null that were not expected. This patch now contains
code like

appendPQExpBufferStr(q, ", lc_collate = ");
- appendStringLiteralAH(q, collcollate, fout);
+ appendStringLiteralAH(q, collcollate ? collcollate : "", fout);
appendPQExpBufferStr(q, ", lc_ctype = ");
- appendStringLiteralAH(q, collctype, fout);
+ appendStringLiteralAH(q, collctype ? collctype : "", fout);

which would produce pg_dump output like

CREATE COLLATION ... (provider = libc, lc_collate = , lc_ctype = );

which is not valid syntax.

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Kapila 2023-09-04 13:05:14 Re: pgsql: Allow tailoring of ICU locales with custom rules
Previous Message Michael Paquier 2023-09-04 05:56:42 pgsql: Fix out-of-bound read in gtsvector_picksplit()