Thread: BUG #2946: server crashes when trying to catch exception in function

The following bug has been logged online:

Bug reference:      2946
Logged by:
Email address:      chris@icp.pl
PostgreSQL version: 8.2.0
Operating system:   Red Hat Enterprise Linux ES release 4
Description:        server crashes when trying to catch exception in
function
Details:

I have a function named test()

CREATE OR REPLACE FUNCTION test()
  RETURNS integer AS
$BODY$
DECLARE
     r INTEGER;
    y INTEGER;
    x INTEGER;
BEGIN
    BEGIN
        select into r 1;
        y := r / 0;
        EXCEPTION
        WHEN OTHERS THEN
        NULL;
    END;
    RETURN y;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;


select * from test() causes a server crash


when I change

select into r 1;  to  r:=1;

all works fine.



there can be a

select into r id FROM some_table LIMIT 1;

or

WHEN division_by_zero THEN


and the server srashes too.


Chris.

Re: BUG #2946: server crashes when trying to catch exception in function

From
Tom Lane
Date:
"" <chris@icp.pl> writes:
> PostgreSQL version: 8.2.0
> Operating system:   Red Hat Enterprise Linux ES release 4
> Description:        server crashes when trying to catch exception in
> function

I can't reproduce this using 8.2 branch tip.  I suspect it is at bottom
the same problem as bug #2817, in which case it's fixed in 8.2.1.

            regards, tom lane