Re: PL/PGSQL question on transactions - Mailing list pgsql-sql

From Jie Liang
Subject Re: PL/PGSQL question on transactions
Date
Msg-id 7C760DAA511DC74B99E7D22189F786F1906E00@MAIL01.stbernard.com
Whole thread Raw
In response to PL/PGSQL question on transactions  ("Dan Schwitalla" <acadrace@hotmail.com>)
List pgsql-sql
Nope.

As my understanding, in a PL/pgSQL function, all statements are in ONE
transaction,
you do not need another pair of begin/end. If transaction failed, it abort
whole
thing anyway.



Jie Liang

-----Original Message-----
From: Dan Schwitalla [mailto:acadrace@hotmail.com]
Sent: Friday, April 12, 2002 8:50 AM
To: pgsql-sql@postgresql.org
Subject: [SQL] PL/PGSQL question on transactions


Can you imbed BEGIN; and COMMIT; statements in the body of a pl/pgsql 
function?

I am getting a parse error upon execution when I try it.

Code:

CREATE FUNCTION chitadj(integer,integer) RETURNS integer AS '
DECLARE result integer; oldamount integer;
BEGIN   BEGIN;   SELECT INTO oldamount chits FROM avatar   WHERE avatar_id = $1;
   IF oldamount IS NULL THEN     RETURN -1;   END IF;
   IF ((oldamount < abs($2)) AND ($2 < 0)) THEN     RETURN -2;   END IF;
   result := oldamount + $2;   RETURN result;   COMMIT;
END;
' language 'plpgsql';



-------------------------
Dan

_________________________________________________________________
Join the world's largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org


pgsql-sql by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Functions in Postgres
Next
From: Tom Lane
Date:
Subject: Re: Functions in Postgres