El mié, 09-02-2011 a las 14:20 -0300, Alvaro Herrera escribió:
> Excerpts from Gerardo Herzig's message of jue feb 03 15:45:38 -0300 2011:
> > Hola chicos. Estoy teniendo problemas con la lentitud de una funcion.
> > Estoy usando la funcion _xxfunction() dentro de un subselect, entonces
> > uso su forma select (_xxfunction()).* (en lugar de select * from...,
> > sino dentro del subquery me genera error sintactico), y el tema es que
> > tarda mucho mas un modo que el otro:
> > 
> > test=# SELECT (_xxfunction(123)).* ;
> > (4 filas)
> > Duración: 1069,465 ms
> > 
> > 
> > test=# SELECT * from _xxfunction(123) ;
> > (4 filas)
> > Duración: 228,699 ms
> > 
> > Alguna idea de porque de esto?  Alguna alternativa?
> > Gracias!
> 
> Si mal no recuerdo, al hacer ().* se ejecuta la función tantas veces
> como columnas haya en el resultado.  Quizás funcione algo como
> 
> select foo.* from (select * from _xxfunction(123) offset 0) as foo;
> 

Gracias Alvaro, si, tenes razon, pasa que no exprese bien mi problema,
que es ligeramente distinto (creo)

Yo tengo que lograr algo como 

select * from _xxfunction(codigo) from (select codigo from tabla)
Y esto tiene un error de sintaxis.

Si uso la forma select (_xxfunction(codigo)).* from (select codigo from
tabla)
elimino el error sintactico, pero como bien decis, llamo muchas veces a
la funcion, y se torna demasiado lento.

Y no logro dar con el modo correcto para evitar el uso de (f()).*

Gracias!
Gerardo

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a