| From: | "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com> | 
|---|---|
| To: | "Jose' Soares" <jose(at)sferacarta(dot)com>, pgsql-hackers(at)postgreSQL(dot)org | 
| Subject: | RE: [HACKERS] PL/pgSQL a great procedural language for PostgreSQL | 
| Date: | 1998-11-04 19:52:39 | 
| Message-ID: | F10BB1FAF801D111829B0060971D839F4CF2D5@cpsmail | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
It appears that when a function is called if any of the paramaters are
NULL all of the parameters are NULL.
try:
 drop function nvl(int, int);
 create function nvl(int, int) returns boolean as '
  declare
    nonullo alias as $1;
    nullo alias as $2;
  begin
   return (nonullo IS NULL) AND (nullo IS NULL);
  end;' language 'plpgsql';
 select nvl(i,0) from a;
you should get:
nvl
---
t
t
f
t
(4 rows)
> Hi all,
> 
> ----I'm trying to understand this very interesting language PL/pgSQL
> thanks to Jan Wieck,
> ----finally we can trap NULL values as in:
> 
> -------and seems it returns only constant values:
> 
> drop function nvl(integer,integer);
> DROP
> create function nvl(integer,integer) returns integer as '
> declare
>         nonullo alias for $1;
>         nullo   ALIAS FOR $2;
> begin
>         if NONULLO then
>                 return NONULLO;
>         else
>                 return NULLO;
>         end if;
> end;' language 'plpgsql';
> CREATE
> 
> select nvl(i,0) from a;
>     nvl
> -------
> 
> 
> 2232767
> 
> (4 rows)
> 
>                      Jose'
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 1998-11-04 20:01:40 | Re: [HACKERS] latest snapshot crashes backend | 
| Previous Message | Marcus Mascari | 1998-11-04 19:33:02 | PLEASE...SOMEONE COMMENT: PostgreSQL 6.4BETA not using indexes with subselects |