perdón la línea raise notice current_query();era solo una prueba que no
funcionó

Guillermo Villanueva
<http://ar.linkedin.com/in/guillermovillanueva>


El 4 de junio de 2014, 11:57, Guillermo E. Villanueva <
[email protected]> escribió:

> Buenas, una función plpgsql me está dando dolores de cabeza y necesito
> debuguear lo que está haciendo.
> Es muy simple, tiene un return query con un select que le paso algunos
> parámetros.
> Concretamente la pregunta es:
> Existe alguna forma de que vea el select que ejecuta la función tal cual
> como la ejecuta?
> Desde ya muchas gracias.
> Por si quieren ver la función: El código es:
>
> CREATE OR REPLACE FUNCTION nacer.fn_embarazadas_sin_control(IN pt_periodo
> timestamp without time zone,  IN pi_cant_controles integer DEFAULT 3,
> pi_semanas integer DEFAULT 34)
>   RETURNS TABLE(pt_nombreefector text, pv_clavebeneficiario character
> varying, pv_afitipodoc character varying,
> pv_afidni character varying, pv_afiapellido character varying,
> pv_afinombre character varying, pc_aficlasedoc character,
>  pc_activo character, pv_cuieefectorasignado character varying,
> pt_fechainscripcion timestamp without time zone,
>  pi_afitipocategoria smallint, pt_fechadiagnosticoembarazo timestamp
> without time zone, pi_semanasembarazo integer,
>  pt_periodo timestamp without time zone, pi_controles bigint ) AS
> $BODY$
>
> BEGIN
>     RETURN QUERY
>     SELECT
> efe_conv.nombreefector,
>  clavebeneficiario,
> afitipodoc,
>  afidni,
> afiapellido,
>  afinombre,
> aficlasedoc,
>  activo,
> cuieefectorasignado,
>  fechainscripcion,
> afitipocategoria,
>  fechadiagnosticoembarazo,
> semanasembarazo,
>  periodo,
> count(id) cuenta
>     FROM
> nacer.historicotemp h
>  inner join nacer.efe_conv on h.cuieefectorasignado = efe_conv.cuie
> left join facturacion."trz_I_II" t on h.afidni = t.nrodoc
>     WHERE
> h.afitipocategoria = 1 AND
>  h.activo = 'S'  AND
> ((((date_part('DAY', (pt_periodo::timestamp -
> h.fechadiagnosticoembarazo::timestamp))) / 7)+ h.semanasembarazo) >
> pi_semanas) AND
>  (h.periodo = pt_periodo::timestamp)  AND
> t.fechactrl > (pt_periodo::timestamp - (pt_periodo::timestamp -
> h.fechadiagnosticoembarazo::timestamp - (h.semanasembarazo*7) * interval '1
> days'))
>     GROUP BY  1,2,3,4,5,6,7,8,9,10,11,12,13,14
>     having count(id) < pi_cant_controles;
>     raise notice current_query();
> END;
> $BODY$
>   LANGUAGE plpgsql
>
> Guillermo Villanueva
>
>

Responder a