Re: 9.6, background worker processes, and PL/Java - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: 9.6, background worker processes, and PL/Java
Date
Msg-id CAA4eK1+LCxMAp5E5ADzLUrrOTKf+aii2gDPvfEwUxnmCkai8Xw@mail.gmail.com
Whole thread Raw
In response to Re: 9.6, background worker processes, and PL/Java  (Chapman Flack <chap@anastigmatix.net>)
List pgsql-hackers
On Wed, Oct 26, 2016 at 7:39 AM, Chapman Flack <chap@anastigmatix.net> wrote:
> On 10/25/16 18:56, Chapman Flack wrote:
>
>> If pooled, and tied to the backend that started them, do they need
>> to do anything special to detect when the leader has executed
>> SET ROLE or SET SESSION AUTHORIZATION?
>
> Let me guess ... such information is *not* synchronized across workers,
> and that'd be why the manual says "functions must be marked PARALLEL
> RESTRICTED if they access ... client connection state ..."?
>

All the GUCs are synchronised between leader and worker backends.

> That's probably a resounding 'no' for declaring any PL/Java function
> SAFE, then.
>
> And if changing "the transaction state even temporarily (e.g. a PL/pgsql
> function which establishes an EXCEPTION block to catch errors)" is enough
> to require UNSAFE, then it may be that RESTRICTED is off limits too, as
> there are places PL/Java does that internally.
>
> I take it that example refers not to just any use of PG_TRY/PG_CATCH,
> but only to those uses where an internal subtransaction is used to
> allow execution to continue?
>
> If a person writes a function in some language (SQL, for example),
> declares it PARALLEL SAFE but is lying because it calls another
> function (in Java, say) that is PARALLEL UNSAFE or RESTRICTED,
> does PostgreSQL detect or prevent that, or is it just considered
> an unfortunate mistake by the goofball who declared the first
> function safe?
>

No, we don't detect that explicitly before initiating parallelism,
however there are checks in code which will report error if you do
something unsafe in worker, example perform any write operation in
worker.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: [PATCH] pgpassfile connection option
Next
From: Andres Freund
Date:
Subject: Re: 9.6 TAP tests and extensions