Re: ayuda sobre SRF

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Ernesto Herrera <eherrera(at)estudiantes(dot)uci(dot)cu>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ayuda sobre SRF
Date: 2010-06-10 04:42:56
Message-ID: AANLkTilx8Sx2LUg0y1GxcFcu0zrFPNJeglQLamBkyVR5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2010/6/9 Ernesto Herrera <eherrera(at)estudiantes(dot)uci(dot)cu>:
> Hola!
> Tengo una función en PL/pgSQL que en su definición me construye una tabla
> temporal usando sql dinámico ya que sus atributos son variables y dependen
> de los parámetros  de entrada, la función me retorna void y para ver los
> resultados tengo que ejecutar la función y luego seleccionar de la tabla
> temporal.
> No existe forma que una función me devuelva un conjunto sin tener que
> especificar los atributos al llamarla??
> saludos.
>

no creo que tenga mucho sentido tener una funcion que sea
completamente ignorante en cuanto al resultado que va a regresar, me
parece un mal diseño y una pesima idea!

una vez dicho eso... podrias devolver todas las columnas en texto
concatenado usando algun caracter de separacion (digamos '|') y luego
haces algo como:

select cols[1], cols[2]
from (select string_to_array(f1, '|') as cols from f1()) as foo;

donde f1() es la funcion que devuleve registros tipo text, que luego
son convertidos a un arreglo y solo te preocupas de usar los campos
indicando el indice... asumo que no pretendes que la aplicacion
tambien sea ignorante en cuanto a lo que espera de la funcion en un
momento dado verdad?

deficiencia, regresara todos los campos como texto

otra alternativa es al momento de llamar a la funcion indicar que
esperas que retorne:
select * from f1() as (col1 int, col2 text);

pero eso es lo que por algun motivo crees que no quieres

--
Jaime Casanova www.2ndQuadrant.com
Soporte y capacitación de PostgreSQL

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo Villanueva 2010-06-10 11:17:37 Re: ayuda TRIGGER
Previous Message Julio Cesar Rodriguez Dominguez 2010-06-10 04:30:09 Re: ayuda sobre SRF