This looks similar to the issue I reported.  Tom has already placed a 
patch in CVS that works for me.  fetch the latest 
pgsql/src/pl/plpgsql/src/pl_exec.c file from CVS in the REL7_1_STABLE 
branch.

Going back to 7.1 also fixes this problem.

On Wed, May 09, 2001 at 08:54:03AM -0400, [EMAIL PROTECTED] wrote:
>  ([EMAIL PROTECTED]) reports a bug with a severity of 2
> The lower the number the more severe it is.
> 
> Short Description
> PostgreSQL 7.1.1: Backend crash when calling plpgsql function
> 
> Long Description
> Hi, while porting a 6.5 app to 7.1.1 i found a plpgsql function that crashes the 
>backend. Other functions work though. When i rewrite the function to be more sane, 
>the crash doesnt happen anymore. Still the backend shouldnt crash (and it didnt in 
>6.5 btw).
> 
> The whole db dump is about 28megs if anyone is interested.
> 
> In case it matters: the 7.1.1 was installed over a 7.0.3, so maybe there is some 
>plpgsql versioning conflict??
> 
> Thanks.
> 
> 
> Sample Code
> Crashing function:
> CREATE FUNCTION "new_news" (varchar ) RETURNS int4 AS '
>         DECLARE
>                 uid_p varchar;
>         BEGIN
>                 Select l.uid into uid_p from nachrichten2 n2, luser l
>                 WHERE l.uid = $1
>                 AND l.uid = n2.uid
>                 AND id > letzte_nachricht
>                 group by l.uid;
>                 IF uid_p ISNULL THEN
>                         RETURN 0;
>                 END IF;
>                 RETURN 1;
>         END;
>         ' LANGUAGE 'plpgsql';
> 
> Not crashing function:
> CREATE FUNCTION "new_news" (varchar ) RETURNS int4 AS '
>         BEGIN
>                 IF NOT EXISTS(
>                         Select l.uid from nachrichten2 n2, luser l
>                         WHERE l.uid = $1  
>                         AND l.uid = n2.uid
>                         AND id > letzte_nachricht 
>                 ) THEN
>                         RETURN 0;
>                 END IF;
>                 RETURN 1;
>         END;
>         ' LANGUAGE 'plpgsql';
> 
> 
> 
> No file was uploaded with this report
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to