Return SETOF or array from pl/python - Mailing list pgsql-general

From Peter Fein
Subject Return SETOF or array from pl/python
Date
Msg-id 42D7E147.6060305@pobox.com
Whole thread Raw
Responses Re: Return SETOF or array from pl/python
List pgsql-general
Is it possible to return a SETOF text or a text[] from pl/python?

I've got the following test cases:

CREATE OR REPLACE FUNCTION arf()
RETURNS text[] LANGUAGE plpythonu AS
$$return ["one", "two", "three"]$$;

SELECT arf();

ERROR:  missing dimension value

CREATE OR REPLACE FUNCTION arf2()
RETURNS text[] LANGUAGE plpythonu AS
$$return '{"one", "two", "three"}'$$;

SELECT arf2();

       arf2
-----------------
 {one,two,three}
(1 row)

CREATE OR REPLACE FUNCTION srf()
RETURNS SETOF text LANGUAGE plpythonu AS
$$return ["one", "two", "three"]$$;

SELECT * FROM srf();

            srf
-------------------------
 ['one', 'two', 'three']
(1 row)

SELECT srf();
Never returns.

I can obviously use something like arf2 (manually stringifying w/i
python) but this seems ugly.  I'd really prefer to return a set, rather
than an array.

--
Peter Fein                 pfein@pobox.com                 773-575-0694

Basically, if you're not a utopianist, you're a schmuck. -J. Feldman

pgsql-general by date:

Previous
From: Scott Marlowe
Date:
Subject: Re: How to create unique constraint on NULL columns
Next
From: Alvaro Herrera
Date:
Subject: Re: CVS - psql segfault