Skip site navigation (1) Skip section navigation (2)

Rollback with functions

From: A B <gentosaker(at)gmail(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: Rollback with functions
Date: 2010-01-22 12:40:49
Message-ID: dbbf25901001220440o79a06ab3mcee8da0f3fb405@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-novice
Greetings!

I have yet not fully understood the magic with transactions in
combination with plpgsql functions.

Assume I have a function

create function foo()
begin
       do stuff
       ....
       ....  <--- here it fails
       ....
end

and a call to the function fails (as indicated in the code), will
everything that  has been done inside the function be automatically
undone (rollbacked)?

If I had added code for exceptions, like this

create function foo()
begin
   begin
       do stuff
       ....
       ....
       ....
   exception when others then
       ....  <--- clean up code
   end;
end

Then I would need the "clean up code", or else there would be some
changes in the database caused by all the commands that were actually
run before the failure, right?

So is there then any other reason besides having a way to tell exactly
what went wrong (which I understand is a good thing ), to have the
"clean up code"? (you might of course need to have more exception
statements and add exceptions to the clean up code, and so on...

Responses

pgsql-novice by date

Next:From: Tom LaneDate: 2010-01-22 16:06:03
Subject: Re: Rollback with functions
Previous:From: James William PyeDate: 2010-01-20 21:47:50
Subject: Re: [NOVICE] Python verison for build in config.pl (Win32)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group