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:
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