Passing tabular data around using python functions

Поиск
Список
Период
Сортировка
От Achim Domma
Тема Passing tabular data around using python functions
Дата
Msg-id 1B77AD1A-D574-4F65-8933-EB1387D2902B@procoders.net
обсуждение исходный текст
Ответы Re: Passing tabular data around using python functions  (Jan Urbański <wulczer@wulczer.org>)
Список 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
topass 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
mightbe doing wrong. The main purpose of my sample/experiment is, to pass the results of a query to a function and to
processit there. Any hint would be very appreciated. 

cheers,
Achim

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: New statistics for WAL buffer dirty writes
Следующее
От: Gabriele Bartolini
Дата:
Сообщение: Re: [PATCH] Support for foreign keys with arrays