Thread: returning array from function or "structured error"

returning array from function or "structured error"

From
Ivan Sergio Borgonovo
Date:
I've a plpgsql function that execute some tests on data and it has to
return which test failed.

It would be handy to return an array... but an array is returned as a
serialised object and I'd like to avoid to un-serialise it from php.

Building up a temp table and returning a "setof record" or
building up a bitmap look awful.

Any elegant idea?

thx

--
Ivan Sergio Borgonovo
http://www.webthatworks.it


Re: returning array from function or "structured error"

From
Craig Ringer
Date:
Ivan Sergio Borgonovo wrote:
> Building up a temp table and returning a "setof record"
You can avoid the temp table and return `setof record'. Just `RETURN
NEXT temp_result' after each test, where temp_result is your declared
working variable. When you're done with all tests, do the final RETURN.
No need for temp tables anywhere - your PHP invokes the function as
`SELECT * FROM test_something(args)' and gets a normal resultset back,
just as if it'd performed a SELECT from a table.

Personally, though I'd:

CREATE TYPE test_result AS (  test_id INTEGER, test_outcome TEXT );

or whatever's appropriate for your use, then declare the function as
`RETURNS SETOF test_result'.

--
Craig Ringer