Are functions automatically transactioned?

Started by Ciprian Popoviciabout 22 years ago2 messagesgeneral
Jump to latest
#1Ciprian Popovici
ciprian@zuavra.net

I need to perform a couple of queries in a function and I need them to be in
the same transaction. I understand I can't start and stop transactions from
inside the functions. But are the contents of a function placed in a
transaction automatically by the server, or do I have to "manually" control
the transaction around the call to the function?

--
Ciprian Popovici

#2Kevin Lohka
klohka@aboutfacedata.ab.ca
In reply to: Ciprian Popovici (#1)
Re: Are functions automatically transactioned?

Ciprian, I just saw this in the online docs at
http://www.postgresql.org/docs/7.4/interactive/plpgsql-structure.html

It is important not to confuse the use of BEGIN /END for grouping 
statements in PL/pgSQL with the database commands for transaction 
control. PL/pgSQL 's BEGIN /END are only for grouping; they do not 
start or end a transaction.  Functions and trigger procedures are 
always executed within a transaction established by an outer query      
--- they cannot start or commit transactions, since PostgreSQL does not 
have nested transactions.

HTH

Kevin Lohka

On Wednesday, April 7, 2004, at 03:43 PM, Ciprian Popovici wrote:

Show quoted text

But are the contents of a function placed in a
transaction automatically by the server, or do I have to "manually"
control
the transaction around the call to the function?

--
Ciprian Popovici