| From: | Achim Domma <domma(at)procoders(dot)net> |
|---|---|
| To: | PG Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Passing tabular data around using python functions |
| Date: | 2012-07-30 12:33:39 |
| Message-ID: | 1B77AD1A-D574-4F65-8933-EB1387D2902B@procoders.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
I'm just trying to figure out what's possible with Postgresql and Python. One thing that's important for me, would be to pass result sets around to process them further. I have a table like this:
create table fps (
docid integer,
conceptid integer,
rank float4
)
And the following function:
create or replace function vectormatch(data fps[])
returns table(docid integer, weigth float4)
as $$
plpy.notice(type(data))
plpy.notice(data)
...
$$ language plpythonu;
I call the function like this:
select * from vectormatch(array(select (docid,conceptid,rank)::fps from fps where docid = 4205591))
and get the following output:
NOTICE: <type 'list'>
CONTEXT: PL/Python function "vectormatch"
NOTICE: ['(4205591,1,1)', '(4205591,1219,1)', ...]
CONTEXT: PL/Python function "vectormatch"
I'm quite surprised that there are strings in the list and not tuples!? I tried my best, but I have no idea what I might be doing wrong. The main purpose of my sample/experiment is, to pass the results of a query to a function and to process it there. Any hint would be very appreciated.
cheers,
Achim
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Gabriele Bartolini | 2012-07-30 15:12:38 | Re: [PATCH] Support for foreign keys with arrays |
| Previous Message | Simon Riggs | 2012-07-29 19:48:53 | Re: New statistics for WAL buffer dirty writes |