2009/5/26 Julio Cesar Rodriguez Dominguez <jura...@gmail.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
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a