Re: How do BEGIN/COMMIT/ABORT operate in a nested SPI query?

From: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "'david(at)andl(dot)org *EXTERN*'" <david(at)andl(dot)org>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: How do BEGIN/COMMIT/ABORT operate in a nested SPI query?
Date: 2016-04-18 14:35:50
Message-ID: A737B7A37273E048B164557ADEF4A58B5384109A@ntex2010i.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

david(at)andl(dot)org wrote:
> I am attempting to create a new language implementation. The language is Andl (andl.org), so the
> handler is plandl.
> This is a question about executing SPI queries from inside plandl.
>
> The documentation makes it clear that SPI allows nested queries; that in some instances it will be
> necessary to call SPI_push() and SPI_pop(), but in others this will be handled automatically. Se
> http://www.postgresql.org/docs/9.5/interactive/spi-spi-push.html.
>
> It is an important design feature of plandl to allow nested queries.
>
> My question is: where are the transaction boundaries if the inner/outer query do or do not contain
> BEGIN/ABORT/COMMIT? Do they nest, or does an inner COMMIT finish a transaction started by an outer
> BEGIN, or is it ignored?

You cannot have BEGIN or COMMIT inside a function.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jinhua Luo 2016-04-18 14:47:48 Re: what's the exact command definition in read committed isolation level?
Previous Message Adrian Klaver 2016-04-18 14:22:25 Re: Enhancement request for pg_dump