[HACKERS] Command execution

2008-07-03 Thread Aaron Spiteri

Hi guys,

I have been following the mailing list and reading the source code  
for a little while,  and was wandering if someone could fill in the  
gaps for me.  Does PostgresQL view updates and inserts performed in a  
function as part of the same transaction or are they considered  
separate transactions:


For instance say I had a function name foo and ran the command:

SELECT foo();

Inside foo there was a INSERT and UPDATE, and the INSERT failed but  
the UPDATE succeeded would the UPDATE be rolled back?


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Command execution

2008-07-03 Thread A. Kretschmer
am  Thu, dem 03.07.2008, um 23:15:33 +1000 mailte Aaron Spiteri folgendes:
 Hi guys,
 
 I have been following the mailing list and reading the source code  
 for a little while,  and was wandering if someone could fill in the  
 gaps for me.  Does PostgresQL view updates and inserts performed in a  
 function as part of the same transaction or are they considered  
 separate transactions:
 
 For instance say I had a function name foo and ran the command:
 
 SELECT foo();
 
 Inside foo there was a INSERT and UPDATE, and the INSERT failed but  
 the UPDATE succeeded would the UPDATE be rolled back?

The whole function is an own transaction. Fails the INSERT, the complete
function foo failed. In other words; yes, also the UPDATE rolled back.


Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: - Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Command execution

2008-07-03 Thread Csaba Nagy
On Thu, 2008-07-03 at 23:15 +1000, Aaron Spiteri wrote:
 Inside foo there was a INSERT and UPDATE, and the INSERT failed but  
 the UPDATE succeeded would the UPDATE be rolled back?

Just to add to the other answers, if the INSERT is before the UPDATE in
the function, the function execution stops when the INSERT fails, and so
the UPDATE will never be executed in the first place...

Cheers,
Csaba.



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Command execution

2008-07-03 Thread Aaron Spiteri

Thanks for pointers, that has cleared a few things up for me.

On 03/07/2008, at 11:27 PM, Csaba Nagy wrote:


On Thu, 2008-07-03 at 23:15 +1000, Aaron Spiteri wrote:

Inside foo there was a INSERT and UPDATE, and the INSERT failed but
the UPDATE succeeded would the UPDATE be rolled back?


Just to add to the other answers, if the INSERT is before the  
UPDATE in
the function, the function execution stops when the INSERT fails,  
and so

the UPDATE will never be executed in the first place...

Cheers,
Csaba.





--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers