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

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-01-22T04:47:05Z
Lists: pgsql-hackers
On Sat, Jan 19, 2019 at 5:05 AM Robert Haas <robertmhaas@gmail.com> wrote:
>
> On Thu, Jan 17, 2019 at 8:08 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > > Anyway, it seems to me that this is pointing out to another issue:
> > > current_schema() can trigger a namespace creation, hence shouldn't we
> > > mark it as PARALLEL UNSAFE and make sure that we never run into this
> > > problem?
> >
> > That seems a bit annoying, but maybe we have little choice?
>
> The only other option I see is to make current_schema() not trigger a
> namespace creation.
>

Or can we make the test script set force_parallel_mode = off? Since
the failure case is a very rare in real world I think that it might be
better to change the test scripts rather than changing properly of
current_schema().

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


Commits

  1. Adjust error message

  2. Enforce non-parallel plan when calling current_schema() in newly-added test

  3. Restrict the use of temporary namespace in two-phase transactions