Re: PL/PgSQL and NULL - Mailing list pgsql-sql

From Jan Wieck
Subject Re: PL/PgSQL and NULL
Date
Msg-id 200103151502.KAA03405@jupiter.jw.home
Whole thread Raw
In response to Re: PL/PgSQL and NULL  (Jie Liang <jliang@ipinc.com>)
List pgsql-sql
Jie Liang wrote:
>
> I think that is a bug in plpgsql,
> when passing a NULL into a plpgsql defined function, it treats
> other arguments as NULL also, you can use raise notice in
> your function to watch this buggy thing(see following).
   You're  blaming  the wrong code for it. It's an insufficience   in the pre v7.1 function manager, not  a  bug  in
PL/pgSQL's  handler.
 


Jan

>
> Jie LIANG
>
> St. Bernard Software
>
> 10350 Science Center Drive
> Suite 100, San Diego, CA 92121
> Office:(858)320-4873
>
> jliang@ipinc.com
> www.stbernard.com
> www.ipinc.com
>
> On Sun, 11 Mar 2001, Andrew Perrin wrote:
>
> > Greetings-
> >
> > I'm trying to write what should be a simple function that returns the
> > minimim of two integers. The complication is that when one of the two
> > integers is NULL, it should return the other; and when both are NULL, it
> > should return NULL.  Here's what I've written:
> >
> > CREATE FUNCTION min(int4, int4)
> > RETURNS int4
> > AS 'BEGIN
>       raise notice ''arg1 is % arg2 is %'',$1,$2; -- debugging
> >     IF $1 ISNULL
> >     THEN
> >  RETURN $2;
> >     ELSE
> >   IF $2 ISNULL
> >   THEN
> >       RETURN $1;
> >   ELSE
> >        IF $1 > $2
> >        THEN
> >       RETURN $2;
> >        ELSE
> >          RETURN $1;
> >        END IF;
> >   END IF;
> >     END IF;
> >     END;'
> > LANGUAGE 'plpgsql';
> >
> > and here's what I get:
> >
> > fgdata=#  select min(10, NULL);
> >  min
> > -----
> >
> > (1 row)
> >
> > so it looks like, for whatever reason, it's returning NULL when it should
> > be returning 10. Can anyone offer advice?
> >
> > Thanks.
> >
> > ----------------------------------------------------------------------
> > Andrew J Perrin - Ph.D. Candidate, UC Berkeley, Dept. of Sociology
> > Chapel Hill, North Carolina, USA - http://demog.berkeley.edu/~aperrin
> >         aperrin@socrates.berkeley.edu - aperrin@igc.apc.org
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



pgsql-sql by date:

Previous
From: Michael Davis
Date:
Subject: RE: Help with UPDATE syntax
Next
From: Josh Berkus
Date:
Subject: Re: Some questions about PLpgSql