Hola amigos
leyendo las diapositivas que a colgado Alavaro y pensando en lo que envio hace unos dias un amigo a la lista preguntando sobre si PGSQL hacia un plan de ejecucion de las funciones llegue a esta conclusion:
Puede ser que este equivocado pero yo creo que no realiza un plan de ejecucion, al menos no guardado estaticamente en la funcion, sino lo crea al momento de interpretar el script
porque me parece esto?
porque cuando uno escribe una funcion lo hace entre comillas simples como si fuera una cadena de texto, entonces podria asumir que existe un interprete realiza todos los calculos para ejecutar el contenido del script conforme le llegan al motor las peticiones y no "compila" la funcion como se compilan los store procedures en otra bases de datos.
esta figura se daria en casi todos los lenguajes soportados para hacer funciones como pl/sql, c, perl, php, etc. entonces lo que se esta ganando es solo el echo que los querys y calculos se ejecuten en el servidor, pero no ganamos que el motor no repiense como ejecutar las llamadas a la base de datos, cosa que si haria si compilara el script de la funcion
no se si alguien tiene algun enlace para leer mas al respecto, no e vuscado aun en el portal de pgsql pero es una duda interesante
saludos