[Pgsql-ayuda] Inmutable o Volatile

Alberto Caso alberto.caso@adaptia.net
Thu, 18 Sep 2003 10:03:12 +0200


[Ahora que ya llegan mis mensajes a la lista, aprovecho para reenviar
algunos mensajes que envié y no llegaron]

	Hola:

El jue, 11-09-2003 a las 23:35, Edwin Quijada escribió:
> Que significan estos conceptos en una funcion al momento de declararla?
> Inmutable , Volatile, Stable??

	Los tres sirven para dar información al optimizador de consultas de
manera que éste sepa si el resultado devuelto por la función va a ser
constante para que éste tome las decisiones oportunas al optimizar las
consultas.

	Inmutable se utiliza para las funciones que siempre devuelven el mismo
valor cuando se le entregan los mismos parámetros (cuando se le "pasan"
los mismos argumentos).

	Stable le dice al optimizador que durante el recorrido de una tabla, la
función devolverá el mismo valor si se le entregan los mismos
parámetros, pero puede cambiar entre una consulta y otra. Se usa, por
ejemplo, cuando el resultado de la función depende de los datos de
alguna tabla.

	Volatile indica que el resultado devuelto por la función puede ser
distinto en cualquier momento, o bien cuando, aun devolviendo los mismos
valores, la función cambia datos de alguna tabla o produce algún otro
efecto colateral.

	La documentación la tienes en:
http://www.postgresql.org/docs/7.3/interactive/sql-createfunction.html

	Saludos.
-- 
Alberto Caso Palomino
Adaptia Soluciones Integrales
http://www.adaptia.net
alberto.caso@adaptia.net