next up previous contents index
Next: Estructura de PL/pgSQL Up: Lenguajes procedurales Previous: Instalando lenguajes procedurales   Índice General   Índice de Materias

Usando PL/pgSQL

Antes de hablar del lenguaje en sí, hay que dar crédito al autor del lenguaje: Jan Wieck.

Las metas del diseño de PL/pgSQL como lenguaje procedural son:

El manejador de PL/pgSQL analiza el código fuente de las funciones y produce un árbol de instrucciones en código binario interno la primera vez que es llamado por el DBMS. El código binario producido es identificado dentro del manejador por el OID de la función. Esto garantiza que al cambiar la función con una secuencia DROP/CREATE10.1, el cambio tendrá efecto sin necesidad de realizar una nueva conexión al servidor.

Para todas las expresiones y secuencias SQL utilizadas en la función, el intérprete de código PL/pgSQL binario crea y prepara un plan de ejecución usando los controladores SPI10.2 SPI_prepare() y SPI_saveplan(). Esto se hace la primera vez que cada secuencia individual es procesada en la función PL/pgSQL. Así, una función con código condicional que contiene varias secuencias para las cuales un plan de ejecución será requerido, sólo prepararán y salvarán aquellos planes que realmente serán utilizados durante la vida de la conexión al DBMS.

Incluso es posible crear funciones de cómputo condicional complejo y utilizarlas posteriormente para definir operadores o utilizarlas en índices funcionales. Sin embargo, para conversiones de entrada o salida o cálculos sobre tipos de datos definidos por el usuario, no es posible realizarlos en PL/pgSQL.


next up previous contents index
Next: Estructura de PL/pgSQL Up: Lenguajes procedurales Previous: Instalando lenguajes procedurales   Índice General   Índice de Materias
Ismael Olea 2001-04-21