> 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

Responder a