transactions within functions - Mailing list pgsql-hackers

From Steve Holdoway
Subject transactions within functions
Date
Msg-id 40E4AB37.2040804@treshna.com
Whole thread Raw
Responses Re: transactions within functions  (Thomas Hallgren <thhal@mailblocks.com>)
List pgsql-hackers
Yes, I know it's not possible, but can anyone suggest an alternative for 
this problem?

I've written a very simple trigger-driven replication system, which 
works in stages. First the trigger generates an entry in a log table 
which is a fully formatted sql command... insert into/delete from, etc. 
Secondly, this table is transferred to the receiving database, and 
cleared down. This all works fine.

On the receiving end, there is a cron job that processes all of the 
commands in this table. However, this is written as a plpgsql function, 
so it's 'all or nothing'... ie any errors in the data mean that all 
successful updates preceeding this error are rolled back. This makes 
finding and debugging the data errors extremely difficult, but, more 
importantly, stops the update process cold.

I have tried calling a child function from the parent to perform the 
update in batches, but it still exhibits the same 'all or nothing' 
functionality.

Can anyone suggest a way that I can get around this?

Cheers,


Steve.


pgsql-hackers by date:

Previous
From: Mike Benoit
Date:
Subject: Re: Nested Transactions, Abort All
Next
From: Oliver Jowett
Date:
Subject: Re: [Re] Re: PREPARE and transactions