RE: [HACKERS] PL/pgSQL a great procedural language for PostgreSQL - Mailing list pgsql-hackers

From Jackson, DeJuan
Subject RE: [HACKERS] PL/pgSQL a great procedural language for PostgreSQL
Date
Msg-id F10BB1FAF801D111829B0060971D839F4CF2D5@cpsmail
Whole thread Raw
Responses Re: [HACKERS] PL/pgSQL a great procedural language for PostgreSQL
List 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;
nulloalias 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'


pgsql-hackers by date:

Previous
From: Marcus Mascari
Date:
Subject: PLEASE...SOMEONE COMMENT: PostgreSQL 6.4BETA not using indexes with subselects
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] latest snapshot crashes backend