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
        [EMAIL PROTECTED] - [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