Re: SET TRANSACTION in PL/pgSQL - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: SET TRANSACTION in PL/pgSQL
Date
Msg-id CAPpHfdvuFeTMZOo4PQ0P55dWaYdHkh-Me4-1JeLcP=JF26UdYw@mail.gmail.com
Whole thread Raw
In response to SET TRANSACTION in PL/pgSQL  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: SET TRANSACTION in PL/pgSQL  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
Hi!

On Wed, Feb 28, 2018 at 11:45 PM, Peter Eisentraut <peter.eisentraut@2ndquadrant.com> wrote:
Currently, you can't run SET TRANSACTION in PL/pgSQL.  A normal SQL
command run inside PL/pgSQL acquires a snapshot, but SET
TRANSACTION does not work anymore if a snapshot is set.  Here is a patch
to work around that by handling this command separately.  I have coded
this here bypassing SPI entirely.  But there is some overlap with the
no_snapshot option in the patch "PL/pgSQL nested CALL with
transactions", so maybe a better solution will arise.  This will also
inform how to tackle this in other PLs.

I didn't dig deeply into this subject.  But should we rather teach SPI to execute
utility statements without taking snapshot when not necessary.  That seems
like what executor do for client provided queries.  And that seems a bit unlogical
that SPI behaves differently.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
 

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [HACKERS] Partition-wise aggregation/grouping
Next
From: Alexander Korotkov
Date:
Subject: Re: [HACKERS] GSoC 2017: weekly progress reports (week 6)