Re: Cache de funciones

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: Carlos Alberto Piña Uribe <pibe(at)cadiz-kebir(dot)no-ip(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cache de funciones
Date: 2005-04-04 16:11:27
Message-ID: 20050404161127.GA27353@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sat, Apr 02, 2005 at 01:58:47PM -0500, Jaime Casanova wrote:
> On Apr 1, 2005 7:06 PM, Carlos Alberto Piña Uribe
> <pibe(at)cadiz-kebir(dot)no-ip(dot)com> wrote:

Hola,

Un par de precisiones,

> Al llamar a la misma funcion con los mismos parametros puedes estar
> absolutamente seguro que *siempre* regresara los mismo valores? en ese
> caso declarala IMMUTABLE
>
> Lo que hace es que si la declaras IMMUTABLE reemplaza sucesivas
> llamadas a la funcion con el resultado de la primera llamada.

No necesariamente reemplaza. _Puede_ reemplazar (es decir: el
optimizador tiene derecho a reescribir la consulta de manera que en
lugar de invocarse la funcion dos o mas veces, se invoque una sola vez.
El optimizador no esta "obligado" a hacer una tal transformacion).

> Al llamar a la misma funcion con los mismos parametros puedes estar
> absolutamente seguro que dentro de la misma transaccion *siempre*
> regresara los mismo valores? en ese caso declarala STABLE
>
> STABLE reemplaza sucesivas llamadas a la funcion dentro de la misma
> transaccion con el resultado de la primera llamada en esa transaccion.

No dentro de la misma transaccion. Es solo "dentro de un mismo
snapshot", o equivalentemente, dentro de un scan. O lo que es lo mismo,
dentro de una transaccion que tiene ISOLATION LEVEL SERIALIZABLE.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Cuando mañana llegue pelearemos segun lo que mañana exija" (Mowgli)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Damian Culotta 2005-04-04 17:47:15 Crear y usar funciones
Previous Message Lic.Antonio Ocampos 2005-04-04 10:28:43 Desuscribirme