The following bug has been logged online:
Bug reference: 3065
Logged by: Fridman Garri
Email address: garri@wanadoo.nl
PostgreSQL version: 8.2.0
Operating system: WinXP-Prof SP2
Description: Bug in stored procedure EXEPTION handling or in plpgsql
?
Details:
If I call "select message from mytest(5);" from command line or from Admin
III when a programm terminates with a Message:
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
Stored Procedure "mytest" Created Successfully before running of examples.
Examples of situation:
-- Example 1: no Crash
select message from mytest(-1);
-- Example 2: no Crash
select message from mytest(0);
-- Example 3: no Crash
select message from mytest(2);
-- Example 4: Crash !!!
select message from mytest(5);
-- Used Stored Procedure --
CREATE OR REPLACE FUNCTION mytest(IN amount "int4", OUT message "varchar")
AS
$BODY$
DECLARE
myid integer;
BEGIN
message = 'no errors';
IF amount > 0
THEN
SELECT id INTO myid FROM client WHERE id = 1;
END IF;
IF amount = 0 OR amount = 5
THEN
RAISE EXCEPTION 'error: amount = %', amount;
END IF;
EXCEPTION
WHEN OTHERS THEN
message = SQLERRM;
END;
$BODY$
LANGUAGE 'plpgsql';
ALTER FUNCTION mytest(IN amount "int4", OUT message "varchar") OWNER TO
garri
Best regards.
Garri Fridman.