From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "Nicola Strappazzon" <nicola51980(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Dudas en un query con funcion y con el where. |
Date: | 2006-10-19 05:17:10 |
Message-ID: | c2d9e70e0610182217n12c22482x8d9c2af47704a152@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 10/18/06, Nicola Strappazzon <nicola51980(at)gmail(dot)com> wrote:
>
> iReturn := fV1 / fV2;
>
te has percatado que esto puede traerte problemas si el
SELECT SUM(A.UnidadCredito) regresa cero?
>
> LANGUAGE 'plpgsql' VOLATILE;
> >
> > Una vez que lo hayas hecho, examina el plan de ejecucion con EXPLAIN,
> > porque puede que el optimizer reduzca esa consulta a esta misma forma.
> > En ese caso deberas poner un OFFSET 0 a la consulta del subselect, lo
> > cual actua como una barrera de optimizacion ("optimization barrier";
> > puedes mirar los archivos de pgsql-hackers para leer mas sobre ese
> > truco).
> >
si la funcion puede retornar valores diferentes en cada ejecucion (sin
importar que este en la misma sentencia, por ejemplo al ejecutarse
primero en la lista SELECT y luego en el WHERE), eso es lo que
VOLATILE significa, deberias seguir el consejo de Alvaro... de lo
contrario marca la funcion como STABLE...
--
Atentamente,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook
From | Date | Subject | |
---|---|---|---|
Next Message | Julio Cesar Sánchez González | 2006-10-19 08:27:42 | obtener el nombre de un campo x con pgsql |
Previous Message | Jaime Casanova | 2006-10-19 05:03:16 | Re: pregunta sobre psql |