[Pgsql-ayuda] Usando C++ ?

Alvaro Herrera alvherre@dcc.uchile.cl
Wed, 7 Jan 2004 15:56:07 -0300


On Wed, Jan 07, 2004 at 06:32:35AM -0800, Cuevas Luis wrote:
> ?lvaro gracias por tu respuesta.
> 1. Exactamente la idea es crear una funci?n con algo
> escrito en C++.

Entiendo que En principio se puede usar una funcion escrita en C++ en un
CREATE FUNCTION.  El problema es que el compilador (linker?) cambia el
nombre del simbolo al compilar (si programas en C++ debes saber el
motivo).  Esto significa que a CREATE FUNCTION tienes que pasarle el
nombre que el linker le puso al simbolo de la funcion.  Supongo que
puedes obtener esta informacion usando nm(1).

En C esto es muy sencillo (nombre del simbolo == nombre de la funcion)
porque no hay overloading, ni clases, ni namespaces, etc.

No he hecho mucho en C++ asi que no se bien la aplicabilidad de todo
esto; ni siquiera estoy seguro que lo de "symbol name mangling" sea
cierto (se me acaba de ocurrir, aunque me parece haber visto mencion en
alguna parte)

> ?lvaro dime si se mantiene el NO de tu anterior
> mensaje para ver entonces que puedo inventarme.

Si, sigue siendo no.  Quizas te sirva de algo saber que puedes crear tus
propios tipos; mira la referencia de CREATE TYPE para empezar.
Necesitas definir funciones de entrada y salida, operadores, si quieres
indexarlo necesitaras una clase de operadores (opclass), etc.

O quizas un simple dominio (CREATE DOMAIN) sirva ...

> 3. Tengo otra pregunta, puedo utilizar el polimorfismo
> desde un supertipo. Similar a como lo hace C++. ???

Polimorfismo?  No entiendo a que te refieres (se lo que es el
polimorfismo pero no veo como aplicarlo).  Un ejemplo?

> 4. Conocen de alguna documentaci?n sobre
> "Object-Relational Features Postgres".

Lo de OR en ORDBMS significa que los RDBMS soportan tipos de datos que
no son int, varchar(), boolean; por ej. que soportan objetos grandes y/o
binarios, que soportan arrays, que soportan indexacion de todo esto, que
hay herencia de clases (==> tablas; aunque con el estado actual de
Postgres no te recomendaria usar herencia de tablas).  No es
"orientacion a objetos" ni mucho menos.

No recuerdo haber visto un articulo acerca de esto, pero quizas buscando
en techdocs.postgresql.org encuentres algo que te sirva.

Suerte,

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La naturaleza, tan frágil, tan expuesta a la muerte... y tan viva"