Re: My function run successfully with cursor, but can't change table

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Thomas Kellerer <spam_eater(at)gmx(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: My function run successfully with cursor, but can't change table
Date: 2013-06-10 16:48:38
Message-ID: 20130610164837.GG15368@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thomas Kellerer wrote:
> Kevin Grittner wrote on 10.06.2013 15:19:
> >It has nothing to do with the way you are using the cursor; your
> >problem is that you are causing an error by attempting to COMMIT
> >inside a function (which is not allowed). This rolls back the
> >subtransaction defined by the BEGIN/EXCEPTION block. You then
> >suppress any display of the error with the WHEN OTHERS block.
>
> I thought you could *never* use commit (or rollback) inside a function?

You cannot use transaction commands directly, but EXCEPTION blocks
use savepoints internally.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Scott Ribe 2013-06-10 18:42:12 why does this not give a syntax error?
Previous Message Thomas Kellerer 2013-06-10 16:42:35 Re: My function run successfully with cursor, but can't change table