Thread: use SAVEPOINT function
Greetings, I'd like to know is it possible to use "SAVEPOINT" in a function? In the following example, I got an error when calling this function: CREATE OR REPLACE function test() returns trigger as $test$ BEGIN SAVEPOINT savepoint1; ... ... COMMIT; RETURN NEW; EXCEPTION when RAISE_EXCEPTION THEN ROLLBACK TO SAVEPOINT savepoint1; END; $test$ language plpgsql; Thanks a lot, Emi
The error msg is: SPI_execute_plan failed executing query "SAVEPOINT savepoint1": SPI_ERROR_TRANSACTION > > I'd like to know is it possible to use "SAVEPOINT" in a function? In > the following example, I got an error when calling this function: > > CREATE OR REPLACE function test() returns trigger as $test$ > BEGIN > SAVEPOINT savepoint1; > ... ... > COMMIT; > RETURN NEW; > EXCEPTION > when RAISE_EXCEPTION THEN > ROLLBACK TO SAVEPOINT savepoint1; > END; > $test$ language plpgsql; > > Thanks a lot, > Emi >
On Thu, Apr 14, 2005 at 04:10:18PM -0400, Ying Lu wrote: > I'd like to know is it possible to use "SAVEPOINT" in a function? In the > following example, I got an error when calling this function: No; exceptions in plpgsql are implemented internally using savepoints, so the function will automatically roll back the whole "begin ... end" block (remember you can nest blocks if needed.) -- Alvaro Herrera (<alvherre[@]dcc.uchile.cl>) "Java is clearly an example of a money oriented programming" (A. Stepanov)