Re: Programación del lado del servidor

From: Chema Cortés <ch3m4(at)ch3m4(dot)org>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Programación del lado del servidor
Date: 2005-01-24 16:46:57
Message-ID: 200501241747.01518.ch3m4@ch3m4.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El Lunes, 24 de Enero de 2005 15:44, Juan Pablo Espino escribió:
> Hola lista,
>
> he leido de que se puede desarrollar funciones en cualquiera de los
> lenguajes procedurales que soporta postgres y luego enlazarlas para
> que corran en el servidor, sin tener que recompilar todo el codigo de
> postgres; sin embargo no lo logro entender como hacer esto. Alguien
> podria darme una mano, gracias anticipadas, saludos

Lo primero es asegurarte que tienes instalados los lenguajes procedurales
(suelen venir en algún paquete a parte).

Se crea una entrada con el lenguaje que quieres utilizar. Conviene saber que
los lenguajes se clasifican según en lenguajes seguros ("trusted") y de
usuario. Para hacer accesible un lenguaje, lo más fácil es usar el comando
"createlang". Si lo ejecutas sobre la base de datos "template1", el resto de
bases de datos se que se creen ya llevarán incluído el lenguaje.

Por ejemplo, para incrustar python:

$ createlang plpythonu mydb

En esta nomenclatura, plpythonu == PL/Python User.

Para crear una función:

CREATE OR REPLACE FUNCTION fact(integer)
RETURNS text AS '
res=1L
for i in xrange(2,args[0]):
res*=i
return str(res)'
LANGUAGE 'plpythonu';

Para su uso:

user=# select fact(50);
fact
-----------------------------------------------------------------
608281864034267560872252163321295376887552831379210240000000000
(1 fila)

Para eliminarla:

DROP FUNCTION fact(integer);

Fíjate que hay que poner explícitamente el tipo del argumento. Las funciones
pueden sobrecargarse como en los lenguajes orientados a objetos.

También puede construirse disparadores, pero es mejor que te leas el manual
del lenguaje procedural que quieras usar, y mires si tienes algún problema
más.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-01-24 16:53:12 Re: Programación del lado del servidor
Previous Message Juan Pablo Espino 2005-01-24 14:44:31 Programación del lado del servidor