Thread: Return type for procedure

Return type for procedure

From
"ben sewell"
Date:
Hi,
I'm writing a procedure, where I'm trying to save writing other procedures by combining all of them in one procedure. All procdures take the same input parameters so I would imagine this is possible.
 
What I was wondering was if it was possible for me to return different user defined types. To try to illustrate what I mean, here's some example code which I think is allowed:
 
if id="1" then
  processing code
  return usertype3;
elseif id="2" then
  processing code 
  return usertype3;
elseif id="3" then
  processing code
  return usertype3;
endif;
 
Is this possible?
 
Cheers,
Ben

Re: Return type for procedure

From
"Jaime Casanova"
Date:
>
> What I was wondering was if it was possible for me to return different user
> defined types. To try to illustrate what I mean, here's some example code
> which I think is allowed:
>

yes.

just create your functions as:

CREATE FUNCTION test() RETURNS record as $$
$$ language 'your-language';

then execute the function as

select * from test() as (field1 type1, field2 type2...);

--
regards,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
                                       Richard Cook

Re: Return type for procedure

From
"ben sewell"
Date:
Hi Jaime,
thanks for your reply.
 
Could anyone check if this is correct for what I'm trying to do
 

CREATE FUNCTION test(id integer,name varchar,date_start date date_end date) RETURNS record as $$
$$ language 'your-language';
 
if id="1" then
select * from tblemployee;
elseif id="2" then
select client_name,address
from tblclients;
endif

and then execute the function as

select * from test() as (report1, report2)
 
would this work? This is just example code for select statements which are far much longer
 
Cheers,
Ben


 
On 8/16/06, Jaime Casanova <systemguards@gmail.com> wrote:
>
> What I was wondering was if it was possible for me to return different user
> defined types. To try to illustrate what I mean, here's some example code
> which I think is allowed:
>

yes.

just create your functions as:

CREATE FUNCTION test() RETURNS record as $$
$$ language 'your-language';

then execute the function as

select * from test() as (field1 type1, field2 type2...);

--
regards,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
                                      Richard Cook