public inbox for [email protected]  
help / color / mirror / Atom feed
From: Jeff Davis <[email protected]>
To: Andrew Dunstan <[email protected]>
To: David G. Johnston <[email protected]>
To: Japin Li <[email protected]>
Cc: Zsolt Parragi <[email protected]>
Cc: Euler Taveira <[email protected]>
Cc: Álvaro Herrera <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: pg_get__*_ddl consolidation
Date: Fri, 10 Apr 2026 13:03:36 -0700
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<CAN4CZFNYM5jNA_gLu9miAXg_7c8Z2zf-ePc+0rzidAV3CBs=cw@mail.gmail.com>
	<[email protected]>
	<SY7PR01MB10921A6E1E08A48F3426FE529B651A@SY7PR01MB10921.ausprd01.prod.outlook.com>
	<CAKFQuwYcppypeGBwa7ZbDAfoUXSv+kLhJuAXsdwBmKrvy8wDFw@mail.gmail.com>
	<[email protected]>
	<[email protected]>

On Sun, 2026-04-05 at 11:06 -0400, Andrew Dunstan wrote:
> Pushed. I have moved the remaining get_*_ddl items to PG20-1

The line:

  role_settings = DatumGetArrayTypeP(datum);

should be DatumGetArrayTypePCopy(), because it's being pfree()d later.
The existing code will sometimes make a copy and sometimes not, e.g.:

  -- settings are contrived to make the datum inline
  CREATE USER u1;
  ALTER ROLE u1 SET search_path = 'public, pg_catalog, pg_temp';
  ALTER ROLE u1 SET work_mem='64MB';
  ALTER ROLE u1 SET statement_timeout='30s';
  ALTER ROLE u1 SET lock_timeout='10s';
  ALTER ROLE u1 SET idle_in_transaction_session_timeout = '60s';
  SELECT pg_get_role_ddl('u1');
  ERROR:  pfree called with invalid pointer 0x7986dd0c7cc8 (header
0x0000400600000000)

Also, it looks like the scan key in pg_get_role_ddl_internal() uses
only the second attribute of the index, which might be worth a comment.

Regards,
	Jeff Davis






view thread (31+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: pg_get__*_ddl consolidation
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox