From: | Lazáro Rubén García Martínez <lgarciam(at)vnz(dot)uci(dot)cu> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Duda entre refcursor y record |
Date: | 2012-07-05 13:47:46 |
Message-ID: | 294D3D02D5E18D42827B2ECFEADEB688472A44BB51@mx-interno.vnz.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro muchas gracias por tu respusta, ahora te pregunto, si en vez de retornar los valores de la consulta utilizando un For Loop, lo hago utilizando un RETURN QUERY obtendría alguna ventaja, o sucedería lo mismo que si realizo un For Loop, me refiero a si con esta otra via también hay que crear un tuplestore con el resultado. (El tuplestore es la variable que se recorre en el ciclo no??)
La consulta quedaría de esta forma:
CREATE OR REPLACE FUNCTION public.fun_listar_escuela (
out id_escuela integer,
out nombre varchar,
out escuela_relacionada integer
)
RETURNS SETOF record AS
$body$
DECLARE
tmp record;
BEGIN
RETURN QUERY SELECT escuela.id_escuela, escuela.nombre, escuela.escuela_relacionada
FROM escuela;
END;
$body$
LANGUAGE 'plpgsql';
Atento a tus recomendaciones.
Saludos.
________________________________________
From: Alvaro Herrera [alvherre(at)alvh(dot)no-ip(dot)org]
Sent: Wednesday, July 04, 2012 11:31 PM
To: Lazáro Rubén García Martínez
Cc: Ayuda
Subject: Re: [pgsql-es-ayuda] Duda entre refcursor y record
Excerpts from lgarciam's message of mié jul 04 19:24:14 -0400 2012:
> Hola a todos en la lista, necesito desarrollar un conjunto de funciones que serán ejecutadas desde PHP. Mi duda es la siguiente.
>
> Para retornar un conjunto de datos, que debería ser más óptimo, utilizar un refcursor, o utilizar variables de salida (OUT) y retornar el resultado dentro de un For Loop?
Depende de si quien llama a la función leerá todo el resultado o sólo
una parte. Si es sólo una parte, el refcursor gana porque no ejecuta
toda la consulta sino sólo la parte que es leída. Si lo lee todo, igual
gana el refcursor, porque de la otra manera hay que crear un tuplestore
con el resultado. Pero desde el punto de vista de la mantenabilidad
(¿? sorry, es tarde), la variables OUT son mucho más claras en el código
de la aplicación que leer desde un cursor.
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2012-07-05 14:42:28 | RE: Duda entre refcursor y record |
Previous Message | Alvaro Herrera | 2012-07-05 04:01:59 | Re: Duda entre refcursor y record |