Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction
Date
Msg-id 20190119000827.GB2660@paquier.xyz
Whole thread Raw
In response to Re: pgsql: Restrict the use of temporary namespace in two-phase transaction  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction  (Michael Paquier <michael@paquier.xyz>)
List pgsql-hackers
On Fri, Jan 18, 2019 at 03:34:30PM -0500, Tom Lane wrote:
> Seems hard to avoid.  We could conceivably make it return "pg_temp"
> for the temp schema instead of the schema's actual name, but it's
> not very hard to think of ways whereby that would make use of the
> result fail in contexts where it previously worked.

CREATE EXTENSION is one such case.  It would not work if referring to
the synonym pg_temp, but it can work if using directly the temporary
namespace of the session.  So I feel that changing such things is
prone to break more things than to actually fix things.

> Another idea is to force creation of the temp namespace as soon as
> we see that search_path references it.  I'm not very sure exactly
> where would be a convenient place to make that happen, though.
> There are paths whereby the GUC's value will change outside a
> transaction, so we couldn't tie it directly to the GUC update.

This is documented at the top of namespace.c: "initial GUC processing
of search_path happens outside a transaction".
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Fixing findDependentObjects()'s dependency on scan order(regressions in DROP diagnostic messages)
Next
From: Tom Lane
Date:
Subject: Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)