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

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction
Дата
Msg-id 20190119000827.GB2660@paquier.xyz
обсуждение исходный текст
Ответ на Re: pgsql: Restrict the use of temporary namespace in two-phase transaction  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction  (Michael Paquier <michael@paquier.xyz>)
Список 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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Fixing findDependentObjects()'s dependency on scan order(regressions in DROP diagnostic messages)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)