plpython

From: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: plpython
Date: 2015-09-21 21:43:39
Message-ID: CANm+PCD1SMoyJjfunOFit07aQuEKVxBi-h=+nQwruq-K6MZEzA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas tardes, en una función python que devuelve una tabla, ¿*cómo hago
para agregar líneas al conjunto de resultados*?
Suponiendo que el resultado de una consulta es una lista de diccionarios,
intenté agregar un dicc a la lista, pero no funciona.
Mi intento fue así:
create or replace function fn_detalle(id integer)
returns table(orderid integer, category text, title text) as
$$
res = plpy.execute('select orderid,category,title from orderlines inner
join products using (prod_id)where orderid = '+str(id))
dict={"orderid":123,"categgory":"prueba","title":"Título"}
res.append(dict)
return res
$$
LANGUAGE plpython3u;

luego el llamado a la función así:
select orderid,category,title from fn_detalle(16)

y el error obtenido es:
ERROR: AttributeError: 'PLyResult' object has no attribute 'append'
CONTEXT: Traceback (most recent call last):
PL/Python function "fn_detalle", line 4, in <module>
res.append(dict)
función PL/Python «fn_detalle»

También probé utilizando contatenación de la siguietne manera:
res=res+dict
Pero obtengo otro error:
ERROR: TypeError: unsupported operand type(s) for +: 'PLyResult' and 'dict'
CONTEXT: Traceback (most recent call last):
PL/Python function "fn_detalle", line 4, in <module>
res=res+dict
función PL/Python «fn_detalle»

Responses

  • Re: plpython at 2015-09-21 23:44:17 from Guillermo E. Villanueva

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2015-09-21 23:44:17 Re: plpython
Previous Message lacesco 2015-09-18 06:04:24 Fw: important message