PL/PgSQL and NULL

From: Andrew Perrin <aperrin(at)socrates(dot)berkeley(dot)edu>
To: pgsql-sql(at)postgresql(dot)org
Subject: PL/PgSQL and NULL
Date: 2001-03-11 20:38:13
Message-ID: Pine.LNX.4.21.0103111536210.6221-100000@nujoma.perrins
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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
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(at)socrates(dot)berkeley(dot)edu - aperrin(at)igc(dot)apc(dot)org

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Peter Eisentraut 2001-03-11 21:38:10 Re: PL/PgSQL and NULL
Previous Message Peter Eisentraut 2001-03-10 23:01:44 Re: recompiling to use gnu readline?