> Tengo una función que adentro tiene una comprobación de con un FOUND.
> El asunto es que si coloco la consulta en una variable y luego lo utilizo en
> el
> PERFORM, el FOUND siempre queda en true.
>
> " ...
> sql = ' numero, count(*) from tabla group by numero having count(*)>1';
> PERFORM sql;
>
> IF FOUND THEN
> r := (false,'Hay repetidos',sql)::control_type;
> RETURN NEXT r;
> END IF;
> ..."
>
> Ahora bien, el FOUND quedá bien si lo coloco de esta manera:
>
> "...
> sql = ' numero, count(*) from tabla group by numero having count(*)>1';
> PERFORM numero, count(*) from tabla group by numero having count(*)>1;
>
> IF FOUND THEN
> r := (false,'Hay repetidos',sql)::control_type;
> RETURN NEXT r;
> END IF;
> ..."
>
> Es algo que no haya tenido en cuenta?
>
>
Me había olvidado. Las versiones en las que probé esto son 8.3.8 y 8.4.2
Estuve mirando el código en pl_exec.c ya que creia en primera instancia, que
podía haber algún comentario en el código respecto del comportamiento interno
del PERFORM + FOUND.
--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar
Join: http://www.thevenusproject.com/
--
TIP 5: �Has le�do nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html