Re: Re[2]: AW: [HACKERS] isnull() or is it?t
| От | jwieck@debis.com (Jan Wieck) | 
|---|---|
| Тема | Re: Re[2]: AW: [HACKERS] isnull() or is it?t | 
| Дата | |
| Msg-id | m0zoCfZ-000EBQC@orion.SAPserv.Hamburg.dsh.de обсуждение исходный текст | 
| Ответ на | Re[2]: AW: [HACKERS] isnull() or is it?t (Sferacarta Software <sferac@bo.nettuno.it>) | 
| Список | pgsql-hackers | 
>
> If it is interesting to someone, we can partially emulate COALESCE
> right now as:
>
> create function coalesce(integer) returns integer as
> 'declare
>         nonullo alias for $1;
> begin
>      if nonullo then
>         return nonullo;
>      else
>         return 0;
>      end if;
>  end;
> ' language 'plpgsql';
> CREATE
    Pardon,  but  you  still  misuse the fact, that PL/pgSQL's IF
    expression is implicitly casted into a boolean.  That's  only
    possible for integer values.
    Please use
        IF nonullo ISNULL THEN
            RETURN 0;
        ELSE
            RETURN nonullo;
        END IF;
    instead,  because this would work for other types (like text,
    varchar etc.)  too.
    Since PL functions can be overloaded (like SQL functions), it
    would  be possible, but currently not that performant :-(, to
    create such a function for all types required.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #
		
	В списке pgsql-hackers по дате отправления: