RV: [Pgsql-ayuda] Crear funcion.

Leonardo Boet Sánchez boet@gtm.tel.etecsa.cu
Fri, 30 May 2003 12:15:54 -0400


Buenos dias.
Entre las opciones que se le debe pasar a la funcion, está el tipo que retorna y no encuentro esa lista de valores por ningun lado, inclusive con lo que me envió Alvaro Herrera la creé, pero por favor esa palabra record no la encuentro en ninguna ayuda y los tipos tampoco, hice busqueda en google, los manuales no dicen nada concreto al respecto. Quisiera saber si tienen otro manual de desarrollador que tenga todos o casi todos estos elementos.

Boet

-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre@dcc.uchile.cl]
Enviado el: Thursday, May 29, 2003 10:07 PM
Para: Leonardo Boet Sánchez
CC: pgsql-ayuda@tlali.iztacala.unam.mx
Asunto: Re: [Pgsql-ayuda] Crear funcion.


On Thu, May 29, 2003 at 06:44:33PM -0400, Leonardo Boet Sánchez wrote:

> create function test1() returns test1
> as 'select frase from frases'
> languaje 'sql' ;
> 
> Me da el siguiente error Type test1 does not exist
> 
> de la siguiente forma: 
> 
> create function test1() returns setof test1
> as 'select frase from frases'
> languaje 'sql' ;

test1 debe ser un tipo  que exista.  Si quieres retornar algo que en
tiempo de creacion no existe como tipo (o crearlo en demanda), usa SETOF
RECORD, y llamas al SELECT con la definición del tipo.  Mira la
documentación sobre SETOF.  No es trivial, pero no es ciencia de
cohetes.

http://developer.postgresql.org/docs/postgres/xfunc-sql.html

Ojo, que para cada tabla existe un tipo del mismo nombre.  Seguramente
tu ejemplo funcionaria asi:

create function test1() returns setof frases as 
'select frase from frases' language sql;

select * from test1();

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Voy a acabar con todos los humanos / con los humanos yo acabaré
voy a acabar con todos / con todos los humanos acabaré (Bender)