Re: [pgsql-es-ayuda] Valor null en retorno de función tipo setof

From: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Valor null en retorno de función tipo setof
Date: 2009-05-26 21:25:57
Message-ID: 3073cc9b0905261425u2d823f53i9978446e3fdc4a18@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/5/26 Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>:
>
> CREATE TYPE mi_tipo as(fecha date, concepto text);
>
> CREATE OR REPLACE FUNCTION mi_funcion( )
>   RETURNS setof mi_tipo  AS
> $BODY$
> declare
>     rec record;
> begin
>     select into rec null,'concepto'::text;
>     return next rec;
>
>     select into rec now()::date,'concepto'::text;
>     return next rec;
>
>     return ;
> end;
> $BODY$ LANGUAGE 'plpgsql';
>
> select * from mi_funcion();
> ERROR:  wrong record type supplied in RETURN NEXT
>

yo diria que es un bug... en todo caso la funcion funcionara si
casteas el null a date:
select into rec null::date, 'concepto'::text;

aunque tu funcion se veria mejor asi (al menos desde 8.3 en adelante):

CREATE OR REPLACE FUNCTION mi_funcion_out(out fecha date, out concepto
text) RETURNS setof record AS
$BODY$
begin
return query select null::date,'concepto'::text;
return query select now()::date,'concepto'::text;

return ;
end;
$BODY$ LANGUAGE 'plpgsql';

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Josh Berkus 2009-05-26 21:55:55 8.4 release draft in progress ...
Previous Message Julio Cesar Rodriguez Dominguez 2009-05-26 20:24:40 Valor null en retorno de función tipo setof