Lo del cursor definitivamente es una buena opción, solo que existen algunos procedimientos almacenados que necesito desarrollarlos utilizando como valor de retorno un SETOF de tablas o tipos de datos compuestos.
Saludos.
De: Alejandro Carrillo [mailto:***@yahoo.es]
Enviado el: martes, 07 de febrero de 2012 02:15:PM
Para: Lazaro Rubén GarcÃa Martinez
CC: pgsql-es-***@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Diferencia entre RETURNS SETOF y RETURNS TABLE
Yo devolverÃa un void en la función y devolverÃa un cursor dependiendo de los datos. Esto me permitirÃa manejar diferentes resultados a lo largo de la función y manejar el problema de las columnas borradas.
Más info, ver: http://sourceforge.net/projects/genfuncpostgres/?source=directory
________________________________
De: Lazaro Rubén GarcÃa Martinez <***@vnz.uci.cu>
Para: Alvaro Herrera <***@alvh.no-ip.org>
CC: Ayuda <pgsql-es-***@postgresql.org>
Enviado: Martes 7 de febrero de 2012 13:52
Asunto: RE: [pgsql-es-ayuda] Diferencia entre RETURNS SETOF y RETURNS TABLE
Alvaro muchas gracias por tu respuesta.
Saludos.
-----Mensaje original-----
De: Alvaro Herrera [mailto:***@alvh.no-ip.org<mailto:***@alvh.no-ip.org>]
Enviado el: martes, 07 de febrero de 2012 01:44:PM
Para: Lazaro Rubè
n Garcéa Martinez
CC: Ayuda
Asunto: Re: [pgsql-es-ayuda] Diferencia entre RETURNS SETOF y RETURNS TABLE
Post by Lazaro Rubén GarcÃa MartinezHola a todos en la lista. Les escribo porque tengo un par de dudas respecto a los tipos de retornos en las funciones.
1. Existe alguna diferencia en cuanto a rendimiento entre los tipos de retorno RETURNS SETOF y RETURNS TABLE?
2. Igualmente existe alguna diferencia entre utilizar RETURN QUERY respecto a crear un bucle Loop y dentro de este ejecutar un RETURN NEXT?
Me parece que actualmente no hay ninguna diferencia. Sin embargo yo
siempre usaréa la forma que sea "mè°©s declarativa" porque es posible que
en el futuro se incluyan optimizaciones; aunque nunca he oédo decir a
nadie que estè
trabajando en optimizaciones en esta è°©rea, ni siquiera
que sean posibles.
En estos dos casos que planteas, lo mè°©s importante que debes testear es
c莞mo se comportan si tienes tablas con columnas borradas: es decir,
creas una tabla con una columna extra en la mitad, luego borras la
columna, luego creas la funci莞n. Eso debe comportarse igual que si
creas la tabla sin la columna; o bien si creas la funci莞n antes de
borrar la columna. Creo que cualquiera de esos que se comporte de modos
raros es un bug a reportar.
--
èlvaro Herrera <***@alvh.no-ip.org<mailto:***@alvh.no-ip.org>>
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-***@postgresql.org<mailto:pgsql-es-***@postgresql.org>)
Para cambiar tu suscripcié«:
http://www.postgresql.org/mailpref/pgsql-es-ayuda