Re: PL/PGSQL question on transactions

From: Jie Liang <jie(at)stbernard(dot)com>
To: 'Dan Schwitalla' <acadrace(at)hotmail(dot)com>, pgsql-sql(at)postgresql(dot)org
Subject: Re: PL/PGSQL question on transactions
Date: 2002-04-12 16:34:29
Message-ID: 7C760DAA511DC74B99E7D22189F786F1906E00@MAIL01.stbernard.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)hotmail(dot)com]
Sent: Friday, April 12, 2002 8:50 AM
To: pgsql-sql(at)postgresql(dot)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

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2002-04-12 17:11:09 Re: Functions in Postgres
Previous Message Peter Eisentraut 2002-04-12 16:24:33 Re: Functions in Postgres