From: | Franco Bruno Borghesi <fborghesi(at)gmail(dot)com> |
---|---|
To: | Rodríguez Rodríguez, Pere <prr(at)hosppal(dot)es> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: return two elements |
Date: | 2005-06-06 15:02:19 |
Message-ID: | e13c14ec05060608027595a47@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
You could use your own type, since it seems you know what values you'll be
storing there. You can create it like this:
CREATE TYPE MyResult AS (
dt_inici DATE,
dt_fi DATE
);
Then you must change your functions as follows:
CREATE OR REPLACE FUNCTION test1() RETURNS MyResult AS '
declare
r MyResult;
begin
r.dt_inici:=\'01/01/2005\'::Date;
r.dt_fi:=\'02/02/2005\'::Date;
RETURN r;
end; '
LANGUAGE 'plpgsql' VOLATILE;
CREATE OR REPLACE FUNCTION test2() RETURNS date AS '
declare
r MyResult;
begin
r:=test1();
RETURN r.dt_inici;
end; '
LANGUAGE 'plpgsql' VOLATILE;
To me, using a TYPE seems clearer than using an array in this case.
2005/6/6, "Rodríguez Rodríguez, Pere" <prr(at)hosppal(dot)es>:
>
> Hello,
>
> how can I write a function that return two or more elements?
> I try to return a record but after I don't know how to assign returned
> value to a variable. For example,
>
> CREATE OR REPLACE FUNCTION test1() RETURNS record AS '
> declare
> rec record;
> begin
> select into rec \'01/01/2005\'::Date as dt_inici, \'02/02/2005\'::Date as
> dt_fi;
> return rec;
> end; '
> LANGUAGE 'plpgsql' VOLATILE;
>
> CREATE OR REPLACE FUNCTION test2() RETURNS date AS '
> declare
> rec record;
> begin
> -- rec := test1(); << ERROR: syntax error at or near "rec"
> select into rec test1();
> return rec.dt_inici; << ERROR: record "rec" has no field "dt_inici"
> end; '
> LANGUAGE 'plpgsql' VOLATILE;
>
> Can I return an array?, and how I take returned array?
> I search postgres documentation but I don't find it
>
> Thanks in advance,
>
> pere
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-06-06 15:09:38 | Re: return two elements |
Previous Message | Tom Lane | 2005-06-06 14:56:15 | Re: pg_dump 8.0.3 failing against PostgreSQL 7.3.2 |