Re: Functions with Null Arguments? - Mailing list pgsql-sql

From Jesus Aneiros
Subject Re: Functions with Null Arguments?
Date
Msg-id Pine.LNX.4.10.10008151522080.23195-100000@jagua.cfg.sld.cu
Whole thread Raw
In response to Functions with Null Arguments?  (Thomas Swan <tswan@olemiss.edu>)
List pgsql-sql
I think you could use a function like the one below and use the following
select:
select id, name1, name2, prefname(foo) as pref from foo;

create function prefname(foo)
returns text as'
declare       foo alias for $1;
begin       if foo.name2 is null       then               return foo.name1;       else               return foo.name2;
    end if;
 
end;'
language 'plpgsql';

--
Jesus Aneiros Sosa
mailto:aneiros@jagua.cfg.sld.cu
http://jagua.cfg.sld.cu/~aneiros

On Tue, 15 Aug 2000, Thomas Swan wrote:

> 
> Is there anyway way to get the following to work?
> 
> table foo
> id | name1   | name2
> ---+---------+------
>   0 | Abe     | NULL
>   1 | William | Bill
> 
> 
> create function prefname(text, text)
> returns text as'
> declare
>          name1 alias for $1;
>          name2 alias for $2;
> begin
>          if name2 isnull
>          then
>                  return name1;
>          else
>                  return name2;
>          end if;
> end;'
> language 'plpgsql';
> 
> if I do
> 
> I wind up with
> 
> id | name1   | name2 | prefname
> ---+---------+-------+-----------
>   0 | Abe     | NULL  | NULL
>   1 | William | Bill  | Bill
> 
> instead of
> 
> id | name1   | name2 | prefname
> ---+---------+-------+-----------
>   0 | Abe     | NULL  | Abe
>   1 | William | Bill  | Bill
> 
> I assume this has to do with Postgres not executing the function is one of 
> the arguments is missing...
> 
> 
> -
> - Thomas Swan
> - Graduate Student  - Computer Science
> - The University of Mississippi
> -
> - "People can be categorized into two fundamental
> - groups, those that divide people into two groups
> - and those that don't."



pgsql-sql by date:

Previous
From: "Madel, Kurt"
Date:
Subject: RE: Use a rule or a transaction
Next
From: Jesus Aneiros
Date:
Subject: Re: % escape